kaizen-agent 1.0.0 → 1.1.0
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 +29 -2
- package/cli/dashboard.ts +1 -1
- package/package.json +1 -1
- package/skills/kaizen/spec-build.md +9 -0
- package/skills/kaizen/spec-plan.md +20 -4
- package/skills/kaizen/spec-review.md +15 -0
package/README.md
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
<p align="center"><i>Your AI agent shows you the plan before it does the work,<br>and a second agent checks what it did.</i></p>
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
+
<a href="https://github.com/hfadhlullah/kaizen/stargazers"><img alt="stars" src="https://img.shields.io/github/stars/hfadhlullah/kaizen?style=social"></a>
|
|
8
9
|
<a href="https://www.npmjs.com/package/kaizen-agent"><img alt="npm" src="https://img.shields.io/npm/v/kaizen-agent?color=2d50a5&label=npm"></a>
|
|
9
10
|
<a href="https://github.com/hfadhlullah/kaizen/blob/main/LICENSE"><img alt="license" src="https://img.shields.io/npm/l/kaizen-agent?color=2d50a5"></a>
|
|
10
11
|
<img alt="dependencies" src="https://img.shields.io/badge/dependencies-0-2d50a5">
|
|
@@ -13,6 +14,16 @@
|
|
|
13
14
|
|
|
14
15
|
---
|
|
15
16
|
|
|
17
|
+
```bash
|
|
18
|
+
# 1. Install Bun (prerequisite)
|
|
19
|
+
curl -fsSL https://bun.sh/install | bash
|
|
20
|
+
|
|
21
|
+
# 2. Install Kaizen
|
|
22
|
+
bunx kaizen-agent
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
16
27
|
## The problem
|
|
17
28
|
|
|
18
29
|
You ask an AI to do something real — write the launch email, draft the policy,
|
|
@@ -217,12 +228,28 @@ kaizen Done, and reviewed. Two things found:
|
|
|
217
228
|
|
|
218
229
|
## Install
|
|
219
230
|
|
|
231
|
+
### Prerequisites: Bun
|
|
232
|
+
|
|
233
|
+
Kaizen's installer and interactive dashboard require [Bun](https://bun.sh). If you don't have Bun installed yet:
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
# macOS, Linux, WSL
|
|
237
|
+
curl -fsSL https://bun.sh/install | bash
|
|
238
|
+
|
|
239
|
+
# or via Homebrew
|
|
240
|
+
brew install oven-sh/bun/bun
|
|
241
|
+
|
|
242
|
+
# or via npm
|
|
243
|
+
npm install -g bun
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### Install Kaizen
|
|
247
|
+
|
|
220
248
|
```bash
|
|
221
249
|
bunx kaizen-agent
|
|
222
250
|
```
|
|
223
251
|
|
|
224
|
-
It walks you through where to install, then tells you what to type next.
|
|
225
|
-
`npx` too. Restart your editor afterwards.
|
|
252
|
+
It walks you through where to install, prompts for your workflow preset (`medium`, `low`, or `ultra`), then tells you what to type next. Restart your editor afterwards.
|
|
226
253
|
|
|
227
254
|
Run from inside a project it asks whether to install globally or for that project
|
|
228
255
|
alone; anywhere else — your home directory, a plain folder, a script — it installs
|
package/cli/dashboard.ts
CHANGED
|
@@ -627,7 +627,7 @@ export async function dashboard(
|
|
|
627
627
|
? ` ${c.cyan("›")} ${c.bold(a.label.padEnd(20))}${c.dim(a.hint)}\n`
|
|
628
628
|
: ` ${c.dim(a.label)}\n`);
|
|
629
629
|
}
|
|
630
|
-
stdout.write(`\n ${c.dim("↑↓ move · enter choose · q
|
|
630
|
+
stdout.write(`\n ${c.dim("↑↓ move · enter choose · q quit")} ${c.dim("⭐ github.com/hfadhlullah/kaizen")}\n`);
|
|
631
631
|
};
|
|
632
632
|
|
|
633
633
|
stdout.write("\x1b[?1049h\x1b[?25l");
|
package/package.json
CHANGED
|
@@ -47,6 +47,15 @@ change works" into "nothing else broke". A check already failing before the chan
|
|
|
47
47
|
not this run's finding; a check that passed before and fails after is, and it stops
|
|
48
48
|
the stage.
|
|
49
49
|
|
|
50
|
+
**Keep the working transcript small.** Everything the builder reads stays in its
|
|
51
|
+
context and is re-read on every request that follows, so a full test-suite dump at the
|
|
52
|
+
start of the stage is paid for again at every step after it. Pipe long output through
|
|
53
|
+
a filter that keeps the decisive lines — the failure count, the failing test names, the
|
|
54
|
+
first error — and read the full output only when a check actually fails. The same holds
|
|
55
|
+
for reading material: open the manifest's paths at the ranges the plan names, not whole
|
|
56
|
+
files, and never re-read a file this stage already changed. `03-impl.md` records the
|
|
57
|
+
result, not the transcript.
|
|
58
|
+
|
|
50
59
|
**Read the plan's File manifest instead of searching.** The planner already located
|
|
51
60
|
every path this run touches. Search the material only for what the manifest does not
|
|
52
61
|
cover, and note in `03-impl.md` what was missing from it.
|
|
@@ -66,11 +66,27 @@ The planner reads code but writes none. Its plan must contain:
|
|
|
66
66
|
item; "every new query path has a covering test" is. A tier fixes the severity
|
|
67
67
|
before the reviewer has an opinion, which is what stops the same class of problem
|
|
68
68
|
being `high` in one run and `medium` in the next.
|
|
69
|
-
7. **
|
|
69
|
+
7. **Design direction, for any work with a visual surface** — a website, a landing
|
|
70
|
+
page, a UI, a deck, a printed piece. The direction is settled before the builder
|
|
71
|
+
starts, because it is the one decision that cannot be changed afterwards without
|
|
72
|
+
redoing the work: copy survives a re-skin, markup does not.
|
|
73
|
+
|
|
74
|
+
Look for it in the material first — a `design.md`, a design system, a brand or style
|
|
75
|
+
guide, an existing stylesheet with established tokens. Where one exists, the plan
|
|
76
|
+
names it and follows it, and asks nothing; the answer is already in the repository.
|
|
77
|
+
|
|
78
|
+
Where none exists, the direction is an *Open question* with 3-4 concrete options,
|
|
79
|
+
each named for what it signals rather than for its palette, so the user chooses a
|
|
80
|
+
positioning rather than a color. Bringing one direction and building it is the
|
|
81
|
+
failure this item exists to prevent: the planner has an opinion here as everywhere
|
|
82
|
+
else, but a visual direction chosen silently is a decision taken from the user, not
|
|
83
|
+
a proposal made to them.
|
|
84
|
+
|
|
85
|
+
8. **Risks** — what could break, what is irreversible, what needs a migration or a
|
|
70
86
|
backup taken first.
|
|
71
|
-
|
|
87
|
+
9. **Open questions** — assumptions that survived the interview. If this list is
|
|
72
88
|
non-empty, the approval must ask the user about it rather than defaulting.
|
|
73
|
-
|
|
89
|
+
10. **Out of scope suggestions** — worthwhile things noticed but not asked for, each
|
|
74
90
|
its own proposal. Never folded into a step.
|
|
75
91
|
|
|
76
92
|
The plan is a proposal, not a decision. It never edits files, runs migrations, or
|
|
@@ -80,7 +96,7 @@ installs packages.
|
|
|
80
96
|
fix loop reads it again per iteration, so a line written once is read five or six
|
|
81
97
|
times. Sections 3 to 6 — the material to reuse, the file manifest, the steps, the
|
|
82
98
|
verification — earn their length: they are what stop every later stage searching the
|
|
83
|
-
material again, and cutting them costs more than it saves. Sections 0, 1,
|
|
99
|
+
material again, and cutting them costs more than it saves. Sections 0, 1, 8 and 10 are
|
|
84
100
|
read once by a human at the approval and should be as short as they can be and still
|
|
85
101
|
be correct: a paragraph of framing, a paragraph of goal, the risks that are real, the
|
|
86
102
|
questions that are open. An alternative rejected gets a line saying what and why, not
|
|
@@ -48,6 +48,21 @@ operational work: missing prerequisites, absent rollback, steps that cannot be
|
|
|
48
48
|
executed as written. The plan's Verification section says what was promised; the
|
|
49
49
|
reviewer checks that promise was kept.
|
|
50
50
|
|
|
51
|
+
**Keep the working transcript small.** Everything the reviewer reads stays in its
|
|
52
|
+
context and is re-read on every request that follows, so the re-run suite dumped in
|
|
53
|
+
full at check 4 is paid for again at every check after it. Pipe long output through a
|
|
54
|
+
filter that keeps the decisive lines — the failure count, the failing test names, the
|
|
55
|
+
first error — and read the full output only where a check actually fails, which is the
|
|
56
|
+
only place the detail becomes a finding. The same holds for the work under review: open
|
|
57
|
+
the manifest's paths at the ranges the plan names, and read the diff rather than the
|
|
58
|
+
whole file wherever the finding would cite a changed line. `04-review.md` records the
|
|
59
|
+
findings, not the transcript.
|
|
60
|
+
|
|
61
|
+
This does not apply to check 3. Blast radius is the check whose whole point is what
|
|
62
|
+
the diff does not contain, so it reads as widely as it needs to — every caller, every
|
|
63
|
+
reader, whole files where that is what it takes. A cheaper blast-radius pass is not a
|
|
64
|
+
cheaper review, it is the check not happening.
|
|
65
|
+
|
|
51
66
|
Each finding is one line, numbered from 1 within the review:
|
|
52
67
|
`<n>. <where>: <severity>: <problem>. <fix>. [G-nn]` Where is a `path:line` for code,
|
|
53
68
|
and a section, page, or step reference otherwise. Severity is one of `critical`,
|