kaizen-agent 1.11.1 → 1.12.1
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/README.md +41 -0
- package/agents/kaizen-planner.md +16 -8
- package/cli/release.sh +11 -1
- package/package.json +1 -1
- package/skills/kaizen/spec-plan.md +26 -9
package/README.md
CHANGED
|
@@ -171,6 +171,46 @@ kaizen Done, and reviewed. Two things found:
|
|
|
171
171
|
|
|
172
172
|
<img src="https://raw.githubusercontent.com/hfadhlullah/kaizen/c858bb6d666a65780d09c06032c8819489b87da5/assets/board.png" alt="kaizen web board" width="760">
|
|
173
173
|
|
|
174
|
+
## Kaizen Bot
|
|
175
|
+
|
|
176
|
+
A chat front end for your board, with AI teammates for every division. Ask **Chief** what's
|
|
177
|
+
waiting on you, what's running, and what a plan or review says. Hand Sales Outbound,
|
|
178
|
+
Marketing, Customer Service or Account Manager their team's asks, and they turn them into board ideas
|
|
179
|
+
and runs. The board still does the real work: plan, approval, build, review.
|
|
180
|
+
|
|
181
|
+
- **Nothing happens behind your back.** An agent may read the board, add an idea or a note, remember a fact and draft a message. Starting a run, approving a plan or fixing findings waits on a card until you click Approve. It never turns on Yolo and never commits.
|
|
182
|
+
- **Nothing is ever sent.** Emails, posts and replies are drafts: approve one, then copy it or export them all as Markdown.
|
|
183
|
+
- **Teammates and routines.** One agent can ask another, and any agent can run a task on a schedule: *every weekday at 7, brief me on the board*.
|
|
184
|
+
|
|
185
|
+
<img src="https://raw.githubusercontent.com/hfadhlullah/kaizen/main/assets/bot.png" alt="Kaizen Bot: Account Manager holds a drafted email on a card until you approve it" width="760">
|
|
186
|
+
|
|
187
|
+
Kaizen Bot lives in the repo's `bot/` folder, not the npm package. With the board running (`kaizen web`):
|
|
188
|
+
|
|
189
|
+
```sh
|
|
190
|
+
git clone https://github.com/hfadhlullah/kaizen && cd kaizen/bot
|
|
191
|
+
cp .env.example .env # set PROVIDER, MODEL and that provider's key
|
|
192
|
+
bun start # http://127.0.0.1:7430
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### Download the app
|
|
196
|
+
|
|
197
|
+
Kaizen Bot also runs as a single app file for Linux, macOS and Windows, with no Bun or repo needed.
|
|
198
|
+
Download yours from the [latest release](https://github.com/hfadhlullah/kaizen/releases/latest)
|
|
199
|
+
(or build all five with `bun run build` in `bot/`):
|
|
200
|
+
|
|
201
|
+
| OS | File |
|
|
202
|
+
|---|---|
|
|
203
|
+
| Linux | `kaizen-bot-linux-x64`, `kaizen-bot-linux-arm64` |
|
|
204
|
+
| macOS | `kaizen-bot-darwin-arm64` (Apple Silicon), `kaizen-bot-darwin-x64` (Intel) |
|
|
205
|
+
| Windows | `kaizen-bot-windows-x64.exe` |
|
|
206
|
+
|
|
207
|
+
Open it. The first time, it creates `~/.kaizen-bot/.env` for your provider and key. After that it
|
|
208
|
+
starts the board if `kaizen` is installed, and opens the chat in its own window. The files are
|
|
209
|
+
unsigned, so macOS and Windows warn on first open. How to get past that is in
|
|
210
|
+
[Download the app](https://github.com/hfadhlullah/kaizen/blob/main/bot/README.md#download-the-app).
|
|
211
|
+
|
|
212
|
+
Anthropic, OpenAI and Requesty are supported. Setup, privacy and settings are in the [Kaizen Bot README](https://github.com/hfadhlullah/kaizen/blob/main/bot/README.md).
|
|
213
|
+
|
|
174
214
|
## Commands
|
|
175
215
|
|
|
176
216
|
| Command | |
|
|
@@ -193,6 +233,7 @@ In a terminal: `kaizen` (dashboard), `kaizen web` (board), `kaizen settings`, `k
|
|
|
193
233
|
## Learn more
|
|
194
234
|
|
|
195
235
|
- **[The guide](https://github.com/hfadhlullah/kaizen/blob/main/docs/guide.md)**: the board, request sources, notebook, settings, installer flags, uninstall
|
|
236
|
+
- [Kaizen Bot](https://github.com/hfadhlullah/kaizen/blob/main/bot/README.md): the chat front end, its agents, routines and privacy
|
|
196
237
|
- [`spec.md`](https://github.com/hfadhlullah/kaizen/blob/main/skills/kaizen/spec.md): the contract every stage follows
|
|
197
238
|
- [`adapters.md`](https://github.com/hfadhlullah/kaizen/blob/main/skills/kaizen/adapters.md): running outside Claude Code, with Codex and Antigravity as the worked examples. OpenCode, Cursor and Gemini CLI load the same skill folder
|
|
198
239
|
- Found a bug? `kaizen issue`, or *Report an issue* on the board, opens a GitHub bug form with your system details filled in. Nothing is sent until you press Submit on GitHub.
|
package/agents/kaizen-planner.md
CHANGED
|
@@ -165,10 +165,15 @@ Write `01-plan.md` with exactly these sections:
|
|
|
165
165
|
- **Track** — one or two sentences opening the plan: what kind of work this is, the
|
|
166
166
|
deliverable, what done means, what wrong means. Stated as your reading of the
|
|
167
167
|
request, so it can be corrected in a breath.
|
|
168
|
-
- **Framing** — the problem in your own words
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
168
|
+
- **Framing** — the problem in your own words, as short labelled bullets, not a
|
|
169
|
+
paragraph: **Problem** (what is wrong now, as the user meets it), **Fix** (what will
|
|
170
|
+
be true instead, and the approach you chose), **Rejected** (each alternative, one
|
|
171
|
+
line on why). This section is what the human checks first; if your restatement is
|
|
172
|
+
off, everything after it is off too.
|
|
173
|
+
- **Work list** — the plan in plain bullets, one line per thing that will actually be
|
|
174
|
+
done, no jargon. It sits right after Framing and is shown again right before the
|
|
175
|
+
builder starts, so write it for someone who has not read the rest of the plan. Five
|
|
176
|
+
bullets is usually plenty; if it needs fifteen, the run is too big.
|
|
172
177
|
- **Goal** — one paragraph in the user's terms describing what will be true when done.
|
|
173
178
|
- **Scope** — bullets for what is included, then an explicit **Not included** list.
|
|
174
179
|
- **Reuse** — existing material to build on: `path:line` for code, a section or page
|
|
@@ -182,10 +187,6 @@ Write `01-plan.md` with exactly these sections:
|
|
|
182
187
|
it unaided for a runbook. Real and checkable, never a placeholder.
|
|
183
188
|
- **Risks** — what could break, what is irreversible, what needs a backup or
|
|
184
189
|
migration first. Call out anything touching data, auth, or production config.
|
|
185
|
-
- **Work list** — the plan in plain bullets, one line per thing that will actually be
|
|
186
|
-
done, no jargon. This is shown to the user right before the builder starts, so
|
|
187
|
-
write it for someone who has not read the rest of the plan. Five bullets is usually
|
|
188
|
-
plenty; if it needs fifteen, the run is too big.
|
|
189
190
|
- **Open questions** — every assumption that survived your analysis. Leave the list
|
|
190
191
|
empty only if it genuinely is.
|
|
191
192
|
|
|
@@ -210,6 +211,13 @@ Write `01-plan.md` with exactly these sections:
|
|
|
210
211
|
run's backlog, so write each as a standalone one-liner that still makes sense read
|
|
211
212
|
months later with no plan around it.
|
|
212
213
|
|
|
214
|
+
Write Track, Framing, Work list, Goal, Scope, Risks and Out of scope suggestions for a
|
|
215
|
+
person deciding whether to approve, often on a narrow panel: everyday words, short
|
|
216
|
+
sentences, one idea per bullet, things named by what the user sees rather than by
|
|
217
|
+
function, file, CSS value or gate id. Code names, `path:line` and gate ids belong in
|
|
218
|
+
Reuse, Steps and Verification, where the builder and reviewer need them exact. If a
|
|
219
|
+
sentence only makes sense to someone who has read the code, it is in the wrong section.
|
|
220
|
+
|
|
213
221
|
## The goals are the user's, the solution is yours
|
|
214
222
|
|
|
215
223
|
Expanding a one-liner into a clear problem statement is your job. Deciding what is
|
package/cli/release.sh
CHANGED
|
@@ -26,6 +26,16 @@ if gh release view "$tag" >/dev/null 2>&1; then
|
|
|
26
26
|
exit 0
|
|
27
27
|
fi
|
|
28
28
|
|
|
29
|
+
# Kaizen Bot as one app file per OS, attached so users can download it. A failed
|
|
30
|
+
# build still publishes the release, just without the app files.
|
|
31
|
+
rm -rf bot/dist
|
|
32
|
+
assets=""
|
|
33
|
+
if (cd bot && bun run build >/dev/null 2>&1); then
|
|
34
|
+
assets="$(ls bot/dist/kaizen-bot-* 2>/dev/null)"
|
|
35
|
+
else
|
|
36
|
+
echo "release: Kaizen Bot app build failed, releasing without it"
|
|
37
|
+
fi
|
|
38
|
+
|
|
29
39
|
# --generate-notes only lists pull requests, and this repo merges none, so the
|
|
30
40
|
# notes are built here: the title from the release commit's subject, the body from
|
|
31
41
|
# every commit since the previous tag with its message, oldest first.
|
|
@@ -38,7 +48,7 @@ git log --reverse --format='### %s%n%n%b' ${prev:+"$prev.."}"$tag" \
|
|
|
38
48
|
| grep -vE '^### Release [0-9.]+:' \
|
|
39
49
|
| cat -s > "$notes"
|
|
40
50
|
[ -n "$prev" ] && printf '\n**Full Changelog**: https://github.com/hfadhlullah/kaizen/compare/%s...%s\n' "$prev" "$tag" >> "$notes"
|
|
41
|
-
err="$(gh release create "$tag" --title "$title" --notes-file "$notes" 2>&1 >/dev/null)" \
|
|
51
|
+
err="$(gh release create "$tag" --title "$title" --notes-file "$notes" $assets 2>&1 >/dev/null)" \
|
|
42
52
|
&& echo "release: published $tag https://github.com/hfadhlullah/kaizen/releases/tag/$tag" \
|
|
43
53
|
|| echo "release: tag pushed, release not created: $err"
|
|
44
54
|
rm -f "$notes"
|
package/package.json
CHANGED
|
@@ -44,10 +44,17 @@ scope suggestions* for a separate decision.
|
|
|
44
44
|
|
|
45
45
|
The planner reads code but writes none. Its plan must contain:
|
|
46
46
|
|
|
47
|
-
0. **Framing** — the problem in the planner's own words
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
0. **Framing** — the problem in the planner's own words, as a few short labelled
|
|
48
|
+
bullets rather than a paragraph: **Problem** (what is wrong now, as the user meets
|
|
49
|
+
it), **Fix** (what will be true instead, and the approach), **Rejected** (each
|
|
50
|
+
alternative with its reason, one line), then the track in one line. The human
|
|
51
|
+
checks this first; a wrong restatement makes everything after it wrong.
|
|
52
|
+
|
|
53
|
+
Right below it, the **Work list**: plain bullets, one line per thing that will
|
|
54
|
+
actually be done, written for someone who has not read the rest of the plan.
|
|
55
|
+
Five bullets is usually plenty. It sits second so the reader learns what will
|
|
56
|
+
happen before the detail; the plan approval shows it verbatim and the builder
|
|
57
|
+
tracks progress against it.
|
|
51
58
|
1. **Goal** — one paragraph, in the user's terms, on what will be true when done.
|
|
52
59
|
2. **Scope** — what is included, and an explicit *not included* list. The second list
|
|
53
60
|
is what prevents the builder from wandering.
|
|
@@ -115,12 +122,22 @@ installs packages.
|
|
|
115
122
|
fix loop reads it again per iteration, so a line written once is read five or six
|
|
116
123
|
times. Sections 3 to 6 — the material to reuse, the file manifest, the steps, the
|
|
117
124
|
verification — earn their length: they are what stop every later stage searching the
|
|
118
|
-
material again, and cutting them costs more than it saves. Sections 0
|
|
119
|
-
read once by a human at the approval and should be as
|
|
120
|
-
|
|
125
|
+
material again, and cutting them costs more than it saves. Sections 0 (Framing and the
|
|
126
|
+
Work list), 1, 8 and 10 are read once by a human at the approval and should be as
|
|
127
|
+
short as they can be and still be correct: a few labelled lines of framing, a short
|
|
128
|
+
work list, a paragraph of goal, the risks that are real, the
|
|
121
129
|
questions that are open. An alternative rejected gets a line saying what and why, not
|
|
122
130
|
a case against it.
|
|
123
131
|
|
|
132
|
+
**Write the parts a person reads for a person.** Framing, the Work list, Goal, Scope,
|
|
133
|
+
Risks and Out of scope suggestions are read by someone deciding whether to approve,
|
|
134
|
+
often on a narrow panel. Write them in everyday words: short sentences, one idea per
|
|
135
|
+
bullet, things named by what the user sees ("the chat bubble", "the Plan tab") rather
|
|
136
|
+
than by function, file, CSS value or gate id. Code names, `path:line` and gate ids
|
|
137
|
+
belong in Reuse, the File manifest, Steps and Verification, where the builder and
|
|
138
|
+
reviewer need them exact. If a sentence only makes sense to someone who has read the
|
|
139
|
+
code, it is in the wrong section.
|
|
140
|
+
|
|
124
141
|
A plan whose framing is longer than its steps is a plan that spent the run's budget
|
|
125
142
|
explaining itself.
|
|
126
143
|
|
|
@@ -133,8 +150,8 @@ Controlled by `approvals.plan` (default on), skipped in `auto`.
|
|
|
133
150
|
Present to the user, in this order:
|
|
134
151
|
|
|
135
152
|
1. The track, the goal, and the top risk — a few lines, not the whole plan file.
|
|
136
|
-
2. **The work list**, verbatim from the plan
|
|
137
|
-
done. This is the last thing the user sees before anything is produced, so it must
|
|
153
|
+
2. **The work list**, verbatim from the plan, where it sits right after Framing:
|
|
154
|
+
plain bullets of what will actually be done. This is the last thing the user sees before anything is produced, so it must
|
|
138
155
|
be readable on its own, without the plan's reasoning around it.
|
|
139
156
|
3. The open questions, **as a pick list** — see below.
|
|
140
157
|
|