create-issflow 1.0.0 → 1.0.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.
Files changed (28) hide show
  1. package/README.md +56 -41
  2. package/bin/cli.js +259 -96
  3. package/package.json +28 -23
  4. package/template/.claude/agents/debugger.md +47 -47
  5. package/template/.claude/agents/e2e-runner.md +66 -56
  6. package/template/.claude/agents/implementer.md +75 -75
  7. package/template/.claude/agents/planner.md +71 -65
  8. package/template/.claude/agents/researcher.md +103 -103
  9. package/template/.claude/agents/synthesizer.md +72 -72
  10. package/template/.claude/agents/test-author.md +70 -70
  11. package/template/.claude/commands/log-decision.md +33 -33
  12. package/template/.claude/commands/log-issue.md +28 -28
  13. package/template/.claude/commands/overview.md +99 -98
  14. package/template/.claude/commands/phase.md +202 -191
  15. package/template/.claude/commands/quick.md +30 -30
  16. package/template/.claude/commands/replan.md +63 -63
  17. package/template/.claude/commands/store-wisdom.md +195 -194
  18. package/template/.claude/commands/synthesize.md +26 -26
  19. package/template/.claude/commands/unstuck.md +40 -40
  20. package/template/.claude/hooks/pre-compact.sh +25 -25
  21. package/template/.claude/hooks/session-start.sh +120 -120
  22. package/template/.claude/hooks/subagent-stop.sh +11 -11
  23. package/template/.claude/istartsoft-flow/METHODOLOGY.md +229 -214
  24. package/template/.claude/skills/caveman/SKILL.md +39 -39
  25. package/template/.claude/skills/grill-me/SKILL.md +10 -10
  26. package/template/.claude/skills/karpathy-guidelines/SKILL.md +34 -34
  27. package/template/.claude/skills/ux-design/SKILL.md +99 -0
  28. package/template/.claude/skills/ux-design/wireframe-template.md +95 -0
