@manhquy/flow-skill 0.1.0-rc.1 → 0.1.0-rc.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 (56) hide show
  1. package/CHANGELOG.md +83 -1
  2. package/README.md +17 -31
  3. package/README_VN.md +15 -30
  4. package/bin/cli.mjs +27 -4
  5. package/package.json +3 -2
  6. package/skills/flow/SKILL.md +248 -234
  7. package/skills/flow/_templates/00-idea.md +16 -16
  8. package/skills/flow/_templates/00-inspect.md +42 -42
  9. package/skills/flow/_templates/01-research.md +59 -59
  10. package/skills/flow/_templates/02-scope.md +71 -71
  11. package/skills/flow/_templates/03-prd.md +57 -57
  12. package/skills/flow/_templates/04-adr.md +21 -21
  13. package/skills/flow/_templates/05-contract.md +59 -59
  14. package/skills/flow/_templates/card.md +26 -26
  15. package/skills/flow/eval/fixtures/routing/manifest.tsv +16 -0
  16. package/skills/flow/eval/fixtures/routing/states/state-any-midproject.txt +4 -0
  17. package/skills/flow/eval/fixtures/routing/states/state-cards-todo.txt +4 -0
  18. package/skills/flow/eval/fixtures/routing/states/state-empty.txt +4 -0
  19. package/skills/flow/eval/fixtures/routing/states/state-idea-stage.txt +4 -0
  20. package/skills/flow/eval/fixtures/routing/states/state-review-passed.txt +5 -0
  21. package/skills/flow/eval/fixtures/routing/states/state-review-pending.txt +4 -0
  22. package/skills/flow/eval/fixtures/routing/states/state-scope-stage.txt +4 -0
  23. package/skills/flow/harness/README.md +117 -117
  24. package/skills/flow/harness/schema/001-init.sql +129 -129
  25. package/skills/flow/harness/schema/002-story-verify.sql +9 -9
  26. package/skills/flow/harness/schema/003-tool-registry.sql +15 -15
  27. package/skills/flow/harness/schema/004-intervention.sql +15 -15
  28. package/skills/flow/harness/schema/005-tool-extensions.sql +20 -20
  29. package/skills/flow/harness/schema/009-accessed-count.sql +11 -11
  30. package/skills/flow/harness/schema/010-usage-event.sql +42 -42
  31. package/skills/flow/harness/schema/011-usage-gate-reason.sql +8 -8
  32. package/skills/flow/harness/schema/012-usage-ephemeral.sql +10 -10
  33. package/skills/flow/law/CLAUDE.md +140 -140
  34. package/skills/flow/law/DESIGN.md +141 -141
  35. package/skills/flow/law/RETRO.md +18 -13
  36. package/skills/flow/playbooks/README.md +28 -28
  37. package/skills/flow/playbooks/cloudflare-ai-gateway-qwen.md +346 -346
  38. package/skills/flow/playbooks/docker-deploy-stale-cache.md +32 -32
  39. package/skills/flow/playbooks/rag-lite-postgres-cloudflare.md +192 -192
  40. package/skills/flow/references/adversarial-review.md +202 -197
  41. package/skills/flow/references/agent-detection.md +88 -88
  42. package/skills/flow/references/agent-stage-mapping.md +114 -114
  43. package/skills/flow/references/auto-run.md +81 -81
  44. package/skills/flow/references/claudekit-skills.md +11 -0
  45. package/skills/flow/references/command-dispatch.md +54 -54
  46. package/skills/flow/references/concierge.md +113 -0
  47. package/skills/flow/references/flow-catalog.tsv +18 -0
  48. package/skills/flow/references/forge-idea.md +88 -0
  49. package/skills/flow/references/gate-rules.md +185 -171
  50. package/skills/flow/references/native-rituals.md +133 -0
  51. package/skills/flow/references/project-types.md +42 -42
  52. package/skills/flow/runner/flow.sh +362 -3
  53. package/skills-manifest.json +15 -3
  54. package/src/constants.mjs +19 -2
  55. package/src/help.mjs +8 -2
  56. package/src/prompt.mjs +1 -1
