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 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. Works with
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 or backspace quit")}\n`);
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kaizen-agent",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "Staged workflow for AI agents \u2014 code, writing, research, operations: plan, human approval, build, independent review, bounded fix loop.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -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. **Risks** — what could break, what is irreversible, what needs a migration or a
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
- 8. **Open questions** — assumptions that survived the interview. If this list is
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
- 9. **Out of scope suggestions** — worthwhile things noticed but not asked for, each
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, 7 and 9 are
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`,