kaizen-agent 1.7.1 → 1.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +657 -657
- package/agents/kaizen-builder.md +77 -77
- package/agents/kaizen-planner.md +250 -250
- package/agents/kaizen-reviewer.md +127 -127
- package/cli/dashboard.ts +1187 -1187
- package/cli/install.ts +947 -947
- package/cli/publish-gh.sh +27 -27
- package/cli/release.sh +45 -45
- package/cli/settings.ts +415 -415
- package/cli/state.test.ts +197 -197
- package/cli/state.ts +704 -704
- package/cli/web.ts +423 -423
- package/commands/kaizen-abort.md +5 -5
- package/commands/kaizen-approve.md +5 -5
- package/commands/kaizen-auto.md +6 -6
- package/commands/kaizen-backlog.md +5 -5
- package/commands/kaizen-config.md +5 -5
- package/commands/kaizen-full.md +5 -5
- package/commands/kaizen-init.md +5 -5
- package/commands/kaizen-install.md +5 -5
- package/commands/kaizen-lite.md +5 -5
- package/commands/kaizen-plan.md +6 -6
- package/commands/kaizen-reject.md +6 -6
- package/commands/kaizen-review.md +6 -6
- package/commands/kaizen-run.md +5 -5
- package/commands/kaizen-status.md +5 -5
- package/package.json +1 -1
- package/skills/kaizen/README.md +281 -281
- package/skills/kaizen/SKILL.md +440 -440
- package/skills/kaizen/adapters.md +77 -77
- package/skills/kaizen/config.default.yml +167 -167
- package/skills/kaizen/spec-build.md +119 -119
- package/skills/kaizen/spec-main.md +104 -104
- package/skills/kaizen/spec-plan.md +201 -201
- package/skills/kaizen/spec-review.md +121 -121
- package/skills/kaizen/spec.md +153 -153
- package/skills/kaizen-help/SKILL.md +129 -129
- package/web/board.html +520 -513
|
@@ -1,77 +1,77 @@
|
|
|
1
|
-
# Adapters — running kaizen outside Claude Code
|
|
2
|
-
|
|
3
|
-
`spec.md` plus its per-stage files (`spec-plan.md`, `spec-build.md`, `spec-review.md`,
|
|
4
|
-
`spec-main.md`) are the workflow. It does not mention any vendor, and it is the single
|
|
5
|
-
source of truth. An adapter is a thin file that points a given tool at it and
|
|
6
|
-
describes how that tool dispatches stages. Adapters never restate the stage rules;
|
|
7
|
-
duplicating them is how the tools drift apart.
|
|
8
|
-
|
|
9
|
-
The portability comes from `.kaizen/` being plain files in the repository. Any tool
|
|
10
|
-
that can read a directory can resume a run another tool started.
|
|
11
|
-
|
|
12
|
-
## Claude Code
|
|
13
|
-
|
|
14
|
-
Native. The skill in this directory dispatches each stage through the Agent tool
|
|
15
|
-
using the `kaizen-planner`, `kaizen-builder`, and `kaizen-reviewer` agent
|
|
16
|
-
definitions, and the main thread owns `state.json`.
|
|
17
|
-
|
|
18
|
-
## Codex — `AGENTS.md`
|
|
19
|
-
|
|
20
|
-
Codex reads `AGENTS.md` from the repository root. Append:
|
|
21
|
-
|
|
22
|
-
```markdown
|
|
23
|
-
## Kaizen workflow
|
|
24
|
-
|
|
25
|
-
Non-trivial work in this repo follows the staged workflow in
|
|
26
|
-
`.kaizen/spec.md`: plan, human approval, implement, independent review, bounded
|
|
27
|
-
fix loop. Read that file before starting, and read the config chain (`.kaizen/config.yml`, `~/.kaizen/config.yml`, `config.default.yml`) for the
|
|
28
|
-
mode and approval settings.
|
|
29
|
-
|
|
30
|
-
Run state lives in `.kaizen/runs/<id>/`. Always read `state.json` first and
|
|
31
|
-
continue from the stage it names. Never advance a run whose `awaiting` field is
|
|
32
|
-
non-null without a recorded human decision in `02-approval.md` — another tool or
|
|
33
|
-
session may be mid-run.
|
|
34
|
-
|
|
35
|
-
Codex has no separate subagents, so run the stages sequentially in one session,
|
|
36
|
-
but keep them clean: start each stage by reading only that stage's declared inputs
|
|
37
|
-
from its stage file, and write its artifact before moving on. When reviewing, judge the
|
|
38
|
-
diff on its own terms rather than defending the reasoning you used while writing it.
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
Copy `spec*.md` into `.kaizen/` so the reference resolves
|
|
42
|
-
without this skill installed.
|
|
43
|
-
|
|
44
|
-
## Antigravity
|
|
45
|
-
|
|
46
|
-
Antigravity reads `AGENTS.md` as well; use the same block. If a workspace-level rules
|
|
47
|
-
file is configured instead, point it at `.kaizen/spec.md` and the stage file being run with the same three
|
|
48
|
-
paragraphs.
|
|
49
|
-
|
|
50
|
-
Where Antigravity can run parallel agents, map planner, builder, and reviewer onto
|
|
51
|
-
separate agents exactly as Claude Code does — the independent reviewer context is the
|
|
52
|
-
part worth preserving in any port.
|
|
53
|
-
|
|
54
|
-
## Handing a run between tools
|
|
55
|
-
|
|
56
|
-
Nothing special is required. Because every stage's input and output are files:
|
|
57
|
-
|
|
58
|
-
1. Tool A finishes a stage and updates `state.json`.
|
|
59
|
-
2. Tool B opens the repo, reads `state.json`, sees `stage: "review"` and
|
|
60
|
-
`awaiting: null`, and runs the reviewer.
|
|
61
|
-
|
|
62
|
-
The only rule is that whichever tool holds the run updates `state.json` when a stage
|
|
63
|
-
completes. A stale `state.json` is the one way this breaks.
|
|
64
|
-
|
|
65
|
-
## Installing the adapter files
|
|
66
|
-
|
|
67
|
-
`/kaizen init` writes `.kaizen/` with the `spec*.md` files into the
|
|
68
|
-
project folder, plus the gitignore entry when that folder is a git repository.
|
|
69
|
-
`/kaizen install` additionally offers to append the `AGENTS.md` block above.
|
|
70
|
-
`.kaizen/spec*.md` and `.kaizen/config.yml` should be committed even though run state
|
|
71
|
-
is ignored — the workflow is shared, the run data is not:
|
|
72
|
-
|
|
73
|
-
```gitignore
|
|
74
|
-
.kaizen/*
|
|
75
|
-
!.kaizen/spec*.md
|
|
76
|
-
!.kaizen/config.yml
|
|
77
|
-
```
|
|
1
|
+
# Adapters — running kaizen outside Claude Code
|
|
2
|
+
|
|
3
|
+
`spec.md` plus its per-stage files (`spec-plan.md`, `spec-build.md`, `spec-review.md`,
|
|
4
|
+
`spec-main.md`) are the workflow. It does not mention any vendor, and it is the single
|
|
5
|
+
source of truth. An adapter is a thin file that points a given tool at it and
|
|
6
|
+
describes how that tool dispatches stages. Adapters never restate the stage rules;
|
|
7
|
+
duplicating them is how the tools drift apart.
|
|
8
|
+
|
|
9
|
+
The portability comes from `.kaizen/` being plain files in the repository. Any tool
|
|
10
|
+
that can read a directory can resume a run another tool started.
|
|
11
|
+
|
|
12
|
+
## Claude Code
|
|
13
|
+
|
|
14
|
+
Native. The skill in this directory dispatches each stage through the Agent tool
|
|
15
|
+
using the `kaizen-planner`, `kaizen-builder`, and `kaizen-reviewer` agent
|
|
16
|
+
definitions, and the main thread owns `state.json`.
|
|
17
|
+
|
|
18
|
+
## Codex — `AGENTS.md`
|
|
19
|
+
|
|
20
|
+
Codex reads `AGENTS.md` from the repository root. Append:
|
|
21
|
+
|
|
22
|
+
```markdown
|
|
23
|
+
## Kaizen workflow
|
|
24
|
+
|
|
25
|
+
Non-trivial work in this repo follows the staged workflow in
|
|
26
|
+
`.kaizen/spec.md`: plan, human approval, implement, independent review, bounded
|
|
27
|
+
fix loop. Read that file before starting, and read the config chain (`.kaizen/config.yml`, `~/.kaizen/config.yml`, `config.default.yml`) for the
|
|
28
|
+
mode and approval settings.
|
|
29
|
+
|
|
30
|
+
Run state lives in `.kaizen/runs/<id>/`. Always read `state.json` first and
|
|
31
|
+
continue from the stage it names. Never advance a run whose `awaiting` field is
|
|
32
|
+
non-null without a recorded human decision in `02-approval.md` — another tool or
|
|
33
|
+
session may be mid-run.
|
|
34
|
+
|
|
35
|
+
Codex has no separate subagents, so run the stages sequentially in one session,
|
|
36
|
+
but keep them clean: start each stage by reading only that stage's declared inputs
|
|
37
|
+
from its stage file, and write its artifact before moving on. When reviewing, judge the
|
|
38
|
+
diff on its own terms rather than defending the reasoning you used while writing it.
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Copy `spec*.md` into `.kaizen/` so the reference resolves
|
|
42
|
+
without this skill installed.
|
|
43
|
+
|
|
44
|
+
## Antigravity
|
|
45
|
+
|
|
46
|
+
Antigravity reads `AGENTS.md` as well; use the same block. If a workspace-level rules
|
|
47
|
+
file is configured instead, point it at `.kaizen/spec.md` and the stage file being run with the same three
|
|
48
|
+
paragraphs.
|
|
49
|
+
|
|
50
|
+
Where Antigravity can run parallel agents, map planner, builder, and reviewer onto
|
|
51
|
+
separate agents exactly as Claude Code does — the independent reviewer context is the
|
|
52
|
+
part worth preserving in any port.
|
|
53
|
+
|
|
54
|
+
## Handing a run between tools
|
|
55
|
+
|
|
56
|
+
Nothing special is required. Because every stage's input and output are files:
|
|
57
|
+
|
|
58
|
+
1. Tool A finishes a stage and updates `state.json`.
|
|
59
|
+
2. Tool B opens the repo, reads `state.json`, sees `stage: "review"` and
|
|
60
|
+
`awaiting: null`, and runs the reviewer.
|
|
61
|
+
|
|
62
|
+
The only rule is that whichever tool holds the run updates `state.json` when a stage
|
|
63
|
+
completes. A stale `state.json` is the one way this breaks.
|
|
64
|
+
|
|
65
|
+
## Installing the adapter files
|
|
66
|
+
|
|
67
|
+
`/kaizen init` writes `.kaizen/` with the `spec*.md` files into the
|
|
68
|
+
project folder, plus the gitignore entry when that folder is a git repository.
|
|
69
|
+
`/kaizen install` additionally offers to append the `AGENTS.md` block above.
|
|
70
|
+
`.kaizen/spec*.md` and `.kaizen/config.yml` should be committed even though run state
|
|
71
|
+
is ignored — the workflow is shared, the run data is not:
|
|
72
|
+
|
|
73
|
+
```gitignore
|
|
74
|
+
.kaizen/*
|
|
75
|
+
!.kaizen/spec*.md
|
|
76
|
+
!.kaizen/config.yml
|
|
77
|
+
```
|
|
@@ -1,167 +1,167 @@
|
|
|
1
|
-
# Kaizen defaults. Settings live in ~/.kaizen/config.yml and apply to every project.
|
|
2
|
-
# To make one project different, copy this to .kaizen/config.yml there and override
|
|
3
|
-
# only the keys you care about; anything absent falls back to the global file, then
|
|
4
|
-
# to this one.
|
|
5
|
-
|
|
6
|
-
# Quick preset: low | medium | ultra | custom
|
|
7
|
-
# Selecting low, medium, or ultra applies its bundled defaults for runner, executor,
|
|
8
|
-
# approvals, and auto-fix. Modifying individual keys sets this to custom.
|
|
9
|
-
preset: medium
|
|
10
|
-
|
|
11
|
-
# plan-only | approve | auto | review-only
|
|
12
|
-
mode: approve
|
|
13
|
-
|
|
14
|
-
approvals:
|
|
15
|
-
# Stop after the plan, before any code is written.
|
|
16
|
-
plan: true
|
|
17
|
-
# Stop after the review, before the work is called done. Off by default: when
|
|
18
|
-
# auto_fix has already closed the findings at or above its threshold, this second
|
|
19
|
-
# stop mostly asks the user to approve a report they are about to read anyway.
|
|
20
|
-
review: false
|
|
21
|
-
# Confirm every individual file edit. Maximum control, slowest.
|
|
22
|
-
each_file: false
|
|
23
|
-
|
|
24
|
-
# How much machinery a run uses.
|
|
25
|
-
# full - each stage is its own agent, started cold. The reviewer never sees how the
|
|
26
|
-
# work was done, which is the only reason its findings are worth reading.
|
|
27
|
-
# Costs several times what the same change costs in one session.
|
|
28
|
-
# lite - the session you are talking to runs every stage itself, in order, keeping
|
|
29
|
-
# each stage to its own declared inputs. Roughly the cost of doing the work
|
|
30
|
-
# by hand, and you watch it happen. The reviewer has seen the work, so
|
|
31
|
-
# expect it to miss what it just did.
|
|
32
|
-
# Everything else is the same either way: the plan, the approval, the gate, the
|
|
33
|
-
# findings, the files, and resuming a run in another tool.
|
|
34
|
-
# Override for one run with `/kaizen lite <request>` or `/kaizen full <request>`.
|
|
35
|
-
runner: full
|
|
36
|
-
|
|
37
|
-
build:
|
|
38
|
-
# Who carries out the approved plan.
|
|
39
|
-
# subagent - dispatch the builder as its own agent. The main thread keeps its
|
|
40
|
-
# context and the work is reported back. The default, and the only
|
|
41
|
-
# sane option for a large run.
|
|
42
|
-
# inline - the main thread does the work itself, against the same plan and the
|
|
43
|
-
# same contract. You watch it happen and can interrupt mid-step, at
|
|
44
|
-
# the cost of main-thread context.
|
|
45
|
-
# ask - offer the choice at the plan approval.
|
|
46
|
-
# The reviewer is a separate agent in every case; that is not configurable, because
|
|
47
|
-
# an agent reviewing work it just did will defend it.
|
|
48
|
-
executor: subagent
|
|
49
|
-
|
|
50
|
-
auto_fix:
|
|
51
|
-
# false: every finding stops the run and becomes a user decision.
|
|
52
|
-
# true: findings at or above min_severity are fixed and re-reviewed automatically.
|
|
53
|
-
enabled: true
|
|
54
|
-
# critical | high | medium | low
|
|
55
|
-
min_severity: high
|
|
56
|
-
# Fix/recheck rounds before remaining findings are escalated to the user. Each round
|
|
57
|
-
# is a full builder pass plus a full reviewer pass, so this is the most expensive
|
|
58
|
-
# knob in the file. A third round rarely closes what two could not.
|
|
59
|
-
max_iterations: 2
|
|
60
|
-
|
|
61
|
-
track:
|
|
62
|
-
# The kind of work a run is doing, which decides what "deliverable",
|
|
63
|
-
# "verification", and "finding" mean for every stage. It is INFERRED from the
|
|
64
|
-
# request by the planner and stated back in the plan's Framing for the user to
|
|
65
|
-
# correct at the approval — the user is never asked to categorize their own request.
|
|
66
|
-
# Set this only to pin a default for a repo that is always one kind of work
|
|
67
|
-
# (e.g. a docs repo). auto (or empty) infers per run.
|
|
68
|
-
default: auto
|
|
69
|
-
|
|
70
|
-
review:
|
|
71
|
-
# Checks that run in every track.
|
|
72
|
-
checks:
|
|
73
|
-
- correctness
|
|
74
|
-
- plan_conformance
|
|
75
|
-
# Additional checks per track, chosen by what the run actually is. The planner may
|
|
76
|
-
# name a track not listed here; the reviewer then derives its checks from the
|
|
77
|
-
# track's "what would make it wrong".
|
|
78
|
-
# Each check below is one question the reviewer asks; the line beside it says which.
|
|
79
|
-
track_checks:
|
|
80
|
-
# security - no new way in, no secret or user data exposed
|
|
81
|
-
# reuse_simplification - nothing rebuilt that the codebase already had
|
|
82
|
-
# test_coverage - the changed behaviour has a check that fails when it breaks
|
|
83
|
-
software: [security, reuse_simplification, test_coverage]
|
|
84
|
-
# blast_radius and regression are universal — see spec-review.md — not listed here.
|
|
85
|
-
# completeness - every part the piece promises is actually present
|
|
86
|
-
# claim_accuracy - every checkable claim traced to a source
|
|
87
|
-
# reader_usability - its intended reader can act on it without asking
|
|
88
|
-
writing: [completeness, claim_accuracy, reader_usability]
|
|
89
|
-
# audience_fit - written for the people who will actually read it
|
|
90
|
-
# voice_consistency - reads as the same voice as the surrounding material
|
|
91
|
-
communication: [claim_accuracy, audience_fit, voice_consistency]
|
|
92
|
-
# prerequisites - everything needed before step one is stated
|
|
93
|
-
# rollback - a way back exists for every step that changes something
|
|
94
|
-
# executability - someone else can run it start to finish unaided
|
|
95
|
-
operations: [prerequisites, rollback, executability]
|
|
96
|
-
# evidence_support - the conclusion follows from evidence shown, not asserted
|
|
97
|
-
# selection_bias - the evidence was not picked to fit the answer
|
|
98
|
-
# alternatives - the readings that were rejected are named and why
|
|
99
|
-
research: [evidence_support, selection_bias, alternatives]
|
|
100
|
-
# Let the reviewer append durable lessons to .kaizen/memory.md.
|
|
101
|
-
write_memory: true
|
|
102
|
-
# Every stage of every future run reads memory.md, so cap it. Over this, the reviewer
|
|
103
|
-
# prunes stale or superseded lessons before appending rather than growing the file.
|
|
104
|
-
memory_max_lines: 100
|
|
105
|
-
|
|
106
|
-
backlog:
|
|
107
|
-
# Capture what a run deliberately did not do: out-of-scope suggestions the user did
|
|
108
|
-
# not take, findings below the fix threshold, and debts deferred at an approval.
|
|
109
|
-
# Written by the main thread at the plan approval and again at the final approval.
|
|
110
|
-
enabled: true
|
|
111
|
-
# Per run, beside its plan and review — provenance without a central file to sync.
|
|
112
|
-
file: 06-backlog.md
|
|
113
|
-
# Items are open | done | rejected. Only open ones are printed by /kaizen backlog;
|
|
114
|
-
# closed ones stay in their run's file as record.
|
|
115
|
-
statuses: [open, done, rejected]
|
|
116
|
-
# Before state.keep_runs prunes a run, its still-open items move here, relative to
|
|
117
|
-
# state.dir. Done and rejected items are pruned with the run.
|
|
118
|
-
orphan_file: backlog.md
|
|
119
|
-
|
|
120
|
-
state:
|
|
121
|
-
dir: .kaizen
|
|
122
|
-
# Keep this many completed runs before pruning the oldest. Pruning first rescues
|
|
123
|
-
# open backlog items into backlog.orphan_file, so it never destroys open work.
|
|
124
|
-
keep_runs: 20
|
|
125
|
-
|
|
126
|
-
git:
|
|
127
|
-
# Never commit, push, or open a PR unless the user explicitly asks.
|
|
128
|
-
# Ignored when the project is not a git repository.
|
|
129
|
-
auto_commit: false
|
|
130
|
-
# Create a branch before the implement stage when on the default branch.
|
|
131
|
-
# Ignored when the project is not a git repository.
|
|
132
|
-
branch_before_implement: true
|
|
133
|
-
|
|
134
|
-
ui:
|
|
135
|
-
# Mouse in the TUI: click a row or card to select it, click it again to open or
|
|
136
|
-
# run it, wheel to scroll. Off by default, and the reason is a real trade: while
|
|
137
|
-
# the TUI holds the mouse, the terminal cannot select text with it, so copying a
|
|
138
|
-
# run id out of the dashboard stops working until you leave.
|
|
139
|
-
mouse: false
|
|
140
|
-
|
|
141
|
-
subagents:
|
|
142
|
-
# Claude Code only: other tools (Codex, Antigravity, opencode, gemini) have no
|
|
143
|
-
# per-stage model knob and run every stage on whatever the tool itself is set to.
|
|
144
|
-
# Model each stage subagent runs on, when the runner is full.
|
|
145
|
-
# inherit - whatever the main session uses. The default.
|
|
146
|
-
# opus | sonnet | haiku - pin it. A cheaper model for the builder is the usual
|
|
147
|
-
# reason to touch this; the reviewer on a cheaper model finds less.
|
|
148
|
-
model: inherit
|
|
149
|
-
# Reasoning effort for the stage subagents: inherit | low | medium | high.
|
|
150
|
-
# Set through the agent definition's frontmatter.
|
|
151
|
-
effort: inherit
|
|
152
|
-
|
|
153
|
-
agent:
|
|
154
|
-
# Default coding agent to launch from dashboard backlog (auto | claude | codex | agy | opencode | gemini).
|
|
155
|
-
# auto picks Claude Code if installed, otherwise the first agent found on PATH.
|
|
156
|
-
default: auto
|
|
157
|
-
# Per-tool model and effort for the session the board launches, passed as that
|
|
158
|
-
# tool's own flags (claude --model/--effort, agy --model/--effort, codex -m and
|
|
159
|
-
# model_reasoning_effort, gemini -m, opencode -m). Model names are the tool's own:
|
|
160
|
-
# `agy models`, `opencode models`, Claude's opus|sonnet|haiku. Absent = tool default.
|
|
161
|
-
# Uncomment the tool you launch:
|
|
162
|
-
# claude: { model: opus, effort: high }
|
|
163
|
-
# codex: { model: gpt-5, effort: low }
|
|
164
|
-
# agy: { model: gemini-3.1-pro-low }
|
|
165
|
-
# opencode: { model: anthropic/claude-sonnet-4-6 }
|
|
166
|
-
# gemini: { model: gemini-2.5-pro }
|
|
167
|
-
|
|
1
|
+
# Kaizen defaults. Settings live in ~/.kaizen/config.yml and apply to every project.
|
|
2
|
+
# To make one project different, copy this to .kaizen/config.yml there and override
|
|
3
|
+
# only the keys you care about; anything absent falls back to the global file, then
|
|
4
|
+
# to this one.
|
|
5
|
+
|
|
6
|
+
# Quick preset: low | medium | ultra | custom
|
|
7
|
+
# Selecting low, medium, or ultra applies its bundled defaults for runner, executor,
|
|
8
|
+
# approvals, and auto-fix. Modifying individual keys sets this to custom.
|
|
9
|
+
preset: medium
|
|
10
|
+
|
|
11
|
+
# plan-only | approve | auto | review-only
|
|
12
|
+
mode: approve
|
|
13
|
+
|
|
14
|
+
approvals:
|
|
15
|
+
# Stop after the plan, before any code is written.
|
|
16
|
+
plan: true
|
|
17
|
+
# Stop after the review, before the work is called done. Off by default: when
|
|
18
|
+
# auto_fix has already closed the findings at or above its threshold, this second
|
|
19
|
+
# stop mostly asks the user to approve a report they are about to read anyway.
|
|
20
|
+
review: false
|
|
21
|
+
# Confirm every individual file edit. Maximum control, slowest.
|
|
22
|
+
each_file: false
|
|
23
|
+
|
|
24
|
+
# How much machinery a run uses.
|
|
25
|
+
# full - each stage is its own agent, started cold. The reviewer never sees how the
|
|
26
|
+
# work was done, which is the only reason its findings are worth reading.
|
|
27
|
+
# Costs several times what the same change costs in one session.
|
|
28
|
+
# lite - the session you are talking to runs every stage itself, in order, keeping
|
|
29
|
+
# each stage to its own declared inputs. Roughly the cost of doing the work
|
|
30
|
+
# by hand, and you watch it happen. The reviewer has seen the work, so
|
|
31
|
+
# expect it to miss what it just did.
|
|
32
|
+
# Everything else is the same either way: the plan, the approval, the gate, the
|
|
33
|
+
# findings, the files, and resuming a run in another tool.
|
|
34
|
+
# Override for one run with `/kaizen lite <request>` or `/kaizen full <request>`.
|
|
35
|
+
runner: full
|
|
36
|
+
|
|
37
|
+
build:
|
|
38
|
+
# Who carries out the approved plan.
|
|
39
|
+
# subagent - dispatch the builder as its own agent. The main thread keeps its
|
|
40
|
+
# context and the work is reported back. The default, and the only
|
|
41
|
+
# sane option for a large run.
|
|
42
|
+
# inline - the main thread does the work itself, against the same plan and the
|
|
43
|
+
# same contract. You watch it happen and can interrupt mid-step, at
|
|
44
|
+
# the cost of main-thread context.
|
|
45
|
+
# ask - offer the choice at the plan approval.
|
|
46
|
+
# The reviewer is a separate agent in every case; that is not configurable, because
|
|
47
|
+
# an agent reviewing work it just did will defend it.
|
|
48
|
+
executor: subagent
|
|
49
|
+
|
|
50
|
+
auto_fix:
|
|
51
|
+
# false: every finding stops the run and becomes a user decision.
|
|
52
|
+
# true: findings at or above min_severity are fixed and re-reviewed automatically.
|
|
53
|
+
enabled: true
|
|
54
|
+
# critical | high | medium | low
|
|
55
|
+
min_severity: high
|
|
56
|
+
# Fix/recheck rounds before remaining findings are escalated to the user. Each round
|
|
57
|
+
# is a full builder pass plus a full reviewer pass, so this is the most expensive
|
|
58
|
+
# knob in the file. A third round rarely closes what two could not.
|
|
59
|
+
max_iterations: 2
|
|
60
|
+
|
|
61
|
+
track:
|
|
62
|
+
# The kind of work a run is doing, which decides what "deliverable",
|
|
63
|
+
# "verification", and "finding" mean for every stage. It is INFERRED from the
|
|
64
|
+
# request by the planner and stated back in the plan's Framing for the user to
|
|
65
|
+
# correct at the approval — the user is never asked to categorize their own request.
|
|
66
|
+
# Set this only to pin a default for a repo that is always one kind of work
|
|
67
|
+
# (e.g. a docs repo). auto (or empty) infers per run.
|
|
68
|
+
default: auto
|
|
69
|
+
|
|
70
|
+
review:
|
|
71
|
+
# Checks that run in every track.
|
|
72
|
+
checks:
|
|
73
|
+
- correctness
|
|
74
|
+
- plan_conformance
|
|
75
|
+
# Additional checks per track, chosen by what the run actually is. The planner may
|
|
76
|
+
# name a track not listed here; the reviewer then derives its checks from the
|
|
77
|
+
# track's "what would make it wrong".
|
|
78
|
+
# Each check below is one question the reviewer asks; the line beside it says which.
|
|
79
|
+
track_checks:
|
|
80
|
+
# security - no new way in, no secret or user data exposed
|
|
81
|
+
# reuse_simplification - nothing rebuilt that the codebase already had
|
|
82
|
+
# test_coverage - the changed behaviour has a check that fails when it breaks
|
|
83
|
+
software: [security, reuse_simplification, test_coverage]
|
|
84
|
+
# blast_radius and regression are universal — see spec-review.md — not listed here.
|
|
85
|
+
# completeness - every part the piece promises is actually present
|
|
86
|
+
# claim_accuracy - every checkable claim traced to a source
|
|
87
|
+
# reader_usability - its intended reader can act on it without asking
|
|
88
|
+
writing: [completeness, claim_accuracy, reader_usability]
|
|
89
|
+
# audience_fit - written for the people who will actually read it
|
|
90
|
+
# voice_consistency - reads as the same voice as the surrounding material
|
|
91
|
+
communication: [claim_accuracy, audience_fit, voice_consistency]
|
|
92
|
+
# prerequisites - everything needed before step one is stated
|
|
93
|
+
# rollback - a way back exists for every step that changes something
|
|
94
|
+
# executability - someone else can run it start to finish unaided
|
|
95
|
+
operations: [prerequisites, rollback, executability]
|
|
96
|
+
# evidence_support - the conclusion follows from evidence shown, not asserted
|
|
97
|
+
# selection_bias - the evidence was not picked to fit the answer
|
|
98
|
+
# alternatives - the readings that were rejected are named and why
|
|
99
|
+
research: [evidence_support, selection_bias, alternatives]
|
|
100
|
+
# Let the reviewer append durable lessons to .kaizen/memory.md.
|
|
101
|
+
write_memory: true
|
|
102
|
+
# Every stage of every future run reads memory.md, so cap it. Over this, the reviewer
|
|
103
|
+
# prunes stale or superseded lessons before appending rather than growing the file.
|
|
104
|
+
memory_max_lines: 100
|
|
105
|
+
|
|
106
|
+
backlog:
|
|
107
|
+
# Capture what a run deliberately did not do: out-of-scope suggestions the user did
|
|
108
|
+
# not take, findings below the fix threshold, and debts deferred at an approval.
|
|
109
|
+
# Written by the main thread at the plan approval and again at the final approval.
|
|
110
|
+
enabled: true
|
|
111
|
+
# Per run, beside its plan and review — provenance without a central file to sync.
|
|
112
|
+
file: 06-backlog.md
|
|
113
|
+
# Items are open | done | rejected. Only open ones are printed by /kaizen backlog;
|
|
114
|
+
# closed ones stay in their run's file as record.
|
|
115
|
+
statuses: [open, done, rejected]
|
|
116
|
+
# Before state.keep_runs prunes a run, its still-open items move here, relative to
|
|
117
|
+
# state.dir. Done and rejected items are pruned with the run.
|
|
118
|
+
orphan_file: backlog.md
|
|
119
|
+
|
|
120
|
+
state:
|
|
121
|
+
dir: .kaizen
|
|
122
|
+
# Keep this many completed runs before pruning the oldest. Pruning first rescues
|
|
123
|
+
# open backlog items into backlog.orphan_file, so it never destroys open work.
|
|
124
|
+
keep_runs: 20
|
|
125
|
+
|
|
126
|
+
git:
|
|
127
|
+
# Never commit, push, or open a PR unless the user explicitly asks.
|
|
128
|
+
# Ignored when the project is not a git repository.
|
|
129
|
+
auto_commit: false
|
|
130
|
+
# Create a branch before the implement stage when on the default branch.
|
|
131
|
+
# Ignored when the project is not a git repository.
|
|
132
|
+
branch_before_implement: true
|
|
133
|
+
|
|
134
|
+
ui:
|
|
135
|
+
# Mouse in the TUI: click a row or card to select it, click it again to open or
|
|
136
|
+
# run it, wheel to scroll. Off by default, and the reason is a real trade: while
|
|
137
|
+
# the TUI holds the mouse, the terminal cannot select text with it, so copying a
|
|
138
|
+
# run id out of the dashboard stops working until you leave.
|
|
139
|
+
mouse: false
|
|
140
|
+
|
|
141
|
+
subagents:
|
|
142
|
+
# Claude Code only: other tools (Codex, Antigravity, opencode, gemini) have no
|
|
143
|
+
# per-stage model knob and run every stage on whatever the tool itself is set to.
|
|
144
|
+
# Model each stage subagent runs on, when the runner is full.
|
|
145
|
+
# inherit - whatever the main session uses. The default.
|
|
146
|
+
# opus | sonnet | haiku - pin it. A cheaper model for the builder is the usual
|
|
147
|
+
# reason to touch this; the reviewer on a cheaper model finds less.
|
|
148
|
+
model: inherit
|
|
149
|
+
# Reasoning effort for the stage subagents: inherit | low | medium | high.
|
|
150
|
+
# Set through the agent definition's frontmatter.
|
|
151
|
+
effort: inherit
|
|
152
|
+
|
|
153
|
+
agent:
|
|
154
|
+
# Default coding agent to launch from dashboard backlog (auto | claude | codex | agy | opencode | gemini).
|
|
155
|
+
# auto picks Claude Code if installed, otherwise the first agent found on PATH.
|
|
156
|
+
default: auto
|
|
157
|
+
# Per-tool model and effort for the session the board launches, passed as that
|
|
158
|
+
# tool's own flags (claude --model/--effort, agy --model/--effort, codex -m and
|
|
159
|
+
# model_reasoning_effort, gemini -m, opencode -m). Model names are the tool's own:
|
|
160
|
+
# `agy models`, `opencode models`, Claude's opus|sonnet|haiku. Absent = tool default.
|
|
161
|
+
# Uncomment the tool you launch:
|
|
162
|
+
# claude: { model: opus, effort: high }
|
|
163
|
+
# codex: { model: gpt-5, effort: low }
|
|
164
|
+
# agy: { model: gemini-3.1-pro-low }
|
|
165
|
+
# opencode: { model: anthropic/claude-sonnet-4-6 }
|
|
166
|
+
# gemini: { model: gemini-2.5-pro }
|
|
167
|
+
|