@@ -1,234 +1,248 @@
1
- ---
2
- name: flow
3
- description: Run the buildflow gated build process from idea to real done-evidence. Walk gated stages (Idea->Research->Scope->PRD->ADR->Contract->Cards->Build->Review->Deploy/Ship->Verify->Retro), each with a honest gate that must pass before advancing. Adapts to project type (web|cli|library|skill). Use when starting or driving a real product build, when the user types /flow, /flow next, /flow card, /flow check, or asks to scope/plan/ship a project through gates. Kill at any gate is a valid outcome.
4
- user-invocable: true
5
- when_to_use: "User wants to build a real product end-to-end with discipline (idea -> a deployed URL for web, or installs+runs for a CLI/library/skill), or types any /flow command, or asks for a gated build process, scope decision, contract-first plan, or card-based shipping."
6
- argument-hint: "[ resume | next | card | check C-NNN | project-type web|cli|library|skill | mode teach|work | skip <stage> | ready | workspace add|list|enter|remove|check|doctor | auto | doctor | retro | eval --stage 01|02|card --fixture <id> --n 3 --keep-going --report ]"
7
- keywords: [flow, buildflow, gate, build, ship, scope, prd, contract, card, deploy, vertical-slice, cli, library, skill, worktree, parallel-agents, workspace, multi-agent]
8
- license: MIT
9
- metadata:
10
- author: flow-skill
11
- version: "0.21.0"
12
- attribution: "Methodology from ai20k-build-phase/buildflow (Tony, arealisticdreamer.com); harness/agent layers from repository-harness, claudekit-engineer, BMAD-METHOD."
13
- ---
14
-
15
- # /flow — buildflow gated build harness
16
-
17
- Idea to a **deployed URL**, not idea to paperwork. You walk gated stages; each has an
18
- **output artifact** and a **GATE** — a checklist that must be honestly satisfied before
19
- you advance. **Kill at any gate is a valid, honored outcome** (killing a weak idea at
20
- Scope is cheap and smart).
21
-
22
- ```
23
- Idea -> Research -> Scope -> PRD -> ADR -> Contract -> Cards -> Build -> Review -> Deploy -> Verify-live -> Retro
24
- |------------------ planning (files in flow/) ------------------| |------- shipping (inside cards/) -------|
25
- ```
26
-
27
- ## Two-layer harness (this is the core idea)
28
-
29
- `/flow` is **two layers working together**:
30
-
31
- 1. **Mechanical layer — `runner/flow.sh`** (deterministic, exit 0/1). It manages the
32
- stage/card lifecycle and checks the *cheatable* things: unchecked gate boxes,
33
- leftover `[FILL]` placeholders, card status validity, empty done-evidence. Always run
34
- it first — its exit code is ground truth, never your own judgment.
35
- 2. **Semantic layer — YOU (Claude), via this skill** (quality gatekeeper). The script
36
- cannot tell a real competitor quote from a fabricated one, or a grade-laundered C
37
- feature from an honest B. **That is your job.** After the script passes, apply the
38
- per-stage challenges in `references/gate-rules.md` before you let the operator advance.
39
-
40
- A gate is only truly passed when **both** layers agree. The script can pass while the
41
- content is hollow — catch that.
42
-
43
- ## Running the mechanical layer
44
-
45
- From the **project root** (where `flow/` and `cards/` live), run the runner that ships
46
- with this skill:
47
-
48
- ```
49
- # macOS / Linux / Windows Git Bash:
50
- bash <skill-dir>/runner/flow.sh <command> # e.g. bash ~/.claude/skills/flow/runner/flow.sh next
51
-
52
- # Windows PowerShell or cmd (INCLUDING inside Codex): use the .cmd launcher, NOT bare `bash`.
53
- <skill-dir>\runner\flow.cmd <command> # e.g. ...\.codex\skills\flow\runner\flow.cmd status
54
- # from PowerShell call it directly: & "<skill-dir>\runner\flow.cmd" status
55
- ```
56
-
57
- **Windows / Codex gotcha (read this):** in PowerShell/Codex a bare `bash` usually resolves to
58
- **WSL** (`C:\WINDOWS\system32\bash.exe`), which **cannot** read `C:/...` or `/c/...` paths and
59
- fails with `No such file or directory` — the mechanical layer then looks "broken" when it is not.
60
- **Always invoke `runner/flow.cmd`** on Windows; it locates Git Bash and runs the engine with a
61
- path Git Bash accepts. Only call `bash flow.sh` directly when you've confirmed `bash` is Git Bash.
62
-
63
- `<skill-dir>` is wherever this skill is installed (`~/.claude/skills/flow`, `~/.codex/skills/flow`,
64
- `~/.agents/skills/flow`, the Antigravity homes `~/.gemini/antigravity-cli/skills/flow` (CLI) /
65
- `~/.gemini/config/skills/flow` (IDE), or a project `.claude/skills/flow`). The runner reads/writes
66
- `flow/` and `cards/` under the current directory (override with `FLOW_PROJECT_ROOT`).
67
-
68
- **Antigravity (`agy` CLI / IDE):** flow installs as the same `SKILL.md` bundle; run `agy inspect` to
69
- confirm Antigravity discovered it. The mechanical layer is the **same** `bash flow.sh` / `flow.cmd`
70
- runner — the Windows WSL-bash trap below applies identically (use `flow.cmd` from a Windows shell).
71
- The Antigravity agent invokes shell tools, so it drives `flow.sh` like any other harness.
72
-
73
- **One session per project (concurrency lock).** Two `/flow` sessions sharing one project
74
- will stomp each other's plan. The runner keeps a `flow/.lock` (auto-reclaimed after
75
- `FLOW_LOCK_TTL`, default 900s): mutating commands (`next`/`card`/`skip`/`auto`) refuse a
76
- fresh **foreign** lock and `status` warns. For hard protection, **export a stable
77
- `FLOW_SESSION_ID` once per session** and pass it on every call (e.g.
78
- `FLOW_SESSION_ID=$mysid bash <skill-dir>/runner/flow.sh next`) — without it the runner can
79
- only warn (it can't prove a different session, so it never self-blocks). `FLOW_FORCE=1`
80
- takes over a lock you're sure is dead; `/flow unlock` clears it.
81
-
82
- ## Commands
83
-
84
- | You type | Skill does |
85
- |---|---|
86
- | `/flow` | `flow.sh status` — where am I, what's blocking, card states |
87
- | `/flow resume` | `flow.sh resume` — **read-only session-story brief for entering a project mid-cycle**: last session (command names only, never raw args), in-flight card + dwell, gate state, one `NEXT ->` line. No lock. Run this FIRST when picking up an existing project (see the dispatch rule below). |
88
- | `/flow next` | `flow.sh next` — gate-check current stage; on pass, unlock next stage. **Then** you apply the semantic challenge for the stage just passed. |
89
- | `/flow assess` | `flow.sh assess` — **brownfield**: scaffold + gate a current-state assessment (`flow/00-inspect.md`, auto-scan seeded) for an EXISTING codebase before planning. Operator-reviewed. |
90
- | `/flow card` | `flow.sh card` — create next build card (only after all 6 planning gates pass) |
91
- | `/flow card start C-NNN` | `flow.sh card start` — mark a card **in flight** (operator-visible in-progress; shown in `/flow status`). Tracked in a portable `cards/.inflight` registry, never touches the gated `status:` field. Optional convenience — coexists with hand-editing. |
92
- | `/flow card done C-NNN` | `flow.sh card done` — CLI-owned flip of a card to `done`, gated by the SAME done-rules as `check` (real Evidence + checked Verify); **reverts** if the gate fails (never a hollow done). Coexists with hand-editing `status: done` + `/flow check`. |
93
- | `/flow check C-NNN` | `flow.sh check C-NNN` — validate a card; **then** you review diff-vs-scope, allowed-files drift, contract shapes, DESIGN.md for UI, and that evidence is real world-state |
94
- | `/flow mode teach\|work` | set who writes the artifacts (default `teach`) |
95
- | `/flow ready` | `flow.sh ready` — which todo cards are buildable + parallel-safety hint |
96
- | `/flow workspace add\|list\|enter\|remove\|check\|doctor` | `flow.sh workspace …` — **multi-agent worktree isolation** for running several agents (Claude/Codex/Antigravity, many terminals) in parallel WITHOUT the "one agent switches branch → every terminal flips" trap. Each agent gets its own `git worktree` (own HEAD/index/files, shared object store); git is the live registry (`git worktree list`) and a 10-field JSONL side-file (`.flow/workspaces.jsonl`) adds vendor/card/port/task. `add <branch> [--card C-NNN] [--vendor …] [--task …] [--copy-env]` provisions a worktree + distinct port-offset + paste-ready cd/env block; `list` shows who-is-where; `enter <branch>` re-prints a crashed terminal's env; `check <branch> [--card]` flags branch-claim + allowed-files overlap before you launch; `remove <branch> [--force]` tears down safely (never auto-forces); `doctor` reconciles orphan trees/records. Advisory layer; git's refusal to check out one branch twice is the real lock. |
97
- | `/flow auto` | `flow.sh auto` preflight, then drive the autonomous run (see AUTO principles) |
98
- | `/flow recall` | `flow.sh recall` — read back durable memory (open debt, recent retro, previous-card scope, harness friction/backlog, playbooks) **at the start of a stage/card** so you don't re-learn known pain |
99
- | `/flow usage` | `flow.sh usage` — roll up the mechanical usage log (JSONL flight-recorder of every invocation) into `usage_event` and print build analytics: cycle-time, gate fail-rate, per-stage dwell, cycle completion, command breakdown. `--global` for the device-wide view; `--prune [--keep N]` caps the log (crash-safe). Local-only; disable with `FLOW_LOG_DISABLE=1`/`DO_NOT_TRACK=1`. `recall` now surfaces a one-line usage digest and `retro`'s `propose` flags chronically-failing stages. |
100
- | `/flow contract` | `flow.sh contract` — flag client base-URL vs served-path prefix drift (web; advisory; run after the contract gate) |
101
- | `/flow tokens` | `flow.sh tokens` — flag DESIGN.md vs CSS design-token drift: unused tokens + value mismatches + orphan vars (advisory; UI cards) |
102
- | `/flow coherence` | `flow.sh coherence` — flag version drift across declared version fields (doc-vs-code coherence; advisory) |
103
- | `/flow consistency` | `flow.sh consistency` — audit cross-artifact coverage: every PRD `FRn` is claimed by a card (`implements:`) and served by a contract interface; numeric success metric; no leftover placeholders (advisory; run after the contract gate, before cards) |
104
- | `/flow constitution` | `flow.sh constitution` — check operator-authored per-project invariants in `flow/constitution.md` (structure + optional grep-markers); **advisory and NOT a `next` gate** — run it at the scope/PRD/contract seam, then apply the semantic challenge in `gate-rules.md` |
105
- | `/flow eval [--stage 01\|02\|card] [--fixture <id>] [--n 3] [--timeout <s>] [--keep-going]` | `flow.sh eval` — **behavioral eval**: does the LLM semantic gate (`gate-rules.md`) actually flag a hollow-but-mechanically-clean fixture? Opt-in, **billable** (skips cleanly, zero calls, if `claude` CLI absent); prints a per-stage scorecard. v0.21: on a final-INVALID vote, raw stdout + stderr + rc are persisted to `.flow/eval-raw/<run_id>/` (git-ignored, envelope-stripped) so an INVALID storm is postmortemable; the first UNRELIABLE fixture aborts the batch (`--keep-going` forces full-batch, worst-case ~37 calls at `--n 3`); the retry backoff is env-injectable (`FLOW_EVAL_RETRY_BACKOFF`, default 5s, set 0 in tests). See `references/gate-eval.md` for scope/cost/limitations. |
106
- | `/flow eval --report` | `flow.sh eval --report` — **offline**, zero calls: last complete batch's scorecard + drift vs the prior complete batch |
107
- | `/flow promote <file>` | `flow.sh promote <file>` — copy a playbook into the cross-project KB (`~/.claude/flow/playbooks`); `recall` then surfaces it everywhere |
108
- | `/flow project-type <web\|cli\|library\|skill>` | `flow.sh project-type` — set/read the project type that selects the per-type gate lens (`references/project-types.md`) |
109
- | `/flow skip <stage>` | `flow.sh skip` — advance past a gate that has a matching open `DEBT.md` line; **security-class skips are operator-only and HALT** (never auto-skipped) |
110
- | `/flow doctor` | `flow.sh doctor` — environment/install self-check (paths, runner, Git Bash) |
111
- | `/flow harness … \| debt … \| design` | runner subsystems: `harness` (durable intake/story/trace/decision/backlog — see `harness/README.md`), `debt` (record/list deliberate gate-skips), `design` (mechanical UI-token check) |
112
- | `/flow unlock` | `flow.sh unlock` — clear this project's concurrency lock after a crashed/abandoned session |
113
- | `/flow retro` | the 3 retro questions; the operator writes the line, never you |
114
-
115
- ## Dispatch rules (how to behave for each command)
116
-
117
- 1. **Entering a project mid-cycle? Run `/flow resume` before any other flow verb.** If this is
118
- a fresh session (no prior context in this conversation) and the project already has a
119
- `flow/` or `cards/` dir, `resume` is the read-only session-story brief that replaces
120
- re-deriving state from scratch — last session, in-flight card + dwell, gate state, one
121
- `NEXT ->` line. Skip this only when you already have live context (e.g. you were the one who
122
- just ran `next`/`card` this same session) — running it every single command is unnecessary.
123
- 2. **Always call `flow.sh` first** and read its exit code + output. Relay it faithfully. If it
124
- reports **BLOCKED by another session's lock**, STOP and coordinate — never `FLOW_FORCE` past a
125
- live session; concurrent `/flow` runs corrupt the plan.
126
- 3. **On `next`:** if the script FAILS, stop — report exactly what it listed (line numbers),
127
- and offer to help fill, but **never check a box or write an artifact on the operator's
128
- behalf** in `teach` mode. If the script PASSES, run the **semantic gate** for the stage
129
- just completed (see `references/gate-rules.md`). If you find hollow content (fabricated
130
- quotes, grade-laundering, a pain with no feature, an endpoint with no auth), tell the
131
- operator it mechanically passed but is qualitatively weak, and let them decide. Do not
132
- silently advance past a hollow artifact; do not silently block a sound one.
133
- 4. **On `card`/`check`:** enforce the build-session laws in `law/CLAUDE.md` — one card per
134
- session, touch only `## Allowed files`, contract is the seam, done = world-state proof.
135
- **Before authoring a new stage or card, run `/flow recall`** and treat its output (prior
136
- debt / retro / friction / previous-card scope) as context to apply, not noise.
137
- 5. **Mode `work`:** interview the operator once, draft stages 00–05 yourself, pause only
138
- for scope sign-off, deliver the card set as one summary. Gates and done-rules are
139
- identical to `teach` — you still must pass every gate, you just also author.
140
- 6. **Never** edit `_templates/` or `runner/flow.sh` during a project run. Read any file the
141
- runner just created before editing it.
142
-
143
- ## The three rules under everything (from law/CLAUDE.md)
144
-
145
- 1. **Inspect first.** Before planning, look at what already exists (competitors, live
146
- systems, code). Evidence, not vibes.
147
- 2. **Contract is the seam.** The API contract (stage 05) is written before any code.
148
- Backend builds TO it, UI consumes FROM it. Never improvise a shape; amend the contract
149
- first, then code. Honor a shape now (null/stub) even when its value ships in a later card.
150
- 3. **Done = proof in the world.** Every card names its done-evidence up front. Verify on
151
- the live URL as a user. "Tests pass" / "code merged" are mid-pipeline, never done.
152
-
153
- ## Agent orchestration
154
-
155
- Each stage can delegate to a specialist agent, and degrades to built-in behavior when none
156
- exist — `/flow` stays portable. Priority: **ck: agents first, bmad-* skills as alternative,
157
- built-in fallback** (`references/agent-detection.md`). When the `openai-codex` plugin is present
158
- **and usable**, a cross-vendor **Codex (GPT-5.x) second engine** unlocks — used at three gated
159
- moments: two-strikes rescue, cross-model adversarial review (a different *model*, not just a
160
- different context), and opt-in primary drafter at research/build (default stays ck:). It detects
161
- and degrades like every other tier (installed≠usable; absence never breaks a run). Full seam,
162
- cost gate, and shapes: **`references/codex-integration.md`**. When `agy`/the Antigravity IDE is
163
- present **and usable**, a cross-vendor **Antigravity (Gemini-3) third engine** unlocks too — same
164
- high-value moments, giving a **three-model** adversarial gate. Antigravity needs the strictest
165
- usability check (`agy -p` returns exit 0 + empty stdout even when unauthenticated, so route only on
166
- non-empty expected output, never exit code; headless capture is unreliable → interactive review is
167
- the supported default). Full seam: **`references/antigravity-integration.md`**. The stage→agent map, scoped prompt
168
- template, and durable-record hooks are in `references/agent-stage-mapping.md`:
169
- research→`researcher`, scope/PRD→`planner`, ADR→`architect`, contract→`bmad-spec` kernel,
170
- build→`fullstack-developer`, review→`code-reviewer` or `bmad-code-review` (3-layer
171
- adversarial), verify-live→`tester`. **The gate is identical on every path** — an agent
172
- drafts, the gate still judges. Give each subagent ONLY task + files + acceptance + relevant
173
- law/contract excerpts (no session history); each returns DONE/DONE_WITH_CONCERNS/BLOCKED/
174
- NEEDS_CONTEXT. After a delegation: run the gate, apply the semantic challenge, write the
175
- durable hook (`flow.sh harness ...`), announce which path ran.
176
-
177
- Mode `work` (`references/mode-work.md`): interview once → draft 00-05 → one scope pause →
178
- deliver the card set as one summary. Gates bind the same as `teach`.
179
-
180
- ## AUTO principles
181
-
182
- `/flow auto` drives the build phase autonomously (`references/auto-run.md`). Operator
183
- setting: **Tier-A auto-merge green cards; halt at security-class.** Per card: tier-classify
184
- → one scoped subagent in its own worktree → build to contract → adversarial review →
185
- `flow.sh check` PASS → merge in card order → deploy → **verify on the LIVE URL** (merge ≠
186
- shipped) → world-state evidence → `status: done` → durable trace + `AUTO-LOG.md`.
187
- - **Tier A**: green + no security-class → auto-merge, no ask.
188
- - **Tier B**: fixable issues → one repair by a FRESH subagent (two-strikes), else escalate.
189
- If the fix needs >1 experimental attempt against a single numeric target (not a review
190
- disagreement), reach for `flow.sh loop-prep` + the `ck-loop` skill instead — see
191
- "Loop vs two-strikes" in `references/claudekit-skills.md`.
192
- - **Tier C**: security-class (auth, authorization, admin exposure, tenancy, payments, data
193
- migration, removing validation) → **HALT.** Operator accepts the exposure in `DEBT.md`,
194
- in writing. Never planner-decided.
195
- Hard stops (iteration/token/time caps) and ground-truth gates (`flow.sh` exit, real
196
- `## Verify` runs, live check — never an agent's self-assessment) are mandatory.
197
-
198
- ## Law & reference files
199
-
200
- - `law/CLAUDE.md` — build-session discipline, card sequence, PR/merge, debt, worktree, forbidden. **Read before building any card.**
201
- - `law/DESIGN.md` — UI law for every mock/frontend card (tokens, affordance ladder, object-first, never-do list).
202
- - `law/RETRO.md` — one honest line per run.
203
- - `references/gate-rules.md` — the per-stage semantic challenges (the heart of your gatekeeping).
204
- - `references/stage-state-machine.md` — stage order, unlock conditions, what each artifact must contain.
205
- - `references/project-types.md` — per-type (web|cli|library|skill) adaptations of the stages, gate lenses, and done-evidence.
206
- - `references/command-dispatch.md` — exact mapping of each `/flow` command to runner call + your duties.
207
- - `references/agent-detection.md` — detect ck:/bmad agents + priority + fallback.
208
- - `references/agent-stage-mapping.md` — stage→agent map, scoped prompt template, durable hooks.
209
- - `references/claudekit-skills.md` — the **skill layer** on top of the agents: the curated per-stage ck-skill whitelist ("what to use when"), the 6 deep-wired high-ROI skills (ck-predict@ADR, ck-scenario@Contract, review-pr@Review/Ship, ck-security@security-cards, retro@Retro, ck-loop@Build/Verify), the binding rules (skill INFORMS / gate JUDGES; Claude-side detection + silent degrade; opt-in-with-prompt, off the hot path), and the loop-vs-two-strikes decision matrix (`flow.sh loop-prep`/`loop-log` plumbing, ck-loop as the untouched execution engine).
210
- - `references/codex-integration.md` — the Codex cross-vendor second-engine seam: detection (installed≠usable), cost gate, invocation surfaces, ReviewResult shape, gate parity.
211
- - `references/antigravity-integration.md` — the Antigravity (Gemini-3) cross-vendor third-engine seam: install homes, strict usability (exit code lies → route on non-empty output), interactive-default review, cost/data gate, gate parity.
212
- - `references/gate-rules.md` → "Cross-artifact consistency" — the semantic passes behind `/flow consistency` (hollow coverage, conflicting requirements, cut-list contradiction, terminology drift) that the runner's ID-based check can't judge.
213
- - `references/mode-work.md` — work-mode script (interview once → draft → one scope pause → summary).
214
- - `references/auto-run.md` — `/flow auto` tiers, worktree loop, AUTO-LOG, security-class halt.
215
- - `references/loop-harness-2026-principles.md` — harness-first, hard stops, ground-truth, context isolation.
216
- - `references/ground-truth-gates.md` — the mechanical signal each gate decides on (never self-assessment).
217
- - `references/adversarial-review.md` — the 3-layer "must find issues" Review gate + triage.
218
- - `references/debt-and-halts.md` — `DEBT.md` ledger, security-class Tier-C halt, when a run halts.
219
- - `references/design-review-checklist.md` — UI card review (mechanical `flow.sh design` + semantic DESIGN.md).
220
- - `references/ui-patterns-tcr.md` — 7 UI patterns + T-C-R frame + pattern-choice priority rules.
221
- - `references/gate-eval.md` — `/flow eval` behavioral proof for the semantic layer: what it
222
- measures (a fresh-judge lower bound, NOT the work-mode self-challenge), cost, thresholds,
223
- and the honest authorship-bias limitation. Read before running or relaying a scorecard.
224
- - `harness/` — durable layer (`flow.sh harness ...`): intake/story/trace/decision/backlog. See `harness/README.md`. Read it back with `/flow recall` (open debt, retro, previous-card, friction, backlog, playbooks) — this is the capture→reuse loop.
225
- - `playbooks/` — paid-for stack knowledge: read before building a card on that stack, harvest the lesson after.
226
- - `_templates/` — the 7 artifacts the runner copies into `flow/` and `cards/`. Never edit during a run.
227
-
228
- ## Forbidden
229
-
230
- - Checking a gate box or writing a planning artifact on the operator's behalf (in `teach` mode).
231
- - Setting a card `done` without pasted world-state evidence.
232
- - Building two cards in one session, or in parallel before `/flow ready` marks them safe.
233
- - Frontend code before the UI mock card is approved.
234
- - Editing `_templates/` or `runner/flow.sh` during a project run.
1
+ ---
2
+ name: flow
3
+ description: Run the buildflow gated build process from idea to real done-evidence. Walk gated stages (Idea->Research->Scope->PRD->ADR->Contract->Cards->Build->Review->Deploy/Ship->Verify->Retro), each with a honest gate that must pass before advancing. Adapts to project type (web|cli|library|skill). Use when starting or driving a real product build, when the user types /flow, /flow next, /flow card, /flow check, or asks to scope/plan/ship a project through gates. Kill at any gate is a valid outcome.
4
+ user-invocable: true
5
+ when_to_use: "User wants to build a real product end-to-end with discipline (idea -> a deployed URL for web, or installs+runs for a CLI/library/skill), or types any /flow command, or asks for a gated build process, scope decision, contract-first plan, or card-based shipping."
6
+ argument-hint: "[ resume | next | card | check C-NNN | project-type web|cli|library|skill | mode teach|work | skip <stage> | ready | workspace add|list|enter|remove|check|doctor | auto | doctor | retro | eval --stage 01|02|card|routing --fixture <id> --n 3 --keep-going --report | or just say what you want in plain language ]"
7
+ keywords: [flow, buildflow, gate, build, ship, scope, prd, contract, card, deploy, vertical-slice, cli, library, skill, worktree, parallel-agents, workspace, multi-agent]
8
+ license: MIT
9
+ metadata:
10
+ author: flow-skill
11
+ version: "0.22.0"
12
+ attribution: "Methodology from ai20k-build-phase/buildflow (Tony, arealisticdreamer.com); harness/agent layers from repository-harness, claudekit-engineer, BMAD-METHOD. v0.22 concierge routing pattern adapted from BMAD-METHOD's bmad-help; forge-idea ritual adapted from BMAD-METHOD's bmad-forge-idea (both MIT, BMad Code LLC)."
13
+ ---
14
+
15
+ # /flow — buildflow gated build harness
16
+
17
+ Idea to a **deployed URL**, not idea to paperwork. You walk gated stages; each has an
18
+ **output artifact** and a **GATE** — a checklist that must be honestly satisfied before
19
+ you advance. **Kill at any gate is a valid, honored outcome** (killing a weak idea at
20
+ Scope is cheap and smart).
21
+
22
+ ```
23
+ Idea -> Research -> Scope -> PRD -> ADR -> Contract -> Cards -> Build -> Review -> Deploy -> Verify-live -> Retro
24
+ |------------------ planning (files in flow/) ------------------| |------- shipping (inside cards/) -------|
25
+ ```
26
+
27
+ ## Two-layer harness (this is the core idea)
28
+
29
+ `/flow` is **two layers working together**:
30
+
31
+ 1. **Mechanical layer — `runner/flow.sh`** (deterministic, exit 0/1). It manages the
32
+ stage/card lifecycle and checks the *cheatable* things: unchecked gate boxes,
33
+ leftover `[FILL]` placeholders, card status validity, empty done-evidence. Always run
34
+ it first — its exit code is ground truth, never your own judgment.
35
+ 2. **Semantic layer — YOU (Claude), via this skill** (quality gatekeeper). The script
36
+ cannot tell a real competitor quote from a fabricated one, or a grade-laundered C
37
+ feature from an honest B. **That is your job.** After the script passes, apply the
38
+ per-stage challenges in `references/gate-rules.md` before you let the operator advance.
39
+
40
+ A gate is only truly passed when **both** layers agree. The script can pass while the
41
+ content is hollow — catch that.
42
+
43
+ ## Running the mechanical layer
44
+
45
+ From the **project root** (where `flow/` and `cards/` live), run the runner that ships
46
+ with this skill:
47
+
48
+ ```
49
+ # macOS / Linux / Windows Git Bash:
50
+ bash <skill-dir>/runner/flow.sh <command> # e.g. bash ~/.claude/skills/flow/runner/flow.sh next
51
+
52
+ # Windows PowerShell or cmd (INCLUDING inside Codex): use the .cmd launcher, NOT bare `bash`.
53
+ <skill-dir>\runner\flow.cmd <command> # e.g. ...\.codex\skills\flow\runner\flow.cmd status
54
+ # from PowerShell call it directly: & "<skill-dir>\runner\flow.cmd" status
55
+ ```
56
+
57
+ **Windows / Codex gotcha (read this):** in PowerShell/Codex a bare `bash` usually resolves to
58
+ **WSL** (`C:\WINDOWS\system32\bash.exe`), which **cannot** read `C:/...` or `/c/...` paths and
59
+ fails with `No such file or directory` — the mechanical layer then looks "broken" when it is not.
60
+ **Always invoke `runner/flow.cmd`** on Windows; it locates Git Bash and runs the engine with a
61
+ path Git Bash accepts. Only call `bash flow.sh` directly when you've confirmed `bash` is Git Bash.
62
+
63
+ `<skill-dir>` is wherever this skill is installed (`~/.claude/skills/flow`, `~/.codex/skills/flow`,
64
+ `~/.agents/skills/flow`, the Antigravity homes `~/.gemini/antigravity-cli/skills/flow` (CLI) /
65
+ `~/.gemini/config/skills/flow` (IDE), or a project `.claude/skills/flow`). The runner reads/writes
66
+ `flow/` and `cards/` under the current directory (override with `FLOW_PROJECT_ROOT`).
67
+
68
+ **Antigravity (`agy` CLI / IDE):** flow installs as the same `SKILL.md` bundle; run `agy inspect` to
69
+ confirm Antigravity discovered it. The mechanical layer is the **same** `bash flow.sh` / `flow.cmd`
70
+ runner — the Windows WSL-bash trap below applies identically (use `flow.cmd` from a Windows shell).
71
+ The Antigravity agent invokes shell tools, so it drives `flow.sh` like any other harness.
72
+
73
+ **One session per project (concurrency lock).** Two `/flow` sessions sharing one project
74
+ will stomp each other's plan. The runner keeps a `flow/.lock` (auto-reclaimed after
75
+ `FLOW_LOCK_TTL`, default 900s): mutating commands (`next`/`card`/`skip`/`auto`) refuse a
76
+ fresh **foreign** lock and `status` warns. For hard protection, **export a stable
77
+ `FLOW_SESSION_ID` once per session** and pass it on every call (e.g.
78
+ `FLOW_SESSION_ID=$mysid bash <skill-dir>/runner/flow.sh next`) — without it the runner can
79
+ only warn (it can't prove a different session, so it never self-blocks). `FLOW_FORCE=1`
80
+ takes over a lock you're sure is dead; `/flow unlock` clears it.
81
+
82
+ ## Commands
83
+
84
+ | You type | Skill does |
85
+ |---|---|
86
+ | `/flow` | `flow.sh status` — where am I, what's blocking, card states |
87
+ | `/flow resume` | `flow.sh resume` — **read-only session-story brief for entering a project mid-cycle**: last session (command names only, never raw args), in-flight card + dwell, gate state, one `NEXT ->` line. No lock. Run this FIRST when picking up an existing project (see the dispatch rule below). |
88
+ | `/flow next` | `flow.sh next` — gate-check current stage; on pass, unlock next stage. **Then** you apply the semantic challenge for the stage just passed. |
89
+ | `/flow assess` | `flow.sh assess` — **brownfield**: scaffold + gate a current-state assessment (`flow/00-inspect.md`, auto-scan seeded) for an EXISTING codebase before planning. Operator-reviewed. |
90
+ | `/flow card` | `flow.sh card` — create next build card (only after all 6 planning gates pass) |
91
+ | `/flow card start C-NNN` | `flow.sh card start` — mark a card **in flight** (operator-visible in-progress; shown in `/flow status`). Tracked in a portable `cards/.inflight` registry, never touches the gated `status:` field. Optional convenience — coexists with hand-editing. |
92
+ | `/flow card done C-NNN` | `flow.sh card done` — CLI-owned flip of a card to `done`, gated by the SAME done-rules as `check` (real Evidence + checked Verify); **reverts** if the gate fails (never a hollow done). Coexists with hand-editing `status: done` + `/flow check`. |
93
+ | `/flow check C-NNN` | `flow.sh check C-NNN` — validate a card; **then** you review diff-vs-scope, allowed-files drift, contract shapes, DESIGN.md for UI, and that evidence is real world-state |
94
+ | `/flow mode teach\|work` | set who writes the artifacts (default `teach`) |
95
+ | `/flow ready` | `flow.sh ready` — which todo cards are buildable + parallel-safety hint |
96
+ | `/flow workspace add\|list\|enter\|remove\|check\|doctor` | `flow.sh workspace …` — **multi-agent worktree isolation** for running several agents (Claude/Codex/Antigravity, many terminals) in parallel WITHOUT the "one agent switches branch → every terminal flips" trap. Each agent gets its own `git worktree` (own HEAD/index/files, shared object store); git is the live registry (`git worktree list`) and a 10-field JSONL side-file (`.flow/workspaces.jsonl`) adds vendor/card/port/task. `add <branch> [--card C-NNN] [--vendor …] [--task …] [--copy-env]` provisions a worktree + distinct port-offset + paste-ready cd/env block; `list` shows who-is-where; `enter <branch>` re-prints a crashed terminal's env; `check <branch> [--card]` flags branch-claim + allowed-files overlap before you launch; `remove <branch> [--force]` tears down safely (never auto-forces); `doctor` reconciles orphan trees/records. Advisory layer; git's refusal to check out one branch twice is the real lock. |
97
+ | `/flow auto` | `flow.sh auto` preflight, then drive the autonomous run (see AUTO principles) |
98
+ | `/flow recall` | `flow.sh recall` — read back durable memory (open debt, recent retro, previous-card scope, harness friction/backlog, playbooks) **at the start of a stage/card** so you don't re-learn known pain |
99
+ | `/flow usage` | `flow.sh usage` — roll up the mechanical usage log (JSONL flight-recorder of every invocation) into `usage_event` and print build analytics: cycle-time, gate fail-rate, per-stage dwell, cycle completion, command breakdown. `--global` for the device-wide view; `--prune [--keep N]` caps the log (crash-safe). Local-only; disable with `FLOW_LOG_DISABLE=1`/`DO_NOT_TRACK=1`. `recall` now surfaces a one-line usage digest and `retro`'s `propose` flags chronically-failing stages. |
100
+ | `/flow contract` | `flow.sh contract` — flag client base-URL vs served-path prefix drift (web; advisory; run after the contract gate) |
101
+ | `/flow tokens` | `flow.sh tokens` — flag DESIGN.md vs CSS design-token drift: unused tokens + value mismatches + orphan vars (advisory; UI cards) |
102
+ | `/flow coherence` | `flow.sh coherence` — flag version drift across declared version fields (doc-vs-code coherence; advisory) |
103
+ | `/flow consistency` | `flow.sh consistency` — audit cross-artifact coverage: every PRD `FRn` is claimed by a card (`implements:`) and served by a contract interface; numeric success metric; no leftover placeholders (advisory; run after the contract gate, before cards) |
104
+ | `/flow constitution` | `flow.sh constitution` — check operator-authored per-project invariants in `flow/constitution.md` (structure + optional grep-markers); **advisory and NOT a `next` gate** — run it at the scope/PRD/contract seam, then apply the semantic challenge in `gate-rules.md` |
105
+ | `/flow eval [--stage 01\|02\|card] [--fixture <id>] [--n 3] [--timeout <s>] [--keep-going]` | `flow.sh eval` — **behavioral eval**: does the LLM semantic gate (`gate-rules.md`) actually flag a hollow-but-mechanically-clean fixture? Opt-in, **billable** (skips cleanly, zero calls, if `claude` CLI absent); prints a per-stage scorecard. v0.21: on a final-INVALID vote, raw stdout + stderr + rc are persisted to `.flow/eval-raw/<run_id>/` (git-ignored, envelope-stripped) so an INVALID storm is postmortemable; the first UNRELIABLE fixture aborts the batch (`--keep-going` forces full-batch, worst-case ~37 calls at `--n 3`); the retry backoff is env-injectable (`FLOW_EVAL_RETRY_BACKOFF`, default 5s, set 0 in tests). See `references/gate-eval.md` for scope/cost/limitations. |
106
+ | `/flow eval --report` | `flow.sh eval --report` — **offline**, zero calls: last complete batch's scorecard + drift vs the prior complete batch |
107
+ | `/flow promote <file>` | `flow.sh promote <file>` — copy a playbook into the cross-project KB (`~/.claude/flow/playbooks`); `recall` then surfaces it everywhere |
108
+ | `/flow project-type <web\|cli\|library\|skill>` | `flow.sh project-type` — set/read the project type that selects the per-type gate lens (`references/project-types.md`) |
109
+ | `/flow skip <stage>` | `flow.sh skip` — advance past a gate that has a matching open `DEBT.md` line; **security-class skips are operator-only and HALT** (never auto-skipped) |
110
+ | `/flow doctor` | `flow.sh doctor` — environment/install self-check (paths, runner, Git Bash) |
111
+ | `/flow harness … \| debt … \| design` | runner subsystems: `harness` (durable intake/story/trace/decision/backlog — see `harness/README.md`), `debt` (record/list deliberate gate-skips), `design` (mechanical UI-token check) |
112
+ | `/flow unlock` | `flow.sh unlock` — clear this project's concurrency lock after a crashed/abandoned session |
113
+ | `/flow retro` | the 3 retro questions; the operator writes the line, never you |
114
+
115
+ ## Conversational entry (default)
116
+
117
+ Chat is the default front door — most operators should never need to learn a verb.
118
+ Any natural-language ask routes through `references/concierge.md`: run `flow.sh status`
119
+ (ground truth, never guess) → look up the closest row in `references/flow-catalog.tsv`
120
+ → propose exactly ONE next action in plain language, zero-jargon → offer to run it,
121
+ following the file's May-run/Must-ask default-deny classification. Typed verbs always
122
+ win — the concierge never intercepts an explicit `/flow <verb>`. New users get one
123
+ plain consent question before the concierge switches to `mode work` on their behalf.
124
+
125
+ ## Dispatch rules (how to behave for each command)
126
+
127
+ 1. **Entering a project mid-cycle? Run `/flow resume` before any other flow verb.** If this is
128
+ a fresh session (no prior context in this conversation) and the project already has a
129
+ `flow/` or `cards/` dir, `resume` is the read-only session-story brief that replaces
130
+ re-deriving state from scratch — last session, in-flight card + dwell, gate state, one
131
+ `NEXT ->` line. Skip this only when you already have live context (e.g. you were the one who
132
+ just ran `next`/`card` this same session) — running it every single command is unnecessary.
133
+ 2. **Always call `flow.sh` first** and read its exit code + output. Relay it faithfully. If it
134
+ reports **BLOCKED by another session's lock**, STOP and coordinate — never `FLOW_FORCE` past a
135
+ live session; concurrent `/flow` runs corrupt the plan.
136
+ 3. **On `next`:** if the script FAILS, stop — report exactly what it listed (line numbers),
137
+ and offer to help fill, but **never check a box or write an artifact on the operator's
138
+ behalf** in `teach` mode. If the script PASSES, run the **semantic gate** for the stage
139
+ just completed (see `references/gate-rules.md`). If you find hollow content (fabricated
140
+ quotes, grade-laundering, a pain with no feature, an endpoint with no auth), tell the
141
+ operator it mechanically passed but is qualitatively weak, and let them decide. Do not
142
+ silently advance past a hollow artifact; do not silently block a sound one.
143
+ 4. **On `card`/`check`:** enforce the build-session laws in `law/CLAUDE.md` — one card per
144
+ session, touch only `## Allowed files`, contract is the seam, done = world-state proof.
145
+ **Before authoring a new stage or card, run `/flow recall`** and treat its output (prior
146
+ debt / retro / friction / previous-card scope) as context to apply, not noise.
147
+ 5. **Mode `work`:** interview the operator once, draft stages 00–05 yourself, pause only
148
+ for scope sign-off, deliver the card set as one summary. Gates and done-rules are
149
+ identical to `teach` — you still must pass every gate, you just also author.
150
+ 6. **Never** edit `_templates/` or `runner/flow.sh` during a project run. Read any file the
151
+ runner just created before editing it.
152
+
153
+ ## The three rules under everything (from law/CLAUDE.md)
154
+
155
+ 1. **Inspect first.** Before planning, look at what already exists (competitors, live
156
+ systems, code). Evidence, not vibes.
157
+ 2. **Contract is the seam.** The API contract (stage 05) is written before any code.
158
+ Backend builds TO it, UI consumes FROM it. Never improvise a shape; amend the contract
159
+ first, then code. Honor a shape now (null/stub) even when its value ships in a later card.
160
+ 3. **Done = proof in the world.** Every card names its done-evidence up front. Verify on
161
+ the live URL as a user. "Tests pass" / "code merged" are mid-pipeline, never done.
162
+
163
+ ## Agent orchestration
164
+
165
+ Each stage can delegate to a specialist agent, and degrades to built-in behavior when none
166
+ exist — `/flow` stays portable. Priority: **ck: agents first, bmad-* skills as alternative,
167
+ built-in fallback** (`references/agent-detection.md`). When the `openai-codex` plugin is present
168
+ **and usable**, a cross-vendor **Codex (GPT-5.x) second engine** unlocks — used at three gated
169
+ moments: two-strikes rescue, cross-model adversarial review (a different *model*, not just a
170
+ different context), and opt-in primary drafter at research/build (default stays ck:). It detects
171
+ and degrades like every other tier (installed≠usable; absence never breaks a run). Full seam,
172
+ cost gate, and shapes: **`references/codex-integration.md`**. When `agy`/the Antigravity IDE is
173
+ present **and usable**, a cross-vendor **Antigravity (Gemini-3) third engine** unlocks too — same
174
+ high-value moments, giving a **three-model** adversarial gate. Antigravity needs the strictest
175
+ usability check (`agy -p` returns exit 0 + empty stdout even when unauthenticated, so route only on
176
+ non-empty expected output, never exit code; headless capture is unreliable → interactive review is
177
+ the supported default). Full seam: **`references/antigravity-integration.md`**. The stage→agent map, scoped prompt
178
+ template, and durable-record hooks are in `references/agent-stage-mapping.md`:
179
+ research→`researcher`, scope/PRD→`planner`, ADR→`architect`, contract→`bmad-spec` kernel,
180
+ build→`fullstack-developer`, review→`code-reviewer` or `bmad-code-review` (3-layer
181
+ adversarial), verify-live→`tester`. **The gate is identical on every path** — an agent
182
+ drafts, the gate still judges. Give each subagent ONLY task + files + acceptance + relevant
183
+ law/contract excerpts (no session history); each returns DONE/DONE_WITH_CONCERNS/BLOCKED/
184
+ NEEDS_CONTEXT. After a delegation: run the gate, apply the semantic challenge, write the
185
+ durable hook (`flow.sh harness ...`), announce which path ran.
186
+
187
+ Mode `work` (`references/mode-work.md`): interview once → draft 00-05 → one scope pause →
188
+ deliver the card set as one summary. Gates bind the same as `teach`.
189
+
190
+ ## AUTO principles
191
+
192
+ `/flow auto` drives the build phase autonomously (`references/auto-run.md`). Operator
193
+ setting: **Tier-A auto-merge green cards; halt at security-class.** Per card: tier-classify
194
+ → one scoped subagent in its own worktree → build to contract → adversarial review →
195
+ `flow.sh check` PASS → merge in card order → deploy → **verify on the LIVE URL** (merge ≠
196
+ shipped) → world-state evidence → `status: done` → durable trace + `AUTO-LOG.md`.
197
+ - **Tier A**: green + no security-class → auto-merge, no ask.
198
+ - **Tier B**: fixable issues → one repair by a FRESH subagent (two-strikes), else escalate.
199
+ If the fix needs >1 experimental attempt against a single numeric target (not a review
200
+ disagreement), reach for `flow.sh loop-prep` + the native loop protocol
201
+ (`references/native-rituals.md` §5) instead — richer with the `ck-loop` skill if
202
+ installed. See "Loop vs two-strikes" in `references/claudekit-skills.md`.
203
+ - **Tier C**: security-class (auth, authorization, admin exposure, tenancy, payments, data
204
+ migration, removing validation) → **HALT.** Operator accepts the exposure in `DEBT.md`,
205
+ in writing. Never planner-decided.
206
+ Hard stops (iteration/token/time caps) and ground-truth gates (`flow.sh` exit, real
207
+ `## Verify` runs, live check — never an agent's self-assessment) are mandatory.
208
+
209
+ ## Law & reference files
210
+
211
+ - `law/CLAUDE.md` — build-session discipline, card sequence, PR/merge, debt, worktree, forbidden. **Read before building any card.**
212
+ - `law/DESIGN.md` — UI law for every mock/frontend card (tokens, affordance ladder, object-first, never-do list).
213
+ - `law/RETRO.md` — one honest line per run.
214
+ - `references/gate-rules.md` — the per-stage semantic challenges (the heart of your gatekeeping).
215
+ - `references/stage-state-machine.md` — stage order, unlock conditions, what each artifact must contain.
216
+ - `references/project-types.md` — per-type (web|cli|library|skill) adaptations of the stages, gate lenses, and done-evidence.
217
+ - `references/command-dispatch.md` — exact mapping of each `/flow` command to runner call + your duties.
218
+ - `references/concierge.md` — the default conversational entry: routing loop, May-run/Must-ask default-deny classification, new-user consent script.
219
+ - `references/flow-catalog.tsv` — the intent-class × state → action routing table the concierge reads (source of truth for automated checks).
220
+ - `references/forge-idea.md` — the Idea/Scope persona-interrogation ritual (adapted from BMAD-METHOD's `bmad-forge-idea`, MIT, opt-in, never a gate condition).
221
+ - `references/agent-detection.md` — detect ck:/bmad agents + priority + fallback.
222
+ - `references/agent-stage-mapping.md` — stage→agent map, scoped prompt template, durable hooks.
223
+ - `references/claudekit-skills.md` — the **skill layer** on top of the agents: the curated per-stage ck-skill whitelist ("what to use when"), the 6 deep-wired high-ROI skills (ck-predict@ADR, ck-scenario@Contract, review-pr@Review/Ship, ck-security@security-cards, retro@Retro, ck-loop@Build/Verify), the binding rules (skill INFORMS / gate JUDGES; Claude-side detection + silent degrade; opt-in-with-prompt, off the hot path), and the loop-vs-two-strikes decision matrix (`flow.sh loop-prep`/`loop-log` plumbing, ck-loop as the untouched execution engine).
224
+ - `references/codex-integration.md` — the Codex cross-vendor second-engine seam: detection (installed≠usable), cost gate, invocation surfaces, ReviewResult shape, gate parity.
225
+ - `references/antigravity-integration.md` — the Antigravity (Gemini-3) cross-vendor third-engine seam: install homes, strict usability (exit code lies → route on non-empty output), interactive-default review, cost/data gate, gate parity.
226
+ - `references/gate-rules.md` → "Cross-artifact consistency" — the semantic passes behind `/flow consistency` (hollow coverage, conflicting requirements, cut-list contradiction, terminology drift) that the runner's ID-based check can't judge.
227
+ - `references/mode-work.md` — work-mode script (interview once → draft → one scope pause → summary).
228
+ - `references/auto-run.md` — `/flow auto` tiers, worktree loop, AUTO-LOG, security-class halt.
229
+ - `references/loop-harness-2026-principles.md` — harness-first, hard stops, ground-truth, context isolation.
230
+ - `references/ground-truth-gates.md` — the mechanical signal each gate decides on (never self-assessment).
231
+ - `references/adversarial-review.md` — the 3-layer "must find issues" Review gate + triage.
232
+ - `references/debt-and-halts.md` — `DEBT.md` ledger, security-class Tier-C halt, when a run halts.
233
+ - `references/design-review-checklist.md` — UI card review (mechanical `flow.sh design` + semantic DESIGN.md).
234
+ - `references/ui-patterns-tcr.md` — 7 UI patterns + T-C-R frame + pattern-choice priority rules.
235
+ - `references/gate-eval.md` — `/flow eval` behavioral proof for the semantic layer: what it
236
+ measures (a fresh-judge lower bound, NOT the work-mode self-challenge), cost, thresholds,
237
+ and the honest authorship-bias limitation. Read before running or relaying a scorecard.
238
+ - `harness/` — durable layer (`flow.sh harness ...`): intake/story/trace/decision/backlog. See `harness/README.md`. Read it back with `/flow recall` (open debt, retro, previous-card, friction, backlog, playbooks) — this is the capture→reuse loop.
239
+ - `playbooks/` — paid-for stack knowledge: read before building a card on that stack, harvest the lesson after.
240
+ - `_templates/` — the 7 artifacts the runner copies into `flow/` and `cards/`. Never edit during a run.
241
+
242
+ ## Forbidden
243
+
244
+ - Checking a gate box or writing a planning artifact on the operator's behalf (in `teach` mode).
245
+ - Setting a card `done` without pasted world-state evidence.
246
+ - Building two cards in one session, or in parallel before `/flow ready` marks them safe.
247
+ - Frontend code before the UI mock card is approved.
248
+ - Editing `_templates/` or `runner/flow.sh` during a project run.
@@ -1,16 +1,16 @@
1
- # Stage 00 — Idea
2
-
3
- ## Gate — check ALL before `/flow next`
4
- - [ ] The pitch below is 3 sentences, no more
5
- - [ ] I can name at least ONE real person/group who has this pain (named below)
6
- - [ ] No FILL placeholders remain in this file
7
-
8
- ## Pitch (3 sentences: who, pain, what you'd build)
9
-
10
- [FILL: sentence 1 — who has the problem]
11
- [FILL: sentence 2 — what the pain is, concretely]
12
- [FILL: sentence 3 — what you would build]
13
-
14
- ## One real person/group with this pain
15
-
16
- [FILL: name a real person, community, or group you have actually seen express this pain]
1
+ # Stage 00 — Idea
2
+
3
+ ## Gate — check ALL before `/flow next`
4
+ - [ ] The pitch below is 3 sentences, no more
5
+ - [ ] I can name at least ONE real person/group who has this pain (named below)
6
+ - [ ] No FILL placeholders remain in this file
7
+
8
+ ## Pitch (3 sentences: who, pain, what you'd build)
9
+
10
+ [FILL: sentence 1 — who has the problem]
11
+ [FILL: sentence 2 — what the pain is, concretely]
12
+ [FILL: sentence 3 — what you would build]
13
+
14
+ ## One real person/group with this pain
15
+
16
+ [FILL: name a real person, community, or group you have actually seen express this pain]