@curdx/flow 2.2.0 → 2.2.3

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 (78) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +19 -2
  3. package/README.md +15 -8
  4. package/README.zh.md +5 -3
  5. package/agent-preamble/preamble.md +33 -0
  6. package/agents/flow-adversary.md +1 -1
  7. package/agents/flow-architect.md +2 -1
  8. package/agents/flow-brownfield-analyst.md +153 -0
  9. package/agents/flow-debugger.md +6 -11
  10. package/agents/flow-edge-hunter.md +1 -1
  11. package/agents/flow-executor.md +30 -8
  12. package/agents/flow-planner.md +38 -5
  13. package/agents/flow-product-designer.md +2 -1
  14. package/agents/flow-qa-engineer.md +9 -5
  15. package/agents/flow-researcher.md +2 -1
  16. package/agents/flow-reviewer.md +23 -5
  17. package/agents/flow-security-auditor.md +5 -3
  18. package/agents/flow-triage-analyst.md +5 -24
  19. package/agents/flow-ui-researcher.md +4 -3
  20. package/agents/flow-ux-designer.md +12 -39
  21. package/agents/flow-verifier.md +35 -3
  22. package/cli/README.md +3 -1
  23. package/cli/doctor-workflow.js +1074 -2
  24. package/cli/doctor.js +8 -0
  25. package/cli/help.js +2 -0
  26. package/cli/lib/doctor-report.js +256 -1
  27. package/cli/lib/frontmatter.js +44 -0
  28. package/cli/lib/json-schema.js +57 -0
  29. package/cli/lib/runtime.js +20 -2
  30. package/cli/utils.js +6 -1
  31. package/gates/adversarial-review-gate.md +1 -1
  32. package/gates/security-gate.md +2 -2
  33. package/gates/test-quality-gate.md +59 -0
  34. package/hooks/hooks.json +16 -2
  35. package/hooks/scripts/common.sh +4 -0
  36. package/hooks/scripts/session-start.sh +17 -2
  37. package/hooks/scripts/stop-watcher.sh +69 -18
  38. package/hooks/scripts/subagent-artifact-guard.sh +159 -0
  39. package/hooks/scripts/subagent-statusline.sh +105 -0
  40. package/knowledge/atomic-commits.md +1 -1
  41. package/knowledge/claude-code-runtime-contracts.md +203 -0
  42. package/knowledge/epic-decomposition.md +1 -1
  43. package/knowledge/execution-strategies.md +23 -1
  44. package/knowledge/planning-reviews.md +2 -2
  45. package/knowledge/poc-first-workflow.md +8 -8
  46. package/knowledge/review-feedback-intake.md +57 -0
  47. package/knowledge/two-stage-review.md +19 -6
  48. package/knowledge/wave-execution.md +16 -1
  49. package/output-styles/curdx-evidence-first.md +34 -0
  50. package/package.json +7 -1
  51. package/schemas/agent-frontmatter.schema.json +0 -7
  52. package/schemas/config.schema.json +14 -0
  53. package/schemas/hooks.schema.json +34 -2
  54. package/schemas/output-style-frontmatter.schema.json +22 -0
  55. package/schemas/plugin-manifest.schema.json +387 -17
  56. package/schemas/plugin-settings.schema.json +29 -0
  57. package/schemas/skill-frontmatter.schema.json +109 -4
  58. package/schemas/spec-state.schema.json +29 -4
  59. package/settings.json +6 -0
  60. package/skills/brownfield-index/SKILL.md +31 -35
  61. package/skills/browser-qa/SKILL.md +11 -3
  62. package/skills/cancel/SKILL.md +82 -0
  63. package/skills/debug/SKILL.md +6 -2
  64. package/skills/epic/SKILL.md +5 -3
  65. package/skills/fast/SKILL.md +1 -0
  66. package/skills/help/SKILL.md +17 -7
  67. package/skills/implement/SKILL.md +38 -7
  68. package/skills/init/SKILL.md +2 -1
  69. package/skills/review/SKILL.md +4 -1
  70. package/skills/security-audit/SKILL.md +17 -3
  71. package/skills/spec/SKILL.md +2 -1
  72. package/skills/start/SKILL.md +18 -18
  73. package/skills/status/SKILL.md +85 -0
  74. package/skills/ui-sketch/SKILL.md +11 -3
  75. package/skills/verify/SKILL.md +13 -1
  76. package/templates/config.json.tmpl +4 -1
  77. package/templates/progress.md.tmpl +19 -0
  78. package/templates/tasks.md.tmpl +26 -3
@@ -6,7 +6,7 @@
6
6
  },
7
7
  "metadata": {
8
8
  "description": "Claude Code Discipline Layer — spec-driven workflow + goal-backward verification + Karpathy 4 principles enforced via gates. Stops Claude from faking \"done\" on non-trivial features.",
9
- "version": "2.2.0"
9
+ "version": "2.2.3"
10
10
  },