@@ -1,214 +1,229 @@
1
- # iStartSoftFlow — portable agent methodology (single source of truth)
2
-
3
- > **Adapted for Saku POS (from the open "anpunkit" workflow by MetheeS).**
4
- > Namespaced under `.claude/istartsoft-flow/` to coexist with the repo's own
5
- > `CLAUDE.md` / `AGENTS.md` (Saku project docs) — it does NOT replace them.
6
- > Cursor support and the Azure infra phase were removed: this repo is Claude-only
7
- > and infra is **managed (Vercel + Supabase)**, so **Phase 0 (infra) is N/A** —
8
- > phases begin at the first vertical slice. Planning source of truth stays in
9
- > **iSSM/BMAD** (PRD/architecture/stories); iStartSoftFlow is the execution loop on top.
10
-
11
- <!-- ISTARTSOFTFLOW-AGENTS-SENTINEL-v2.0 -->
12
- > **SENTINEL.** The HTML comment above (`ISTARTSOFTFLOW-AGENTS-SENTINEL-v2.0`) is a
13
- > load-bearing marker. `setup.sh` greps for it to confirm this file resolved on
14
- > disk and was not clobbered. Do not remove or rename it.
15
-
16
- > **What this file is.** The complete, tool-agnostic methodology for the iStartSoftFlow
17
- > workflow: the loop, the roles, the procedures, the rituals, and the hard rules.
18
- > This is the ONE place every rule lives. Claude Code, Cursor, and any tool that
19
- > reads the open `AGENTS.md` standard get the full methodology from here.
20
-
21
- > **Anti-drift invariant (load-bearing).** Every rule lives in exactly ONE place:
22
- > this file. `CLAUDE.md` restates NO rule it only maps roles to Claude-native
23
- > files and says "native mechanism X performs ritual Y automatically." A rule and
24
- > its automation may never contradict. Duplication between files is an
25
- > architectural defect, not a convenience.
26
-
27
- Caveman ULTRA mode always on. Apply the `karpathy-guidelines` skill (engineering
28
- discipline) on every coding and debugging task.
29
-
30
- -----
31
-
32
- ## The loop
33
-
34
- `design-research -> grill (×2) -> plan -> implement -> test -> deploy`, one
35
- VERTICAL SLICE per phase. Implement AND test a phase before the next. The last
36
- phase always includes deployment.
37
-
38
- A phase runs in one of two orders, chosen at RESEARCH time by the TDD
39
- APPLICABILITY check (see Procedures `phase`):
40
-
41
- - **TDD phase** (`TDD_PHASE=true`):
42
- `RESEARCH -> SCAFFOLD -> RED -> GREEN -> TEST(e2e) -> FIX -> CLOSE`
43
- - **Non-TDD phase** (pure infra / config / doc `TDD_PHASE=false`):
44
- `RESEARCH -> IMPLEMENT -> TEST -> FIX -> CLOSE`
45
-
46
- `TDD_PHASE` = "the phase adds or changes a public callable surface (an endpoint,
47
- exported function/class, CLI command, or message contract) that is assertable
48
- from the acceptance spec." Size is NOT the criterion. On ambiguity, default
49
- `TDD_PHASE=true` AND state the classification + reason so a human can override to
50
- non-TDD before SCAFFOLD fires.
51
-
52
- -----
53
-
54
- ## Roles (fresh-context workers)
55
-
56
- Each role is a fresh-context worker. Where the host tool supports named subagents
57
- (Claude Code natively; Cursor reads the same `.claude/agents/` files via its
58
- Claude-compatibility path), each maps to a definition file. Where it does not, the role
59
- degrades to a bounded sub-task that dumps its noise to a file and returns only a
60
- terse summary + path. Workers cannot address the user — only the orchestrator
61
- can. Escalation is at most two hops.
62
-
63
- - **researcher** two modes. DESIGN: domain/constraint research before planning
64
- (service limits, API contracts, architectural constraints, cost surprises).
65
- IMPL: per-phase codebase + service investigation. Checks the shared KB snapshot
66
- first (step 0). Writes findings to `docs/research/`; returns terse summary + path.
67
- - **planner** research vertical-slice `docs/PLAN.md`. Phase 0 (infra) always
68
- first; the last phase always contains the deploy task.
69
- - **implementer** builds ONE phase. Two MODES for TDD phases (SCAFFOLD: stubs
70
- only; FILL: logic to green) plus a legacy full-build mode for non-TDD phases.
71
- Writes code, never tests. Maintains `docs/ENDPOINTS.md` each phase.
72
- - **test-author** writes tests BLIND (never reads implementation logic). On TDD
73
- phases it is dispatched BEFORE logic exists (RED-first), so blindness is
74
- structural, not honor-system. Writes a MOCK suite + a REAL API suite.
75
- - **e2e-runner** writes/runs functional browser E2E (Playwright) BLIND. Reads
76
- - **debugger** — debugs in an ISOLATED context. Writes a trace to
77
- `docs/research/debug-<slug>.md`; returns a summary.
78
- - **synthesizer** compresses `docs/STATE.md` / `docs/ISSUES.md`, prunes
79
- snapshots. On the final phase, also updates `README.md` + `docs/OVERVIEW.md`.
80
-
81
- The orchestrator ROUTES. It does not implement or debug.
82
-
83
- -----
84
-
85
- ## Procedures (the slash-command set)
86
-
87
- Named procedures, each with a canonical body in `commands.src/<name>.md` and a
88
- generated copy per tool (`.claude/commands/`, `.cursor/commands/`).
89
-
90
- - **overview** — bootstrap a project: design-research → grill r1 → design-research
91
- re-grill r2 → `OVERVIEW.md` → planner → `PLAN.md` (Phase 0 always first).
92
- - **phase [n]** — run one phase end-to-end with the circuit breaker. Chooses the
93
- TDD or non-TDD order at RESEARCH. CLOSE runs the regression guard + ENDPOINTS
94
- coverage gate.
95
- - **quick [change]** — small, obvious, non-phase change; no agent chain. Stays
96
- non-TDD. Runs the mock regression corpus after the change.
97
- - **unstuck** — deep re-research after a circuit breaker (human-triggered).
98
- - **synthesize** compress STATE.md, dedup ISSUES.md, prune snapshots. Run
99
- before a context reset.
100
- - **replan** — revise `PLAN.md` (add/cut/split/merge/reorder pending phases) and
101
- reconcile the regression corpus in step.
102
- - **log-issue** — append an error to `ISSUES.md` with root cause + failed attempts.
103
- - **log-decision** — record an architectural change in `docs/DESIGN_LOG.md`.
104
- - **store-wisdom** promote resolved issues + research to the shared KB.
105
-
106
- -----
107
-
108
- ## Rituals (model-run fallback for hooks)
109
-
110
- Where the host tool can run lifecycle hooks (Claude Code, Cursor), these rituals
111
- are AUTOMATED by hook scripts and must NOT be run by hand. Where the tool cannot
112
- inject context, the model performs them itself.
113
-
114
- ### SESSION-OPEN (start / clear / compact-resume)
115
-
116
- At the start of every session, before any other work, surface:
117
- 1. git state (branch, uncommitted count, last 3 commits).
118
- 2. `docs/STATE.md` — the current position. READ THIS FIRST.
119
- 3. open items in `docs/ISSUES.md`.
120
- 4. `docs/research/INDEX.md` (research map) + infra status + auth nudge.
121
- 5. shared KB: pull latest + load `docs/.kb-snapshot.md` if `.claude/kb-config.json`
122
- exists.
123
- 6. a one-line reminder of the hard rules below.
124
-
125
- ### COMPRESS (before a context compaction)
126
-
127
- Snapshot the live position to `docs/.snapshots/` so a post-compact session can
128
- recover: current phase, next action, open blocker.
129
-
130
- -----
131
-
132
- ## Hard rules (1–11)
133
-
134
- 1. Before debugging ANY error: grep `docs/ISSUES.md` AND `docs/research/INDEX.md`.
135
- The SESSION-OPEN ritual surfaces ISSUES.md — there is no excuse to miss it.
136
- 2. Debug attempt cap = 3: WARN the user at attempt 2; the FIRST hard-stop at 3
137
- STOPS and asks the user. No 4th in-place attempt.
138
- 3. Every resolved error -> logged to `docs/ISSUES.md` with root cause + failed
139
- attempts.
140
- 4. End of phase -> synthesize -> context reset -> next phase.
141
- 5. **PHASE GATE** = the current-phase REAL API suite passes AND (frontend phase)
142
- the E2E suite passes AND the accumulated mock regression corpus stays green AND
143
- every `docs/ENDPOINTS.md` entry has at least one test in `tests/regression/`.
144
- The final phase additionally runs the full REAL regression corpus. A green
145
- mock suite alone can never close a phase.
146
- 6. Tests are written by `test-author`, which never sees the implementation logic
147
- (unbiased). On TDD phases the suite is written before the logic (RED-first).
148
- `STACK NOT READY` / `FLAKE` do not spend the debug budget. Only `LOGIC FAIL`
149
- reaches the debugger.
150
- 8. E2E auth = ROPC with a dedicated MFA-excluded test account. NEVER script the
151
- Microsoft login UI.
152
- 9. Architectural change (new/removed agent, hook, command, or a changed workflow
153
- rule)? -> run `log-decision` before closing.
154
- work. Never debug an auth error without checking this first.
155
- 11. **No-rationalization (scoped).** Do not downgrade a TDD phase to non-TDD to
156
- dodge the RED gate, and do not route phase-worthy work through `quick` to
157
- dodge it. (Scoped deliberately to these two seams; this is not a broad
158
- "never make excuses" rule.)
159
-
160
- -----
161
-
162
- ## Shared KB (optional)
163
-
164
- If `.claude/kb-config.json` exists, the SESSION-OPEN ritual pulls the KB and loads
165
- a snapshot to `docs/.kb-snapshot.md`. The researcher checks the snapshot (step 0)
166
- before any web search. Run `store-wisdom` to promote resolved issues + research to
167
- the KB. The kit works normally without a KB.
168
-
169
- -----
170
-
171
- ## File contract
172
-
173
- - `docs/STATE.md` — current position. Small. Rewritten, not appended.
174
- - `docs/ISSUES.md` error log. Deduped by synthesizer.
175
- - `docs/PLAN.md` — the phase plan. Phase 0 (infra) always first; last phase has
176
- the deploy task.
177
- - `docs/HISTORY.md` one line per finished phase.
178
- - `docs/DESIGN_LOG.md` kit architectural rationale (§5.x decision log).
179
- - `docs/OVERVIEW.md` project scope. Written after the double-grill in `overview`.
180
- E2E target.
181
- - `docs/ENDPOINTS.md` — API/service endpoint catalogue. Maintained by implementer
182
- each phase. Drives the CLOSE coverage gate.
183
- - `docs/research/` — full research + debug files. `INDEX.md` is the searchable map.
184
- `design-<slug>.md` (design research), `<slug>.md` (impl research),
185
- `debug-<slug>.md` (debugger traces).
186
- - `docs/.snapshots/`pre-compact recovery markers (auto-pruned, gitignored).
187
- holds no secrets.
188
- - `e2e/`, `scripts/e2e-stack.sh`, `docker-compose.test.yml`, `playwright.config.ts`
189
- the E2E stack.
190
- - `tests/phase-<n>/`phase-local test suites.
191
- - `tests/regression/` — cross-phase contract tests (the regression corpus). Run by
192
- `scripts/regression.sh` (default mock; `--real` runs the real corpus).
193
- - `.claude/kb-config.json` shared KB path + remote (optional, written by setup.sh).
194
- - `docs/.kb-snapshot.md`KB INDEX loaded this session (auto-generated, gitignored).
195
-
196
- -----
197
-
198
- ## Capability matrix (which tools get what)
199
-
200
- - **Claude Code — full (reference implementation).** Generated commands; all three
201
- lifecycle hooks WITH context injection (SessionStart / PreCompact / SubagentStop);
202
- named subagents (`.claude/agents/*.md`); `@AGENTS.md` import; shared KB.
203
- - **Cursorfull (verified against cursor.com/docs, 2026-06).** Generated
204
- commands (`.cursor/commands/`); the three lifecycle hooks via `.cursor/hooks.json`
205
- (sessionStart / preCompact / subagentStop) wired to the SAME shared hook scripts
206
- sessionStart injects context via a JSON-envelope wrapper
207
- (`cursor-session-start.sh`); named subagents work natively because Cursor reads
208
- `.claude/agents/*.md` directly (no duplication); methodology via a
209
- `.cursor/rules/` pointer at this file. Known degradations: `model: haiku/opus`
210
- tiers are Claude-specific (Cursor falls back to inherit/compatible), and Cursor's
211
- preCompact is observational (the snapshot side-effect still runs; no context
212
- modification).
213
- - **Everything else.** Reads this `AGENTS.md` if it supports the open standard.
214
- No generated adapters. Not claimed as supported in v2.0.
1
+ # iStartSoftFlow — portable agent methodology (single source of truth)
2
+
3
+ > **The iStartSoft execution loop.** Namespaced under `.claude/istartsoft-flow/`
4
+ > so it coexists with a repo's own agent-instruction files (`CLAUDE.md`,
5
+ > `AGENTS.md`, `GEMINI.md`, ) — it does NOT replace them. The kit is
6
+ > **stack-agnostic and tool-agnostic**: it pins a *process*, not a *stack*.
7
+ > Declare your stack (language, framework, infra, auth, test + E2E runner,
8
+ > planning source) once in `docs/OVERVIEW.md`; every rule below references *your
9
+ > declared stack* and hardcodes none. If infra is **managed** (a PaaS + a managed
10
+ > datastore), Phase 0 (infra) is N/A and phases begin at the first vertical slice;
11
+ > otherwise Phase 0 provisions infra first. Planning source of truth stays in your
12
+ > PRD / architecture / stories (e.g. BMAD / iSSM); iStartSoftFlow is the execution
13
+ > loop layered on top.
14
+
15
+ <!-- ISTARTSOFTFLOW-AGENTS-SENTINEL-v2.0 -->
16
+ > **SENTINEL.** The HTML comment above (`ISTARTSOFTFLOW-AGENTS-SENTINEL-v2.0`) is a
17
+ > load-bearing marker. The installer (`create-issflow`) and tooling grep for it to
18
+ > confirm this file resolved on disk and was not clobbered. Do not remove or rename it.
19
+
20
+ > **What this file is.** The complete, tool-agnostic methodology for the iStartSoftFlow
21
+ > workflow: the loop, the roles, the procedures, the rituals, and the hard rules.
22
+ > This is the ONE place every rule lives. Claude Code, and any tool that reads the
23
+ > open `AGENTS.md` standard, get the full methodology from here.
24
+
25
+ > **Anti-drift invariant (load-bearing).** Every rule lives in exactly ONE place:
26
+ > this file. `CLAUDE.md` restates NO rule — it only maps roles to Claude-native
27
+ > files and says "native mechanism X performs ritual Y automatically." A rule and
28
+ > its automation may never contradict. Duplication between files is an
29
+ > architectural defect, not a convenience.
30
+
31
+ Caveman ULTRA mode always on. Apply the `karpathy-guidelines` skill (engineering
32
+ discipline) on every coding and debugging task. Apply the `ux-design` skill (the UX
33
+ cookbook + wireframe baseline) on every UI-facing task.
34
+
35
+ -----
36
+
37
+ ## The loop
38
+
39
+ `design-research -> grill (×2) -> plan -> implement -> test -> deploy`, one
40
+ VERTICAL SLICE per phase. Implement AND test a phase before the next. The last
41
+ phase always includes deployment.
42
+
43
+ A phase runs in one of two orders, chosen at RESEARCH time by the TDD
44
+ APPLICABILITY check (see Procedures `phase`):
45
+
46
+ - **TDD phase** (`TDD_PHASE=true`):
47
+ `RESEARCH -> SCAFFOLD -> RED -> GREEN -> TEST(e2e) -> FIX -> CLOSE`
48
+ - **Non-TDD phase** (pure infra / config / doc `TDD_PHASE=false`):
49
+ `RESEARCH -> IMPLEMENT -> TEST -> FIX -> CLOSE`
50
+
51
+ `TDD_PHASE` = "the phase adds or changes a public callable surface (an endpoint,
52
+ exported function/class, CLI command, or message contract) that is assertable
53
+ from the acceptance spec." Size is NOT the criterion. On ambiguity, default
54
+ `TDD_PHASE=true` AND state the classification + reason so a human can override to
55
+ non-TDD before SCAFFOLD fires.
56
+
57
+ -----
58
+
59
+ ## Roles (fresh-context workers)
60
+
61
+ Each role is a fresh-context worker mapped to a named Claude Code subagent in
62
+ `.claude/agents/*.md`. A worker dumps its noise to a file and returns only a
63
+ terse summary + path. Workers cannot address the user — only the orchestrator
64
+ can. Escalation is at most two hops.
65
+
66
+ - **researcher** two modes. DESIGN: domain/constraint research before planning
67
+ (service limits, API contracts, architectural constraints, cost surprises).
68
+ IMPL: per-phase codebase + service investigation. Checks the shared KB snapshot
69
+ first (step 0). Writes findings to `docs/research/`; returns terse summary + path.
70
+ - **planner** research vertical-slice `docs/PLAN.md`. Phase 0 (infra) leads
71
+ when there is infra to provision; with managed infra it is N/A and the plan
72
+ begins at the first slice. The last phase always contains the deploy task.
73
+ - **implementer** builds ONE phase. Two MODES for TDD phases (SCAFFOLD: stubs
74
+ only; FILL: logic to green) plus a legacy full-build mode for non-TDD phases.
75
+ Writes code, never tests. Maintains `docs/ENDPOINTS.md` each phase.
76
+ - **test-author** — writes tests BLIND (never reads implementation logic). On TDD
77
+ phases it is dispatched BEFORE logic exists (RED-first), so blindness is
78
+ structural, not honor-system. Writes a MOCK suite + a REAL API suite.
79
+ - **e2e-runner** writes/runs functional browser E2E (your declared E2E runner,
80
+ e.g. Playwright) BLIND. Reads only the acceptance spec + `docs/ENDPOINTS.md`,
81
+ never the implementation.
82
+ - **debugger** — debugs in an ISOLATED context. Writes a trace to
83
+ `docs/research/debug-<slug>.md`; returns a summary.
84
+ - **synthesizer** — compresses `docs/STATE.md` / `docs/ISSUES.md`, prunes
85
+ snapshots. On the final phase, also updates `README.md` + `docs/OVERVIEW.md`.
86
+
87
+ The orchestrator ROUTES. It does not implement or debug.
88
+
89
+ -----
90
+
91
+ ## Procedures (the slash-command set)
92
+
93
+ Named procedures, each with a canonical body in `.claude/commands/<name>.md`.
94
+
95
+ - **overview** — bootstrap a project: design-research grill r1 design-research
96
+ → re-grill r2 `OVERVIEW.md` planner `PLAN.md`.
97
+ - **phase [n]** — run one phase end-to-end with the circuit breaker. Chooses the
98
+ TDD or non-TDD order at RESEARCH. CLOSE runs the regression guard + ENDPOINTS
99
+ coverage gate.
100
+ - **quick [change]** — small, obvious, non-phase change; no agent chain. Stays
101
+ non-TDD. Runs the mock regression corpus after the change.
102
+ - **unstuck** — deep re-research after a circuit breaker (human-triggered).
103
+ - **synthesize** — compress STATE.md, dedup ISSUES.md, prune snapshots. Run
104
+ before a context reset.
105
+ - **replan** — revise `PLAN.md` (add/cut/split/merge/reorder pending phases) and
106
+ reconcile the regression corpus in step.
107
+ - **log-issue** — append an error to `ISSUES.md` with root cause + failed attempts.
108
+ - **log-decision** record an architectural change in `docs/DESIGN_LOG.md`.
109
+ - **store-wisdom** — promote resolved issues + research to the shared KB.
110
+
111
+ -----
112
+
113
+ ## Rituals (model-run fallback for hooks)
114
+
115
+ Where the host tool can run lifecycle hooks (Claude Code), these rituals are
116
+ AUTOMATED by hook scripts and must NOT be run by hand. Where the tool cannot
117
+ inject context, the model performs them itself.
118
+
119
+ ### SESSION-OPEN (start / clear / compact-resume)
120
+
121
+ At the start of every session, before any other work, surface:
122
+ 1. git state (branch, uncommitted count, last 3 commits).
123
+ 2. `docs/STATE.md` the current position. READ THIS FIRST.
124
+ 3. open items in `docs/ISSUES.md`.
125
+ 4. `docs/research/INDEX.md` (research map) + infra/auth status.
126
+ 5. shared KB: pull latest + load `docs/.kb-snapshot.md` if `.claude/kb-config.json`
127
+ exists.
128
+ 6. a one-line reminder of the hard rules below.
129
+
130
+ ### COMPRESS (before a context compaction)
131
+
132
+ Snapshot the live position to `docs/.snapshots/` so a post-compact session can
133
+ recover: current phase, next action, open blocker.
134
+
135
+ -----
136
+
137
+ ## Hard rules (1–10)
138
+
139
+ 1. Before debugging ANY error: grep `docs/ISSUES.md` AND `docs/research/INDEX.md`.
140
+ The SESSION-OPEN ritual surfaces ISSUES.md there is no excuse to miss it.
141
+ Before debugging an auth/infra error, check the infra + auth status surfaced
142
+ at SESSION-OPEN first.
143
+ 2. Debug attempt cap = 3: WARN the user at attempt 2; the FIRST hard-stop at 3
144
+ STOPS and asks the user. No 4th in-place attempt.
145
+ 3. Every resolved error -> logged to `docs/ISSUES.md` with root cause + failed
146
+ attempts.
147
+ 4. End of phase -> synthesize -> context reset -> next phase.
148
+ 5. **PHASE GATE** = the current-phase REAL API suite passes AND (frontend phase)
149
+ the E2E suite passes AND the accumulated mock regression corpus stays green AND
150
+ every `docs/ENDPOINTS.md` entry has at least one test in `tests/regression/`.
151
+ The final phase additionally runs the full REAL regression corpus. A green
152
+ mock suite alone can never close a phase.
153
+ 6. Tests are written by `test-author`, which never sees the implementation logic
154
+ (unbiased). On TDD phases the suite is written before the logic (RED-first).
155
+ `STACK NOT READY` / `FLAKE` do not spend the debug budget. Only `LOGIC FAIL`
156
+ reaches the debugger.
157
+ 7. E2E auth = a dedicated test account driven by a PROGRAMMATIC session
158
+ (an API login or a saved/reused auth state), never by scripting a
159
+ third-party OAuth/login UI.
160
+ 8. Architectural change (new/removed agent, hook, command, or a changed workflow
161
+ rule)? -> run `log-decision` before closing.
162
+ 9. **UI conforms to the frame.** Every UI-facing change is validated against the
163
+ `ux-design` cookbook (design tokens, spacing scale, a11y/WCAG AA, component +
164
+ state inventory, breakpoints) AND stays inside the wireframe baseline. Drift
165
+ outside the wireframe frame is a defect, not a creative liberty. A frontend
166
+ phase cannot CLOSE until the UX cookbook check passes.
167
+ 10. **No-rationalization (scoped).** Do not downgrade a TDD phase to non-TDD to
168
+ dodge the RED gate, and do not route phase-worthy work through `quick` to
169
+ dodge it. (Scoped deliberately to these two seams; this is not a broad
170
+ "never make excuses" rule.)
171
+
172
+ -----
173
+
174
+ ## Shared KB (optional)
175
+
176
+ If `.claude/kb-config.json` exists, the SESSION-OPEN ritual pulls the KB and loads
177
+ a snapshot to `docs/.kb-snapshot.md`. The researcher checks the snapshot (step 0)
178
+ before any web search. Run `store-wisdom` to promote resolved issues + research to
179
+ the KB. The kit works normally without a KB.
180
+
181
+ -----
182
+
183
+ ## File contract
184
+
185
+ - `docs/STATE.md` current position. Small. Rewritten, not appended.
186
+ - `docs/ISSUES.md`error log. Deduped by synthesizer.
187
+ - `docs/PLAN.md` — the phase plan. The last phase has the deploy task.
188
+ - `docs/HISTORY.md` — one line per finished phase.
189
+ - `docs/DESIGN_LOG.md` kit architectural rationale (§5.x decision log).
190
+ - `docs/OVERVIEW.md`project scope. Written after the double-grill in `overview`.
191
+ E2E target.
192
+ - `docs/ENDPOINTS.md` API/service endpoint catalogue. Maintained by implementer
193
+ each phase. Drives the CLOSE coverage gate.
194
+ - `docs/research/`full research + debug files. `INDEX.md` is the searchable map.
195
+ `design-<slug>.md` (design research), `<slug>.md` (impl research),
196
+ `debug-<slug>.md` (debugger traces).
197
+ - `docs/.snapshots/` — pre-compact recovery markers (auto-pruned, gitignored).
198
+ Holds no secrets.
199
+ - your E2E stack — runner config + any ephemeral test services (e.g. `e2e/`,
200
+ `playwright.config.ts`, `scripts/e2e-stack.sh`, `docker-compose.test.yml`).
201
+ Names are conventions; use whatever your declared stack ships.
202
+ - `tests/phase-<n>/` phase-local test suites.
203
+ - `tests/regression/`cross-phase contract tests (the regression corpus). Run by
204
+ `scripts/regression.sh` (default mock; `--real` runs the real corpus).
205
+ - `.claude/skills/ux-design/` the UX cookbook + wireframe baseline (read on
206
+ demand for any UI work).
207
+ - `.claude/kb-config.json` shared KB path + remote (optional).
208
+ - `docs/.kb-snapshot.md` KB INDEX loaded this session (auto-generated, gitignored).
209
+
210
+ -----
211
+
212
+ ## Capability matrix (which host gets what)
213
+
214
+ The kit is single-source (`.claude/` + this file). `create-issflow --tool=<host>`
215
+ writes the right adapter; unsupported features degrade to model-run rituals, never
216
+ silently vanish. The portable assets (agents, commands, skills, methodology) are
217
+ the same everywhere — only the *wiring* differs.
218
+
219
+ | Host | Entry file | Commands | Subagents | Lifecycle hooks | Shared KB |
220
+ |------|-----------|----------|-----------|-----------------|-----------|
221
+ | **Claude Code** (reference) | `AGENTS.md` + `.claude/` | `.claude/commands/` | native | SessionStart · PreCompact · SubagentStop (with context injection) | yes |
222
+ | **Codex CLI** | `AGENTS.md` (native) | `.claude/commands/` (read as prompts) | read as reference | model-run | yes |
223
+ | **Cursor** | `.cursor/rules/` + `AGENTS.md` | `.cursor/commands/` | reads `.claude/agents/` | `.cursor/hooks.json` (sessionStart · subagentStop) | yes |
224
+ | **Gemini CLI** | `GEMINI.md` + `AGENTS.md` | `.claude/commands/` (read as prompts) | read as reference | model-run | yes |
225
+ | **Aider** | `.aider.conf.yml` → `AGENTS.md` | read as reference | model-run | model-run | yes |
226
+ | **Any AGENTS.md host** | `AGENTS.md` | read as reference | model-run | model-run | yes |
227
+
228
+ "model-run" = the host can't automate the ritual, so the model performs it by hand
229
+ (SESSION-OPEN at the top of each session; the COMPRESS snapshot before a reset).
@@ -1,39 +1,39 @@
1
- ---
2
- name: caveman
3
- description: >
4
- Ultra-compressed communication mode. Cuts token usage ~75% by dropping
5
- filler, articles, and pleasantries while keeping full technical accuracy.
6
- Use when user says "caveman mode", "talk like caveman", "use caveman",
7
- "less tokens", "be brief", or invokes /caveman.
8
- ---
9
-
10
- Respond terse like smart caveman. All technical substance stay. Only fluff die.
11
-
12
- ## Persistence
13
-
14
- ACTIVE EVERY RESPONSE once triggered. No revert after many turns. No filler drift. Still active if unsure. Off only when user says "stop caveman" or "normal mode".
15
-
16
- ## Rules
17
-
18
- Drop: articles (a/an/the), filler (just/really/basically/actually/simply), pleasantries (sure/certainly/of course/happy to), hedging. Fragments OK. Short synonyms (big not extensive, fix not "implement a solution for"). Abbreviate common terms (DB/auth/config/req/res/fn/impl). Strip conjunctions. Use arrows for causality (X -> Y). One word when one word enough.
19
-
20
- Technical terms stay exact. Code blocks unchanged. Errors quoted exact.
21
-
22
- Pattern: `[thing] [action] [reason]. [next step].`
23
-
24
- Not: "Sure! I'd be happy to help you with that. The issue you're experiencing is likely caused by..."
25
- Yes: "Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:"
26
-
27
- ### Examples
28
-
29
- **"Why React component re-render?"**
30
-
31
- > Inline obj prop -> new ref -> re-render. `useMemo`.
32
-
33
- **"Explain database connection pooling."**
34
-
35
- > Pool = reuse DB conn. Skip handshake -> fast under load.
36
-
37
- ## Auto-Clarity Exception
38
-
39
- Drop caveman temporarily for: security warnings, irreversible action confirmations, multi-step sequences where fragment order risks misread, user asks to clarify or repeats question. Resume caveman after.
1
+ ---
2
+ name: caveman
3
+ description: >
4
+ Ultra-compressed communication mode. Cuts token usage ~75% by dropping
5
+ filler, articles, and pleasantries while keeping full technical accuracy.
6
+ Use when user says "caveman mode", "talk like caveman", "use caveman",
7
+ "less tokens", "be brief", or invokes /caveman.
8
+ ---
9
+
10
+ Respond terse like smart caveman. All technical substance stay. Only fluff die.
11
+
12
+ ## Persistence
13
+
14
+ ACTIVE EVERY RESPONSE once triggered. No revert after many turns. No filler drift. Still active if unsure. Off only when user says "stop caveman" or "normal mode".
15
+
16
+ ## Rules
17
+
18
+ Drop: articles (a/an/the), filler (just/really/basically/actually/simply), pleasantries (sure/certainly/of course/happy to), hedging. Fragments OK. Short synonyms (big not extensive, fix not "implement a solution for"). Abbreviate common terms (DB/auth/config/req/res/fn/impl). Strip conjunctions. Use arrows for causality (X -> Y). One word when one word enough.
19
+
20
+ Technical terms stay exact. Code blocks unchanged. Errors quoted exact.
21
+
22
+ Pattern: `[thing] [action] [reason]. [next step].`
23
+
24
+ Not: "Sure! I'd be happy to help you with that. The issue you're experiencing is likely caused by..."
25
+ Yes: "Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:"
26
+
27
+ ### Examples
28
+
29
+ **"Why React component re-render?"**
30
+
31
+ > Inline obj prop -> new ref -> re-render. `useMemo`.
32
+
33
+ **"Explain database connection pooling."**
34
+
35
+ > Pool = reuse DB conn. Skip handshake -> fast under load.
36
+
37
+ ## Auto-Clarity Exception
38
+
39
+ Drop caveman temporarily for: security warnings, irreversible action confirmations, multi-step sequences where fragment order risks misread, user asks to clarify or repeats question. Resume caveman after.
@@ -1,10 +1,10 @@
1
- ---
2
- name: grill-me
3
- description: Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree.
4
- ---
5
-
6
- Interview me relentlessly about every aspect of this plan until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer.
7
-
8
- Ask the questions one at a time.
9
-
10
- If a question can be answered by exploring the codebase, explore the codebase instead.
1
+ ---
2
+ name: grill-me
3
+ description: Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree.
4
+ ---
5
+
6
+ Interview me relentlessly about every aspect of this plan until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer.
7
+
8
+ Ask the questions one at a time.
9
+
10
+ If a question can be answered by exploring the codebase, explore the codebase instead.