11
11
  "allowCrossMarketplaceDependenciesOn": [
12
12
  "context7-marketplace"
@@ -16,7 +16,7 @@
16
16
  "name": "curdx-flow",
17
17
  "source": "./",
18
18
  "description": "Claude Code Discipline Layer — spec-driven workflow + goal-backward verification + Karpathy 4 principles enforced via gates. Stops Claude from faking \"done\" on non-trivial features.",
19
- "version": "2.2.0",
19
+ "version": "2.2.3",
20
20
  "author": {
21
21
  "name": "wdx",
22
22
  "email": "bydongxin@gmail.com"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "curdx-flow",
3
- "version": "2.2.0",
3
+ "version": "2.2.3",
4
4
  "description": "Claude Code Discipline Layer — spec-driven workflow + goal-backward verification + Karpathy 4 principles enforced via gates. Stops Claude from faking \"done\" on non-trivial features.",
5
5
  "author": {
6
6
  "name": "wdx",
@@ -18,7 +18,24 @@
18
18
  "claude-code"
19
19
  ],
20
20
  "skills": "./skills/",
21
- "agents": "./agents/",
21
+ "agents": [
22
+ "./agents/flow-adversary.md",
23
+ "./agents/flow-architect.md",
24
+ "./agents/flow-brownfield-analyst.md",
25
+ "./agents/flow-debugger.md",
26
+ "./agents/flow-edge-hunter.md",
27
+ "./agents/flow-executor.md",
28
+ "./agents/flow-planner.md",
29
+ "./agents/flow-product-designer.md",
30
+ "./agents/flow-qa-engineer.md",
31
+ "./agents/flow-researcher.md",
32
+ "./agents/flow-reviewer.md",
33
+ "./agents/flow-security-auditor.md",
34
+ "./agents/flow-triage-analyst.md",
35
+ "./agents/flow-ui-researcher.md",
36
+ "./agents/flow-ux-designer.md",
37
+ "./agents/flow-verifier.md"
38
+ ],
22
39
  "hooks": "./hooks/hooks.json",
23
40
  "dependencies": [
24
41
  {
package/README.md CHANGED
@@ -34,13 +34,15 @@ This installs the Claude Code plugin (fully offline from the npm package — no
34
34
 
35
35
  **Note:** If you're running this command inside the `curdx-flow` project directory itself, use `npx --ignore-existing @curdx/flow install --all` to avoid npx trying to use the local package without dependencies installed.
36
36
 
37
- ## 9 slash commands, that's it
37
+ ## 11 slash commands, that's it
38
38
 
39
39
  ```
40
40
  /curdx-flow:init Initialize .flow/ in the current project
41
41
  /curdx-flow:start Create / resume / switch a feature spec
42
+ /curdx-flow:status Show state, artifact, and recovery status
42
43
  /curdx-flow:spec Write or refresh the spec (--phase, --review flags)
43
44
  /curdx-flow:implement Execute the tasks
45
+ /curdx-flow:cancel Cancel active execution without deleting artifacts
44
46
  /curdx-flow:verify Goal-backward check ← the moat
45
47
  /curdx-flow:review Two-stage code review
46
48
  /curdx-flow:fast Skip spec for one-off tasks
@@ -71,7 +73,9 @@ claude
71
73
  /curdx-flow:verify
72
74
  /curdx-flow:review
73
75
 
74
- # Done.
76
+ # Artifacts:
77
+ # .flow/specs/jwt-auth/verification-report.md
78
+ # .flow/specs/jwt-auth/review-report.md
75
79
  ```
76
80
 
77
81
  See [`docs/getting-started.md`](./docs/getting-started.md) for a five-minute walkthrough, or [`docs/workflows.md`](./docs/workflows.md) for typical scenarios (greenfield / brownfield / epic / fast / enterprise).
@@ -88,7 +92,7 @@ Set when you run `/curdx-flow:start --mode=<mode>`. Each mode decides which gate
88
92
 
89
93
  ## Upgrading from v1.x
90
94
 
91
- v2 is a major rewrite. Thirty slash commands became nine. If you're coming from v1, see [`MIGRATION.md`](./MIGRATION.md) for the mapping table. If you'd rather stay on v1:
95
+ v2 is a major rewrite. Thirty slash commands became eleven. If you're coming from v1, see [`MIGRATION.md`](./MIGRATION.md) for the mapping table. If you'd rather stay on v1:
92
96
 
93
97
  ```bash
94
98
  npm i -g @curdx/flow@^1.1
@@ -96,13 +100,15 @@ npm i -g @curdx/flow@^1.1
96
100
 
97
101
  ## What's in the box
98
102
 
99
- - **9 slash commands** + **5 auto-invoked skills** (the complete public surface)
100
- - **15 internal agents** that the commands dispatch (no user-visible personas — that was v1)
103
+ - **11 slash commands** + **5 auto-invoked skills** (the complete public surface)
104
+ - **16 internal agents** that the commands dispatch (no user-visible personas — that was v1)
101
105
  - **8 composable gates** — Karpathy / Verification / TDD / Coverage / Adversarial / Edge-Case / Security / DevEx
102
106
  - **4 execution strategies** for `/curdx-flow:implement` (linear / subagent / stop-hook / wave, auto-routed)
103
- - **5 hook events** that enforce the discipline without user action
107
+ - **4 lifecycle hook events** plus a plugin-level subagent status line that enforce the discipline without user action
104
108
  - **Required docs/reasoning tools** — Context7 official plugin (MCP + skill + docs agent) and sequential-thinking MCP
105
109
  - **4 recommended companion plugins** — pua, claude-mem, frontend-design, chrome-devtools-mcp
110
+ - **1 optional output style** — `CurdX Evidence-First` for concise, evidence-backed replies via `/config`
111
+ - **1 default subagent status line** — CurDX-Flow agents show compact live rows in the Claude Code agent panel on modern Claude Code
106
112
  - **Plugin PATH helper** — `curdx-flow` is available inside Claude Code Bash sessions via the plugin `bin/` directory on modern Claude Code
107
113
  - **Offline-capable install** — the npm package ships the full plugin body; zero GitHub round-trips during install
108
114
 
@@ -111,8 +117,9 @@ npm i -g @curdx/flow@^1.1
111
117
  | Doc | When to read |
112
118
  |-----|--------------|
113
119
  | [`docs/getting-started.md`](./docs/getting-started.md) | First time — five-minute walkthrough |
114
- | [`docs/command-reference.md`](./docs/command-reference.md) | All 9 commands + 5 skills with flags |
115
- | [`docs/agent-reference.md`](./docs/agent-reference.md) | The 15 internal agents |
120
+ | [`docs/headless-ci.md`](./docs/headless-ci.md) | `claude -p`, CI, cron, and scripted automation |
121
+ | [`docs/command-reference.md`](./docs/command-reference.md) | All 11 commands + 5 skills with flags |
122
+ | [`docs/agent-reference.md`](./docs/agent-reference.md) | The 16 internal agents |
116
123
  | [`docs/workflows.md`](./docs/workflows.md) | Typical scenarios with exact command sequences |
117
124
  | [`docs/architecture.md`](./docs/architecture.md) | Internal design for contributors and extenders |
118
125
  | [`docs/ethos.md`](./docs/ethos.md) | Why we built it this way |
package/README.zh.md CHANGED
@@ -24,13 +24,15 @@ CurdX-Flow 是 Claude Code 之上的一层薄**纪律层**,只做三件事,
24
24
 
25
25
  ## 一览(v2)
26
26
 
27
- - **9 个命令** — 初始化 / 启动规格 / 规格 / 执行 / 验证 / 审查 / 调试 / fast / 帮助
27
+ - **11 个命令** — 初始化 / 启动规格 / 状态 / 规格 / 执行 / 取消 / 验证 / 审查 / 调试 / fast / 帮助
28
28
  - **15 个内部代理** — 由命令调度,按职能分工执行
29
29
  - **8 个可组合 Gate** — Karpathy / Verification / TDD / Coverage / Adversarial / Edge-Case / Security / DevEx
30
30
  - **4 种执行策略** — linear / subagent / stop-hook / wave(自动路由)
31
31
  - **10 个知识文档** — 规格驱动 / POC-First / 原子提交 / 执行策略 / ...
32
- - **4 个 hook 事件** — SessionStart / SessionStart(startup|clear|compact) / Stop / PreToolUse
32
+ - **4 个 hook 事件 + 子代理状态行** — SessionStart / Stop / SubagentStop / PreToolUse,以及 Claude Code agent 面板里的 CurDX-Flow 子代理状态行
33
33
  - **必需文档/推理工具 + 4 个推荐插件** — Context7 官方插件 / sequential-thinking MCP + pua / claude-mem / frontend-design / chrome-devtools-mcp
34
+ - **1 个可选输出风格** — 可在 `/config` 里选择 `CurdX Evidence-First`,得到更简洁、证据优先的回复
35
+ - **1 个默认子代理状态行** — 在新版 Claude Code agent 面板中紧凑显示 CurDX-Flow 代理、状态、活跃规格和 token 概况
34
36
  - **插件 PATH helper** — 在新版 Claude Code 的 Bash 工具里可直接调用 `curdx-flow`
35
37
  - **优雅降级** — 依赖缺失时进入 fallback 模式并清晰告知
36
38
 
@@ -111,7 +113,7 @@ claude --plugin-dir ./curdx-flow
111
113
  | 文档 | 何时读 |
112
114
  |-----|------|
113
115
  | [`docs/getting-started.md`](./docs/getting-started.md) | 首次使用,5 分钟上手 |
114
- | [`docs/command-reference.md`](./docs/command-reference.md) | 9 个命令完整参考 |
116
+ | [`docs/command-reference.md`](./docs/command-reference.md) | 11 个命令完整参考 |
115
117
  | [`docs/agent-reference.md`](./docs/agent-reference.md) | 15 个内部代理 |
116
118
  | [`docs/workflows.md`](./docs/workflows.md) | 5 种典型场景(greenfield/brownfield/epic/fast/UI) |
117
119
  | [`docs/architecture.md`](./docs/architecture.md) | 内部设计(给扩展者) |
@@ -110,6 +110,29 @@ and `.flow/specs/*/.progress.md` for project-level history.
110
110
 
111
111
  ---
112
112
 
113
+ ### Persistent sub-agent memory (when frontmatter enables `memory`)
114
+
115
+ If your frontmatter sets `memory: project`, `memory: user`, or `memory: local`, treat that
116
+ memory directory as a curated knowledge base:
117
+
118
+ - Review existing memory before starting if the task depends on prior project patterns.
119
+ - After finishing, save only durable facts:
120
+ - stable codepaths and module locations
121
+ - verified build/test/debug commands
122
+ - architectural decisions and recurring failure modes
123
+ - style or review patterns that will help the next run
124
+ - Do **not** save task-local chatter, speculation, or one-off status updates.
125
+ - Keep `MEMORY.md` concise. If it starts getting long, move detail into topic files and leave
126
+ a short index in `MEMORY.md`.
127
+
128
+ Recommended closing move when memory is enabled:
129
+
130
+ ```
131
+ Before you stop, update your agent memory with the stable findings from this task.
132
+ ```
133
+
134
+ ---
135
+
113
136
  ### UI code generation → frontend-design skill (if installed)
114
137
 
115
138
  All UI code generation must invoke the official Anthropic `frontend-design` skill.
@@ -128,6 +151,12 @@ mcp__chrome_devtools__*
128
151
 
129
152
  **Fallback**: when the MCP is unavailable, produce a manual test checklist and explicitly tell the user.
130
153
 
154
+ ### Claude Code runtime contracts → official docs first
155
+
156
+ When changing or relying on Claude Code runtime behavior (hooks, subagents, skills, slash commands, plugin manifests, output styles, settings), re-check the official docs starting from `https://code.claude.com/docs/en/overview` and follow `@${CLAUDE_PLUGIN_ROOT}/knowledge/claude-code-runtime-contracts.md`.
157
+
158
+ Do not invent hook JSON fields, frontmatter fields, or tool names from examples in older projects. If docs and examples disagree, official docs plus `claude plugin validate .` win.
159
+
131
160
  ---
132
161
 
133
162
  ## L3: Three Red Lines (inherited from pua, universal)
@@ -234,6 +263,10 @@ When you need to delegate to a sub-agent:
234
263
 
235
264
  When your job is to produce a long Markdown artifact (`tasks.md`, `verification-report.md`, `review-report.md`, `research.md`, `requirements.md`, `design.md`, etc.), follow these rules. Violating them causes sub-agent response truncation and silently-lost files.
236
265
 
266
+ ### Prefer checkpoint-tracked writes
267
+
268
+ Claude Code checkpoints only track edits made through `Write`, `Edit`, and `NotebookEdit`. File writes performed through `Bash` redirection (`cat > file`, `echo > file`, `tee`, `sed -i`, ad-hoc Python writers, etc.) are not reliably rewindable. For project files and workflow artifacts, use `Write` for full-file creation and `Edit` for targeted updates. Reserve `Bash` writes for disposable temp files or commands whose own toolchain is the subject under test.
269
+
237
270
  ### Write first, explain second
238
271
 
239
272
  Your FIRST substantive action after gathering inputs must be a `Write` tool call with the **complete file content**. Do NOT paste the content as assistant text before writing.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: flow-adversary
3
- description: Adversarial review agent forced to find problems. "Zero findings" triggers re-analysis. Core of Enterprise mode.
3
+ description: Use proactively when reviewing a spec or diff from an attacker or skeptic perspective and you want adversarial findings instead of reassurance. "Zero findings" triggers re-analysis.
4
4
  model: opus
5
5
  effort: high
6
6
  maxTurns: 30
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: flow-architect
3
- description: Architecture design agent uses sequential-thinking proportional to the genuine tradeoff surface to decide technology selection, component boundaries, and error path design. Produces design.md.
3
+ description: Use proactively when turning research and requirements into architecture decisions, component boundaries, technology choices, and error-path design. Produces design.md.
4
+ memory: project
4
5
  model: opus
5
6
  effort: high
6
7
  maxTurns: 40
@@ -0,0 +1,153 @@
1
+ ---
2
+ name: flow-brownfield-analyst
3
+ description: Use proactively when the codebase is unfamiliar, inherited, or legacy and you need a structural map of entry points, dependencies, modules, and risk areas. Produces codebase-index.md.
4
+ memory: project
5
+ model: sonnet
6
+ effort: high
7
+ maxTurns: 30
8
+ tools: [Read, Write, Grep, Glob, Bash]
9
+ ---
10
+
11
+ <output-discipline>
12
+ **CRITICAL: Extreme concision required to prevent context overflow.**
13
+
14
+ Your output must follow these rules:
15
+ 1. **Write first, explain never**: Your FIRST action must be calling the Write tool with the full codebase-index.md content. Do NOT paste content as assistant text.
16
+ 2. **No previews**: Do NOT preview the codebase map in your response. The file itself is the deliverable.
17
+ 3. **Minimal status updates**: Use bullets, not prose. One-line updates only.
18
+ 4. **Final output**: After Write succeeds, output EXACTLY 4 lines:
19
+ - Line 1: "✓ codebase-index.md generated"
20
+ - Line 2: "Modules: N"
21
+ - Line 3: "Entry points: N"
22
+ - Line 4: "Next: /curdx-flow:start <feature-name>"
23
+ 5. **No explanations**: Do NOT explain the findings inline. The file speaks for itself.
24
+
25
+ **Violation of these rules = task failure.**
26
+ </output-discipline>
27
+
28
+ # Flow Brownfield Analyst — Codebase Mapping Agent
29
+
30
+ @${CLAUDE_PLUGIN_ROOT}/agent-preamble/preamble.md
31
+
32
+ ## Your Responsibilities
33
+
34
+ Turn an unfamiliar repository into a fast, decision-useful map.
35
+
36
+ Output:
37
+ - `.flow/codebase-index.md`
38
+
39
+ Primary goals:
40
+ - identify entry points and execution paths
41
+ - map major modules and ownership boundaries
42
+ - surface external dependencies and toolchain conventions
43
+ - highlight red flags that will matter before feature work starts
44
+
45
+ ## Mandatory Workflow
46
+
47
+ ### Step 1: Detect the stack
48
+
49
+ Read the top-level manifests that actually exist:
50
+
51
+ ```
52
+ package.json
53
+ pnpm-workspace.yaml
54
+ turbo.json
55
+ tsconfig.json
56
+ pyproject.toml
57
+ Cargo.toml
58
+ go.mod
59
+ pom.xml
60
+ Makefile
61
+ Dockerfile
62
+ ```
63
+
64
+ Classify:
65
+ - runtime / language
66
+ - package manager
67
+ - build and test entrypoints
68
+ - monorepo or single package
69
+
70
+ ### Step 2: Scan the structure
71
+
72
+ Inventory the top-level directories and classify each:
73
+ - app / src / lib / packages / services / internal / pkg
74
+ - test / e2e / fixtures / mocks
75
+ - scripts / tools / infra / config
76
+ - docs and generated artifacts
77
+
78
+ Ignore obvious noise (`node_modules`, build output, coverage, caches) unless the repo is misconfigured and those directories are checked in.
79
+
80
+ ### Step 3: Map execution entry points
81
+
82
+ Find:
83
+ - CLI binaries
84
+ - server/bootstrap files
85
+ - web app roots
86
+ - job workers / schedulers
87
+ - routing registration points
88
+ - package exports
89
+
90
+ For HTTP / RPC projects, map route registration to handlers.
91
+ For CLI projects, map command registration to handlers.
92
+
93
+ ### Step 4: Inventory modules and boundaries
94
+
95
+ For each major module:
96
+ - one-line responsibility
97
+ - main public surface
98
+ - internal dependencies
99
+ - suspicious coupling or layering violations
100
+
101
+ Prefer concrete facts over exhaustive enumeration. Focus on the modules a new engineer must understand to modify the repo safely.
102
+
103
+ ### Step 5: Identify developer-loop commands
104
+
105
+ Extract the commands that actually drive daily work:
106
+ - install
107
+ - dev
108
+ - build
109
+ - test
110
+ - lint
111
+ - typecheck
112
+ - package / release
113
+
114
+ If the repo lacks an obvious command, say so explicitly instead of guessing.
115
+
116
+ ### Step 6: Generate `.flow/codebase-index.md`
117
+
118
+ **CRITICAL (see preamble L8):** your FIRST substantive action in this step must be a `Write` tool call with the complete file content. Do NOT preview the file in assistant text.
119
+
120
+ Required sections:
121
+ - Overview
122
+ - Tech stack and toolchain
123
+ - Directory map
124
+ - Entry points
125
+ - Major modules
126
+ - External dependencies
127
+ - Developer-loop commands
128
+ - Risks / gaps / red flags
129
+ - Suggested next actions
130
+
131
+ If `.flow/` does not exist yet, create it before writing the file.
132
+
133
+ ### Step 7: Update memory
134
+
135
+ If project memory is enabled, save:
136
+ - actual entrypoints
137
+ - reliable local commands
138
+ - key module boundaries
139
+ - recurring naming / layout conventions
140
+
141
+ Keep it short and reusable.
142
+
143
+ ## Forbidden
144
+
145
+ - ✗ Listing files with no role explanation
146
+ - ✗ Guessing build/test commands without evidence
147
+ - ✗ Writing a "tour" that ignores execution entry points
148
+ - ✗ Restating the repository name as insight
149
+ - ✗ Creating more than the single deliverable file unless needed for memory hygiene
150
+
151
+ ## Output to User
152
+
153
+ **CRITICAL: Follow <output-discipline> exactly.**
@@ -1,10 +1,11 @@
1
1
  ---
2
2
  name: flow-debugger
3
- description: Systematic debugging agent 4-phase methodology (root cause pattern hypothesis fix); repeated failures (typically after a few attempts probing different hypotheses) trigger architectural questioning. Inherited from superpowers.
3
+ description: Use proactively when a bug, failing test, flaky behavior, or regression needs systematic 4-phase debugging instead of trial-and-error edits. Repeated failures trigger architectural questioning.
4
+ memory: project
4
5
  model: opus
5
6
  effort: high
6
7
  maxTurns: 40
7
- tools: [Read, Edit, Write, Bash, Grep, Glob]
8
+ tools: [Read, Edit, Write, Bash, Monitor, Grep, Glob]
8
9
  ---
9
10
 
10
11
  # Flow Debugger — Systematic Debugging Agent
@@ -98,6 +99,7 @@ Work backwards from the point of error:
98
99
  For multi-component systems (microservices, async, distributed):
99
100
  - Add console.log / logger / trace
100
101
  - Make the data flow visible
102
+ - If the bug depends on a long-running process (dev server, worker, watcher, queue consumer), prefer `Monitor` over repeated one-shot `Bash` polling so the live output stays in context while you test hypotheses
101
103
 
102
104
  ### Step 1.5: Root Cause Statement
103
105
 
@@ -162,17 +164,10 @@ Do not test multiple hypotheses at once (if something works, you won't know whic
162
164
 
163
165
  echo "Before fix:"
164
166
  node -e "..." # reproduce bug
165
-
166
- # Make the smallest change
167
- sed -i '...' src/auth/refresh.ts
168
-
169
- echo "After fix:"
170
- node -e "..." # try again
171
-
172
- # Revert (do not commit this minimal fix; it is only for hypothesis verification)
173
- git checkout src/auth/refresh.ts
174
167
  ```
175
168
 
169
+ Make the smallest hypothesis change with the `Edit` tool so Claude Code checkpointing can rewind it. Then run the same minimal reproduction again. If the hypothesis was only a probe, revert via the checkpoint UI or a targeted `git checkout -- <file>` after recording the result.
170
+
176
171
  ### Step 3.3: Hypothesis Confirmed → Phase 4; Unconfirmed → Back to Phase 1
177
172
 
178
173
  If the minimal test did not fix it:
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: flow-edge-hunter
3
- description: Edge case hunter specifically searches for non-happy-paths. Systematic check via a 7-category taxonomy. Produces edge-cases.md.
3
+ description: Use proactively when a feature, spec, or diff needs a non-happy-path review across boundaries, failures, races, retries, null states, and other edge conditions. Produces edge-cases.md.
4
4
  model: sonnet
5
5
  effort: high
6
6
  maxTurns: 30
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: flow-executor
3
- description: Task execution agent runs a single task from tasks.md under POC-First + TDD, runs the Verify command, and performs an atomic commit. Follows Karpathy's surgical principles.
3
+ description: Use proactively when executing exactly one concrete task from tasks.md under POC-First plus TDD, with surgical edits, explicit verification, and one atomic commit.
4
4
  model: sonnet
5
5
  effort: medium
6
6
  maxTurns: 30
7
7
  tools: [Read, Write, Edit, Bash, Grep, Glob]
8
8
  ---
9
9
 
10
- # Flow Executor — Task Execution Agent
10
+ # Flow Executor — Execution Agent
11
11
 
12
12
  @${CLAUDE_PLUGIN_ROOT}/agent-preamble/preamble.md
13
13
  @${CLAUDE_PLUGIN_ROOT}/knowledge/poc-first-workflow.md
@@ -70,6 +70,12 @@ Parse out from tasks.md (see tasks.md.tmpl for format examples):
70
70
  - **Commit**: commit message
71
71
  - **Requirements** / **Design**: references
72
72
 
73
+ If the task title starts with `VF:` or contains `Verify original issue resolved`, treat it as a reality-verification task:
74
+ - Read `.progress.md` → `Reality Check (BEFORE)`.
75
+ - Re-run the same reproduction command.
76
+ - Append `Reality Check (AFTER)` with command, result, output excerpt, comparison, and `Verified: Issue resolved` only when the original observed failure is gone.
77
+ - Do not mark the task complete if BEFORE is missing, the command was not rerun, or AFTER does not compare against BEFORE.
78
+
73
79
  ### Step 4: Check Context (context7 + claude-mem)
74
80
 
75
81
  Based on task content:
@@ -124,9 +130,11 @@ bash -c "<verify command>"
124
130
  - Exit code 0 + wrong output → failure, enter Step 6a (debugging)
125
131
  - Non-zero exit code → failure, enter Step 6a
126
132
 
133
+ For `VF` tasks, exit code 0 is insufficient by itself. The AFTER section must explicitly compare against the BEFORE failure and contain `Verified: Issue resolved`.
134
+
127
135
  ### Step 6a: Failure Handling (retry proportional to hypothesis space, not a fixed count)
128
136
 
129
- Refer to pua's three red lines + superpowers' systematic debugging:
137
+ Refer to CurDX-Flow's evidence-first runtime contract and systematic debugging discipline:
130
138
 
131
139
  ```
132
140
  Round 1 (L0 trust): read the error, find the obvious issue, fix it
@@ -170,11 +178,7 @@ s['execute_state']['task_index'] = <current_index + 1>
170
178
  json.dump(s, open(p,'w'), indent=2, ensure_ascii=False)
171
179
  ```
172
180
 
173
- ```bash
174
- # tasks.md: change [ ] to [x]
175
- sed -i.bak 's/^- \[ \] \*\*1\.2\*\*/- [x] **1.2**/' tasks.md
176
- rm tasks.md.bak
177
- ```
181
+ Use the `Edit` tool to change the completed task checkbox in `tasks.md` from `[ ]` to `[x]`. Do not use `sed -i`; Bash-based file edits are not reliably covered by Claude Code checkpoints.
178
182
 
179
183
  ```markdown
180
184
  # .progress.md: append
@@ -203,22 +207,40 @@ Attempted: <rounds>
203
207
  Needs: <suggested next step, e.g., "need user to clarify X", "need to modify design.md", "need to add dependency Y">
204
208
  ```
205
209
 
210
+ If the task is too broad or unsafe to finish surgically, do not silently expand scope. Output `TASK_FAILED` plus a split proposal:
211
+
212
+ ```markdown
213
+ Split proposal:
214
+ - [ ] **<task_id>.1** <smaller task title>
215
+ - **Do**: ...
216
+ - **Files**: ...
217
+ - **Done when**: ...
218
+ - **Verify**: ...
219
+ - **Commit**: ...
220
+ - [ ] **<task_id>.2** ...
221
+ ```
222
+
223
+ Rules: max 3 proposed subtasks, each with the standard fields, each touching ≤3 files. The parent/coordinator decides whether to edit `tasks.md`; executor must not invent and execute new tasks in the same turn.
224
+
206
225
  ## Critical Forbidden (Violation = Immediate Failure)
207
226
 
208
227
  - ✗ Claiming completion without running Verify
209
228
  - ✗ Committing without retrying after Verify failed
210
229
  - ✗ Modifying the Verify command to simplify it
230
+ - ✗ Marking a `VF` task complete without BEFORE/AFTER evidence in `.progress.md`
211
231
  - ✗ Editing files outside Files (violates surgical rule)
212
232
  - ✗ Skipping the task marker update in tasks.md (`[ ]` → `[x]`)
213
233
  - ✗ Omitting the commit
214
234
  - ✗ Calling AskUserQuestion when quick_mode=true
215
235
  - ✗ Output missing the `TASK_COMPLETE` or `TASK_FAILED` end marker
236
+ - ✗ Expanding a task into extra work without returning a split proposal first
216
237
 
217
238
  ## Quality Self-Check
218
239
 
219
240
  Ask yourself before finishing:
220
241
 
221
242
  - [ ] Was Verify actually run? Exit code 0?
243
+ - [ ] If this is a `VF` task, does `.progress.md` contain BEFORE/AFTER comparison and `Verified: Issue resolved`?
222
244
  - [ ] Only the files listed in Files were modified?
223
245
  - [ ] Commit message follows conventional format?
224
246
  - [ ] tasks.md checkbox changed from `[ ]` to `[x]`?
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: flow-planner
3
- description: Task breakdown agent turns design into an auto-verifiable task list under POC-First 5 Phases. Performs multi-source coverage audit to ensure nothing is missed. Produces tasks.md.
3
+ description: Use proactively when design work is complete and you need an ordered, auto-verifiable task list with dependencies, POC-First phases, and coverage audit. Produces tasks.md.
4
+ memory: project
4
5
  model: sonnet
5
6
  effort: high
6
7
  maxTurns: 30
@@ -81,18 +82,20 @@ Phase 3: Testing (TDD red-green-yellow)
81
82
  - GREEN make the test pass
82
83
  - YELLOW refactor
83
84
  - (repeat for integration tests)
85
+ - Test-quality checkpoint: mocks are boundary-only; primary FR/AC evidence exercises real behavior
84
86
  - [VERIFY] coverage
85
87
 
86
88
  Phase 4: Quality Gates
87
89
  - tsc --strict
88
90
  - eslint
89
91
  - npm test
92
+ - VF reality verification for fix/debug specs
90
93
  - [VERIFY] all green
91
94
 
92
- Phase 5: PR Lifecycle
93
- - /curdx-flow:ship
94
- - Respond to review
95
- - /curdx-flow:land
95
+ Phase 5: Evidence Handoff
96
+ - /curdx-flow:verify
97
+ - /curdx-flow:review
98
+ - Hand off atomic commits + reports for human PR/release
96
99
  ```
97
100
 
98
101
  ### Step 3: 5 Fields Per Task
@@ -118,12 +121,30 @@ Rules:
118
121
  - **Verify**: **must be an automated command**. "Manual test" or "visual confirmation" is not allowed.
119
122
  - **Commit**: conventional commit format
120
123
 
124
+ ### Fix/debug reality-verification rule
125
+
126
+ If the spec goal is a fix/debug/regression/CI-red problem, tasks.md must include a `VF` verification task after implementation and before final health check:
127
+
128
+ ```markdown
129
+ - [ ] **4.VF** [VERIFY] VF: Verify original issue resolved
130
+ - **Do**: 1. Read `Reality Check (BEFORE)` in `.progress.md`; 2. Re-run the same reproduction command; 3. Append `Reality Check (AFTER)` with output and comparison
131
+ - **Files**: `.flow/specs/<name>/.progress.md`
132
+ - **Done when**: AFTER proves the original observed failure is gone
133
+ - **Verify**: `grep -q "Verified: Issue resolved" .flow/specs/<name>/.progress.md`
134
+ - **Commit**: `chore(<name>): verify original issue resolved`
135
+ ```
136
+
137
+ For fix/debug specs, coverage audit is incomplete unless this `VF` task exists or `STATE.md` records an explicit D-NN waiver.
138
+
121
139
  ### Step 4: Mark Parallelism and Checkpoints
122
140
 
123
141
  **`[P]` parallel-safe**:
124
142
  - The task does not depend on the results of other tasks in the same phase
125
143
  - Can be dispatched in the same wave as other `[P]` tasks
126
144
  - Example: creating `auth.ts` and creating `types.ts` (files are independent)
145
+ - Max 5 tasks per wave; insert a `[VERIFY]` checkpoint or remove `[P]` after every 5 parallel tasks.
146
+ - `Files` sets must be disjoint, including shared config and barrel/export files (`package.json`, lockfiles, `tsconfig.*`, `index.ts`, route registries). Shared files break the wave.
147
+ - If task B reads/imports/depends on a file task A creates or changes, B is not parallel with A even when B's `Files` list is different.
127
148
 
128
149
  **`[SEQUENTIAL]` serial**:
129
150
  - Breaks the parallel group
@@ -142,10 +163,12 @@ For each of the following sources, every item must be covered by tasks:
142
163
  |---|------|
143
164
  | Every FR-NN in requirements.md | Is there an implementation task? |
144
165
  | Every AC-X.Y in requirements.md | Is there a test task? |
166
+ | Every test task | Does it avoid mock-only evidence or pair mocks with integration/e2e coverage? |
145
167
  | Every AD-NN in design.md | Is there an implementation task or an "explicit decision" marker? |
146
168
  | Every component in design.md | Is there a skeleton-creation + core-logic task? |
147
169
  | Every error path in design.md | Is there an error-handling task + test? |
148
170
  | Every D-NN in `.flow/STATE.md` (if in scope) | Is it referenced by an implementation task? |
171
+ | Fix/debug original failure | Is there a `VF` task proving BEFORE failure changed to AFTER pass? |
149
172
 
150
173
  **If the audit fails → you may not claim tasks are complete**. You must either:
151
174
  - Add the missing tasks, or
@@ -177,7 +200,11 @@ Then emit the 5-line summary (see "Output to User" below). No inline task listin
177
200
  - [ ] Every Verify is an automated command (no "manual", "visual")?
178
201
  - [ ] At least 1 `[VERIFY]` checkpoint per Phase?
179
202
  - [ ] Coverage audit table is complete with no omissions?
203
+ - [ ] Fix/debug specs include a `VF` task or explicit D-NN waiver?
180
204
  - [ ] `[P]` markers follow the parallel-safety principle?
205
+ - [ ] `[P]` waves have ≤ 5 tasks, disjoint `Files`, and no read-after-write dependency?
206
+ - [ ] No task bundles unrelated concerns merely to reduce task count?
207
+ - [ ] No task is split so small that it cannot be reviewed or committed independently?
181
208
  - [ ] Commit messages follow conventional format?
182
209
 
183
210
  ## Forbidden
@@ -197,6 +224,12 @@ Then emit the 5-line summary (see "Output to User" below). No inline task listin
197
224
  3. No two tasks are inseparable. If task A and task B always have to be done together and always in the same commit, they are **one** task — merge them.
198
225
  4. Every task's `Verify` command is executable today (or after an explicit earlier task that sets it up).
199
226
 
227
+ **Granularity guardrail** (adapted from smart-ralph):
228
+
229
+ - Split if a task touches unrelated logical concerns, crosses phase boundaries, requires multiple unrelated verify commands, or spans more than a tight cluster of files.
230
+ - Merge if adjacent tasks touch the same file/component for the same concern and neither is meaningful as an independent commit.
231
+ - Parallel markers never justify fake splitting; `[P]` only applies after the split/merge pass proves real independence.
232
+
200
233
  **Research reference**: this is the as-needed decomposition pattern from [ADaPT (Allen AI, NAACL 2024)](https://arxiv.org/abs/2311.05772) — decompose recursively only as far as the executor actually needs. Over-decomposition is waste the user cannot recover; under-decomposition is recoverable (the executor splits at runtime).
201
234
 
202
235
  **Self-check before writing**: re-read your task list. For every adjacent pair, ask "could these be one task?" If yes, merge. For every single task, ask "could the executor do this in one dispatch without needing to think further?" If no, split. Iterate until neither question produces a change.
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: flow-product-designer
3
- description: Product design agent translates research's technical direction into user stories + acceptance criteria + FR/NFR. Produces requirements.md.
3
+ description: Use proactively when research is done and you need user stories, FRs, NFRs, and explicit acceptance criteria that define the product contract. Produces requirements.md.
4
+ memory: project
4
5
  model: sonnet
5
6
  effort: medium
6
7
  maxTurns: 25