@curdx/flow 1.1.11 → 2.0.0-beta.10

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 (96) hide show
  1. package/.claude-plugin/marketplace.json +3 -3
  2. package/.claude-plugin/plugin.json +4 -11
  3. package/CHANGELOG.md +99 -0
  4. package/README.md +74 -102
  5. package/README.zh.md +2 -2
  6. package/agent-preamble/preamble.md +81 -11
  7. package/agents/flow-adversary.md +41 -56
  8. package/agents/flow-architect.md +24 -11
  9. package/agents/flow-debugger.md +2 -2
  10. package/agents/flow-edge-hunter.md +20 -6
  11. package/agents/flow-executor.md +3 -3
  12. package/agents/flow-planner.md +51 -48
  13. package/agents/flow-product-designer.md +15 -2
  14. package/agents/flow-qa-engineer.md +4 -4
  15. package/agents/flow-researcher.md +18 -3
  16. package/agents/flow-reviewer.md +5 -1
  17. package/agents/flow-security-auditor.md +2 -2
  18. package/agents/flow-triage-analyst.md +4 -4
  19. package/agents/flow-ui-researcher.md +7 -7
  20. package/agents/flow-ux-designer.md +3 -3
  21. package/agents/flow-verifier.md +47 -14
  22. package/bin/curdx-flow.js +13 -1
  23. package/cli/doctor.js +28 -13
  24. package/cli/install.js +62 -36
  25. package/cli/protocols.js +63 -10
  26. package/cli/registry.js +73 -0
  27. package/cli/uninstall.js +9 -11
  28. package/cli/upgrade.js +6 -10
  29. package/cli/utils.js +104 -56
  30. package/commands/debug.md +10 -10
  31. package/commands/fast.md +1 -1
  32. package/commands/help.md +109 -87
  33. package/commands/implement.md +7 -7
  34. package/commands/init.md +18 -7
  35. package/commands/review.md +114 -130
  36. package/commands/spec.md +131 -89
  37. package/commands/start.md +130 -153
  38. package/commands/verify.md +110 -92
  39. package/gates/adversarial-review-gate.md +20 -20
  40. package/gates/coverage-audit-gate.md +1 -1
  41. package/gates/devex-gate.md +5 -6
  42. package/gates/edge-case-gate.md +2 -2
  43. package/gates/security-gate.md +3 -3
  44. package/hooks/hooks.json +0 -11
  45. package/hooks/scripts/quick-mode-guard.sh +12 -9
  46. package/hooks/scripts/session-start.sh +2 -2
  47. package/hooks/scripts/stop-watcher.sh +25 -15
  48. package/knowledge/epic-decomposition.md +2 -2
  49. package/knowledge/execution-strategies.md +10 -9
  50. package/knowledge/planning-reviews.md +6 -6
  51. package/knowledge/spec-driven-development.md +11 -10
  52. package/knowledge/two-stage-review.md +6 -5
  53. package/knowledge/wave-execution.md +5 -5
  54. package/package.json +4 -2
  55. package/skills/brownfield-index/SKILL.md +62 -0
  56. package/skills/browser-qa/SKILL.md +50 -0
  57. package/skills/epic/SKILL.md +68 -0
  58. package/skills/security-audit/SKILL.md +50 -0
  59. package/skills/ui-sketch/SKILL.md +49 -0
  60. package/templates/config.json.tmpl +1 -1
  61. package/templates/design.md.tmpl +32 -112
  62. package/templates/requirements.md.tmpl +25 -43
  63. package/templates/research.md.tmpl +37 -68
  64. package/templates/tasks.md.tmpl +27 -84
  65. package/agents/persona-amelia.md +0 -128
  66. package/agents/persona-david.md +0 -141
  67. package/agents/persona-emma.md +0 -179
  68. package/agents/persona-john.md +0 -105
  69. package/agents/persona-mary.md +0 -95
  70. package/agents/persona-oliver.md +0 -136
  71. package/agents/persona-rachel.md +0 -126
  72. package/agents/persona-serena.md +0 -175
  73. package/agents/persona-winston.md +0 -117
  74. package/commands/audit.md +0 -170
  75. package/commands/autoplan.md +0 -184
  76. package/commands/design.md +0 -155
  77. package/commands/discuss.md +0 -162
  78. package/commands/doctor.md +0 -124
  79. package/commands/index.md +0 -261
  80. package/commands/install-deps.md +0 -128
  81. package/commands/party.md +0 -241
  82. package/commands/plan-ceo.md +0 -117
  83. package/commands/plan-design.md +0 -107
  84. package/commands/plan-dx.md +0 -104
  85. package/commands/plan-eng.md +0 -108
  86. package/commands/qa.md +0 -118
  87. package/commands/requirements.md +0 -146
  88. package/commands/research.md +0 -141
  89. package/commands/security.md +0 -109
  90. package/commands/sketch.md +0 -118
  91. package/commands/spike.md +0 -181
  92. package/commands/status.md +0 -139
  93. package/commands/switch.md +0 -95
  94. package/commands/tasks.md +0 -189
  95. package/commands/triage.md +0 -160
  96. package/hooks/scripts/fail-tracker.sh +0 -31
package/commands/party.md DELETED
@@ -1,241 +0,0 @@
1
- ---
2
- name: party
3
- description: Party Mode — multiple persona agents independently think about one question at the same time. BMAD-style true multi-agent collaboration.
4
- argument-hint: "<persona-1> <persona-2> ... \"<question>\""
5
- allowed-tools: [Read, Task, AskUserQuestion]
6
- ---
7
-
8
- # Flow Party — Multi-Agent Independent Thinking
9
-
10
- Have multiple **persona agents** (Mary/John/Winston, etc.) independently think about the same question at the same time. This is BMAD's true innovation: **not one LLM playing multiple roles, but multiple Task subprocesses each thinking on their own, avoiding opinion convergence**.
11
-
12
- ## When to use
13
-
14
- - Hard decisions needing multiple perspectives (e.g., architecture selection)
15
- - Spec review (separately reviewed from product / arch / qa)
16
- - Brainstorming / divergent thinking
17
- - Finding blind spots (one perspective may see what others cannot)
18
-
19
- ## When not to use
20
-
21
- - Simple questions (overhead is high)
22
- - Questions with a clear answer (agents will only echo)
23
- - Execution tasks (use a dedicated executor)
24
-
25
- ## Step 1: Parse arguments
26
-
27
- ```bash
28
- ARGS="$ARGUMENTS"
29
-
30
- # Recognize personas (known list)
31
- PERSONAS=()
32
- QUESTION=""
33
-
34
- # Simple parsing: persona names + a question wrapped in quotes at the end
35
- # Example: /curdx-flow:party mary john winston "JWT or session?"
36
-
37
- # Parsing logic: iterate words, add known persona names to PERSONAS, rest is the question
38
- KNOWN_PERSONAS="mary john winston amelia rachel oliver serena david emma"
39
-
40
- REMAINING=""
41
- for word in $ARGS; do
42
- if echo "$KNOWN_PERSONAS" | grep -qw "$word"; then
43
- PERSONAS+=("$word")
44
- else
45
- REMAINING="$REMAINING $word"
46
- fi
47
- done
48
-
49
- # REMAINING is the question (possibly with quotes)
50
- QUESTION=$(echo "$REMAINING" | sed 's/^[[:space:]]*//;s/^["\x27]//;s/["\x27]$//')
51
- ```
52
-
53
- ## Step 2: Validate arguments
54
-
55
- ```bash
56
- if [ ${#PERSONAS[@]} -lt 2 ]; then
57
- echo "✗ Party Mode requires ≥ 2 personas"
58
- echo "Available: mary john winston amelia rachel oliver serena david emma"
59
- exit 1
60
- fi
61
-
62
- if [ ${#PERSONAS[@]} -gt 5 ]; then
63
- echo "⚠ More than 5 personas will make output hard to read. Recommend ≤ 5"
64
- fi
65
-
66
- if [ -z "$QUESTION" ]; then
67
- echo "✗ Please provide a question"
68
- exit 1
69
- fi
70
- ```
71
-
72
- ## Step 3: Build shared context
73
-
74
- All personas read the same background:
75
-
76
- ```bash
77
- CONTEXT_FILES=()
78
- [ -f "CLAUDE.md" ] && CONTEXT_FILES+=("CLAUDE.md")
79
- [ -f ".flow/PROJECT.md" ] && CONTEXT_FILES+=(".flow/PROJECT.md")
80
- [ -f ".flow/CONTEXT.md" ] && CONTEXT_FILES+=(".flow/CONTEXT.md")
81
-
82
- # If there is an active spec, append
83
- ACTIVE=$(cat .flow/.active-spec 2>/dev/null)
84
- if [ -n "$ACTIVE" ]; then
85
- for f in research.md requirements.md design.md; do
86
- [ -f ".flow/specs/$ACTIVE/$f" ] && CONTEXT_FILES+=(".flow/specs/$ACTIVE/$f")
87
- done
88
- fi
89
- ```
90
-
91
- ## Step 4: Dispatch each persona in parallel
92
-
93
- **Key**: call multiple Task tools **in a single message** at the same time (parallel execution).
94
- This way each persona thinks in an independent context without influencing the others.
95
-
96
- ```
97
- # Parallel invocation (in a single message):
98
- Task(mary):
99
- subagent_type: general-purpose
100
- description: "Mary thinking about $QUESTION"
101
- prompt: |
102
- You are Mary (Senior Analyst). Full definition:
103
- ${CLAUDE_PLUGIN_ROOT}/agents/persona-mary.md
104
-
105
- Shared context:
106
- $(cat ${CONTEXT_FILES[@]} 2>/dev/null)
107
-
108
- Question: $QUESTION
109
-
110
- Answer from Mary's perspective:
111
- - First list explicit assumptions
112
- - Give 2-3 interpretations from a research / analysis perspective
113
- - Clearly state open questions
114
- - Provide an initial recommendation (if any)
115
-
116
- **Forbidden**:
117
- - Speaking on behalf of other personas
118
- - Claiming "synthesizing John's and Winston's opinions" (you don't know what they said)
119
- - Echoing / converging
120
-
121
- Output a concise view of <200 words.
122
-
123
- Task(john):
124
- ... [john's prompt]
125
-
126
- Task(winston):
127
- ... [winston's prompt]
128
- ```
129
-
130
- **Parallel execution**: Claude Code's Task tool supports multiple invocations in a single message running in parallel.
131
-
132
- ## Step 5: Collect results
133
-
134
- Each Task returns an independent answer. The main agent (you) aggregates:
135
-
136
- ```markdown
137
- ## Party Mode Results: <QUESTION>
138
-
139
- ### Mary (Senior Analyst)
140
- <Mary's answer>
141
-
142
- ### John (Product Manager)
143
- <John's answer>
144
-
145
- ### Winston (Architect)
146
- <Winston's answer>
147
-
148
- ## Perspective comparison
149
-
150
- | Dimension | Mary | John | Winston |
151
- |-----------|------|------|---------|
152
- | Main concern | ... | ... | ... |
153
- | Recommended direction | ... | ... | ... |
154
- | Open questions | ... | ... | ... |
155
-
156
- ## Points of disagreement
157
-
158
- 1. Mary and Winston disagree on X: <specifics>
159
- 2. Y raised by John that neither of the others considered: <specifics>
160
-
161
- ## Consensus
162
-
163
- 1. Everyone agrees on Z
164
-
165
- ## Recommendation
166
-
167
- Based on multi-perspective synthesis:
168
- - If you care about A → follow Mary
169
- - If you care about B → follow Winston
170
- - Middle-ground option: Y proposed by John
171
- ```
172
-
173
- ## Step 6: Let the user decide
174
-
175
- ```
176
- AskUserQuestion:
177
- question: "Having seen the multi-perspective analysis, which direction do you lean toward?"
178
- options:
179
- - Follow Mary's direction
180
- - Follow John's direction
181
- - Follow Winston's direction
182
- - Synthesis: <specific compromise>
183
- - Other (user input)
184
- ```
185
-
186
- After the user chooses, write the decision to STATE.md (as D-NN, via /curdx-flow:discuss or manually).
187
-
188
- ## Typical usage
189
-
190
- ### Architecture selection
191
-
192
- ```
193
- /curdx-flow:party winston mary "JWT vs Session — which is more suitable in this project"
194
- ```
195
-
196
- ### Spec review
197
-
198
- ```
199
- /curdx-flow:party john rachel oliver "are the ACs in requirements.md sufficient"
200
- ```
201
-
202
- ### Bug approach discussion
203
-
204
- ```
205
- /curdx-flow:party david winston "should this crash be fixed at the root cause or wrapped in try-catch"
206
- ```
207
-
208
- ### UX decision
209
-
210
- ```
211
- /curdx-flow:party emma john oliver "how to present login failure error messages"
212
- ```
213
-
214
- ## Forbidden
215
-
216
- - ✗ Dispatching only 1 agent (that's not a Party — just use Task directly)
217
- - ✗ Agents referencing each other (the point of independent thinking is isolation)
218
- - ✗ Sequential dispatch (must be parallel Task invocations)
219
- - ✗ Overly long agent output (each <300 words)
220
-
221
- ## Why Party Mode has value
222
-
223
- ### Single LLM playing multiple roles vs. true multi-agent
224
-
225
- Single LLM: "As Mary I think X... As Winston I think Y... Synthesizing the two views, Z"
226
-
227
- Problems:
228
- - Opinions have already converged in advance (the LLM generates in one pass; later parts are influenced by earlier ones)
229
- - "Synthesis" is done by the LLM itself, without real collision
230
- - Easily becomes "one voice imitating multiple people"
231
-
232
- True multi-agent (Party Mode):
233
- - Mary's context contains only "I am Mary" and the question
234
- - Winston's context contains only "I am Winston" and the question
235
- - The two have no idea what the other said
236
- - The output is truly independent thinking
237
- - The differences are real differences, not acted out
238
-
239
- ---
240
-
241
- _Source: BMAD's Party Mode, implemented in CurDX-Flow via parallel dispatch of Claude Code's Task tool._
@@ -1,117 +0,0 @@
1
- ---
2
- name: plan-ceo
3
- description: CEO-level planning review — strategic / scope / ROI / opportunity cost. A business-layer review of design.md.
4
- argument-hint: "[spec-name]"
5
- allowed-tools: [Read, Write, Bash, Task]
6
- ---
7
-
8
- # Flow Plan CEO — Strategic-Layer Review
9
-
10
- @${CLAUDE_PLUGIN_ROOT}/knowledge/planning-reviews.md
11
-
12
- Review design.md from the **CEO perspective**: is this worth doing? Is the scope right?
13
-
14
- ## Step 1: Preflight
15
-
16
- ```bash
17
- SPEC_NAME="${ARGUMENTS:-$(cat .flow/.active-spec 2>/dev/null)}"
18
- [ -z "$SPEC_NAME" ] && { echo "✗ No active spec"; exit 1; }
19
-
20
- DIR=".flow/specs/$SPEC_NAME"
21
- [ ! -f "$DIR/design.md" ] && { echo "✗ Missing design.md. Run /curdx-flow:design first"; exit 1; }
22
- ```
23
-
24
- ## Step 2: Dispatch CEO-perspective review
25
-
26
- Reuse the `flow-architect` agent but switch the perspective:
27
-
28
- ```
29
- Task:
30
- subagent_type: general-purpose
31
- description: "CEO Review: $SPEC_NAME"
32
- prompt: |
33
- **CEO Review Mode**
34
-
35
- You are not an architect, not a developer. You are a reviewer from the CEO / PM perspective.
36
-
37
- Full methodology: ${CLAUDE_PLUGIN_ROOT}/knowledge/planning-reviews.md (Review 1)
38
-
39
- Review targets:
40
- - .flow/specs/$SPEC_NAME/requirements.md (business goals)
41
- - .flow/specs/$SPEC_NAME/design.md (technical solution)
42
- - .flow/PROJECT.md (project vision)
43
- - .flow/ROADMAP.md (roadmap)
44
-
45
- Review checklist (answer each):
46
-
47
- 1. Scope appropriateness
48
- - Solution scope vs. business value vs. timeline
49
- - Over-engineered? (doing more than currently necessary)
50
- - Insufficient? (users still unsatisfied after completion)
51
-
52
- 2. Timeline reasonableness
53
- - Refer to the priorities in ROADMAP.md
54
- - Is the urgency reasonable relative to other work in progress / pending?
55
-
56
- 3. Quantifiable ROI
57
- - User value: N users benefit / N scenarios unlocked
58
- - Business value: revenue / retention / brand
59
- - Engineering cost: estimated person-days
60
-
61
- 4. Opportunity cost
62
- - What does doing this mean we won't do?
63
- - Is what's being deferred more important?
64
-
65
- 5. Strategic alignment
66
- - Does it support company OKRs / quarterly goals
67
- - Does it lock in future choices (is this risky)
68
-
69
- 6. Stakeholders
70
- - Who benefits? How many?
71
- - Who is affected (possibly negatively)?
72
-
73
- Use sequential-thinking ≥ 5 rounds for derivation.
74
-
75
- Output:
76
- .flow/specs/$SPEC_NAME/plan-review-ceo.md
77
-
78
- Format:
79
- # CEO Plan Review: $SPEC_NAME
80
-
81
- ## Verdict
82
- - APPROVED / APPROVED_WITH_CONCERNS / NEEDS_REVISION / REJECTED
83
-
84
- ## Findings
85
-
86
- ### [Scope] Scope analysis
87
- ...
88
-
89
- ### [Timeline] Timeline analysis
90
- ...
91
-
92
- ### [ROI] Business value
93
- ...
94
-
95
- ## Recommendations
96
- - Concrete change recommendations (not abstract "increase value")
97
-
98
- Return a briefing to me.
99
- ```
100
-
101
- ## Step 3: Output
102
-
103
- ```
104
- ✓ CEO Review complete
105
-
106
- Verdict: <APPROVED / APPROVED_WITH_CONCERNS / NEEDS_REVISION>
107
-
108
- Key concerns:
109
- - <concern 1>
110
- - <concern 2>
111
-
112
- Report: .flow/specs/$SPEC_NAME/plan-review-ceo.md
113
-
114
- Next steps:
115
- - If NEEDS_REVISION → /curdx-flow:design to fix + rerun
116
- - If APPROVED → /curdx-flow:plan-eng (engineering layer) or /curdx-flow:tasks
117
- ```
@@ -1,107 +0,0 @@
1
- ---
2
- name: plan-design
3
- description: Design planning review — UI/UX, design system, accessibility review. Dispatches flow-ux-designer (Emma).
4
- argument-hint: "[spec-name]"
5
- allowed-tools: [Read, Write, Bash, Task]
6
- ---
7
-
8
- # Flow Plan Design — Design-Layer Review
9
-
10
- @${CLAUDE_PLUGIN_ROOT}/knowledge/planning-reviews.md
11
-
12
- Review design.md and existing sketches (if any) from the **UX perspective**: can users use it? Is the visuals consistent?
13
-
14
- ## Step 1: Preflight
15
-
16
- ```bash
17
- SPEC_NAME="${ARGUMENTS:-$(cat .flow/.active-spec 2>/dev/null)}"
18
- [ -z "$SPEC_NAME" ] && { echo "✗ No active spec"; exit 1; }
19
-
20
- # If no UI-related content (pure backend spec) → skip
21
- DIR=".flow/specs/$SPEC_NAME"
22
- if ! grep -qE "(UI|UX|interface|user interface|frontend)" "$DIR"/*.md 2>/dev/null; then
23
- echo "ℹ This spec does not involve UI; skipping Design Review"
24
- exit 0
25
- fi
26
- ```
27
-
28
- ## Step 2: Dispatch Emma (Design Review mode)
29
-
30
- ```
31
- Task:
32
- subagent_type: general-purpose
33
- description: "Design Review: $SPEC_NAME"
34
- prompt: |
35
- **Design Review Mode** (you are Emma, flow-ux-designer)
36
-
37
- Your full definition: ${CLAUDE_PLUGIN_ROOT}/agents/flow-ux-designer.md
38
- Review methodology: ${CLAUDE_PLUGIN_ROOT}/knowledge/planning-reviews.md (Review 3)
39
-
40
- Review targets:
41
- - .flow/specs/$SPEC_NAME/design.md (UI-related sections)
42
- - .flow/specs/$SPEC_NAME/ui-sketch/ (if /curdx-flow:sketch has been run)
43
- - .flow/CONTEXT.md (user preferences)
44
- - Existing UI patterns in the project (.flow/codebase-index.md, if present)
45
-
46
- Review checklist:
47
-
48
- 1. User flow
49
- - Main scenario ≤ 3 steps?
50
- - Multiple entry points?
51
- - Keyboard flow?
52
-
53
- 2. Error states
54
- - Are failure messages user-friendly?
55
- - Does the user know how to recover?
56
-
57
- 3. Loading states
58
- - Visual feedback for long-running operations?
59
- - Skeleton / spinner?
60
-
61
- 4. Empty states
62
- - Guidance when no data (CTA / illustration)?
63
- - Not a blank page
64
-
65
- 5. Accessibility
66
- - Color contrast WCAG AA+?
67
- - Fully keyboard operable?
68
- - Semantic HTML + ARIA?
69
- - Screen-reader friendly?
70
-
71
- 6. Design system consistency
72
- - Using project tokens (colors / fonts / spacing)?
73
- - Using existing components, not reinventing?
74
- - New components within the theme?
75
-
76
- 7. Mobile adaptation
77
- - Usable at narrowest viewport (375px)?
78
- - Touch targets ≥ 44pt?
79
- - Both portrait and landscape unbroken?
80
-
81
- 8. Internationalization
82
- - Copy replaceable?
83
- - RTL compatible?
84
- - Space adapts to different lengths (e.g., German is ~30% longer than English)?
85
-
86
- Output: .flow/specs/$SPEC_NAME/plan-review-design.md
87
-
88
- Return a briefing.
89
- ```
90
-
91
- ## Step 3: Output
92
-
93
- ```
94
- 🎨 Design Review complete
95
-
96
- Verdict: <APPROVED / NEEDS_REVISION>
97
-
98
- Key findings:
99
- - <top 3>
100
-
101
- Report: .flow/specs/$SPEC_NAME/plan-review-design.md
102
-
103
- Next steps:
104
- - UI/UX issues → /curdx-flow:sketch to iterate again
105
- - Or /curdx-flow:design to update UI-related sections
106
- - Pass → /curdx-flow:plan-dx or /curdx-flow:tasks
107
- ```
@@ -1,104 +0,0 @@
1
- ---
2
- name: plan-dx
3
- description: DevEx planning review — next maintainer's perspective, 8-dimension evaluation (naming/comments/structure/errors/setup/types/tests/dev loop)
4
- argument-hint: "[spec-name]"
5
- allowed-tools: [Read, Write, Bash, Task]
6
- ---
7
-
8
- # Flow Plan DX — Developer Experience Review
9
-
10
- @${CLAUDE_PLUGIN_ROOT}/knowledge/planning-reviews.md
11
- @${CLAUDE_PLUGIN_ROOT}/gates/devex-gate.md
12
-
13
- Review from the **next maintainer's** perspective: in 6 months, can I or a colleague quickly pick this up?
14
-
15
- ## Step 1: Preflight
16
-
17
- ```bash
18
- SPEC_NAME="${ARGUMENTS:-$(cat .flow/.active-spec 2>/dev/null)}"
19
- [ -z "$SPEC_NAME" ] && { echo "✗ No active spec"; exit 1; }
20
- [ ! -f ".flow/specs/$SPEC_NAME/design.md" ] && { echo "✗ Missing design.md"; exit 1; }
21
- ```
22
-
23
- ## Step 2: Dispatch DX Review
24
-
25
- ```
26
- Task:
27
- subagent_type: general-purpose
28
- description: "DX Review: $SPEC_NAME"
29
- prompt: |
30
- **DevEx Review Mode**
31
-
32
- You review design.md on DevEx dimensions. Reuse the flow-reviewer agent:
33
- ${CLAUDE_PLUGIN_ROOT}/agents/flow-reviewer.md
34
-
35
- Gate definition:
36
- ${CLAUDE_PLUGIN_ROOT}/gates/devex-gate.md
37
-
38
- Methodology:
39
- ${CLAUDE_PLUGIN_ROOT}/knowledge/planning-reviews.md (Review 4)
40
-
41
- Review targets:
42
- - .flow/specs/$SPEC_NAME/design.md
43
- - Related source code (if design references existing code)
44
- - .flow/codebase-index.md (if present)
45
-
46
- 8-dimension scoring (0-10 per dimension):
47
-
48
- DX-01 Naming clarity
49
- DX-02 Intent comments
50
- DX-03 File structure
51
- DX-04 Error messages
52
- DX-05 Easy setup
53
- DX-06 Clear types
54
- DX-07 Tests as docs
55
- DX-08 Fast dev loop
56
-
57
- For each dimension:
58
- - Observe relevant decisions in the design
59
- - If the design specifically mentions a dimension (e.g., "we use strict TypeScript") → basis for scoring
60
- - If the design does not mention it (e.g., no word about error-message design) → mark as "missing", score 5
61
-
62
- Use sequential-thinking ≥ 4 rounds.
63
-
64
- Output: .flow/specs/$SPEC_NAME/plan-review-dx.md
65
-
66
- Format:
67
- # DX Plan Review: $SPEC_NAME
68
-
69
- ## Scores
70
- DX-01 Naming: 7/10
71
- DX-02 Comments: 5/10 (not mentioned)
72
- DX-03 Structure: 8/10
73
- ...
74
-
75
- Total: N/80
76
-
77
- ## Findings
78
-
79
- ### DX-02 Intent comments
80
- Observation: the design does not explicitly state a comment strategy
81
- Risk: the implementer may under-comment
82
- Recommendation: add a paragraph in the design "key decision points should have why comments"
83
-
84
- ...
85
- ```
86
-
87
- ## Step 3: Output
88
-
89
- ```
90
- 📐 DX Review complete
91
-
92
- Total: N/80 ($([ $N -ge 40 ] && echo "pass" || echo "needs improvement"))
93
-
94
- Weakest dimensions:
95
- - <dimension 1> N/10
96
- - <dimension 2> N/10
97
-
98
- Report: .flow/specs/$SPEC_NAME/plan-review-dx.md
99
-
100
- Next steps:
101
- - Add strategies in design.md for low-scoring dimensions
102
- - Or add "DX checkpoint" tasks in tasks.md
103
- - Pass → /curdx-flow:tasks (execution breakdown)
104
- ```
@@ -1,108 +0,0 @@
1
- ---
2
- name: plan-eng
3
- description: Engineering planning review — architecture lock-in, risk identification, technical debt assessment. Dispatches flow-architect in review mode.
4
- argument-hint: "[spec-name]"
5
- allowed-tools: [Read, Write, Bash, Task]
6
- ---
7
-
8
- # Flow Plan Engineering — Engineering-Layer Review
9
-
10
- @${CLAUDE_PLUGIN_ROOT}/knowledge/planning-reviews.md
11
-
12
- Review design.md once more from the **engineer's perspective**: will the architecture work? Is it maintainable long-term?
13
-
14
- ## Step 1: Preflight
15
-
16
- ```bash
17
- SPEC_NAME="${ARGUMENTS:-$(cat .flow/.active-spec 2>/dev/null)}"
18
- [ -z "$SPEC_NAME" ] && { echo "✗ No active spec"; exit 1; }
19
- [ ! -f ".flow/specs/$SPEC_NAME/design.md" ] && { echo "✗ Missing design.md"; exit 1; }
20
- ```
21
-
22
- ## Step 2: Dispatch Eng Review
23
-
24
- ```
25
- Task:
26
- subagent_type: general-purpose
27
- description: "Eng Review: $SPEC_NAME"
28
- prompt: |
29
- **Engineering Review Mode**
30
-
31
- You are an independent engineering reviewer. You read design.md to find risks, holes, and unclarities.
32
-
33
- Full methodology: ${CLAUDE_PLUGIN_ROOT}/knowledge/planning-reviews.md (Review 2)
34
-
35
- Review targets:
36
- - .flow/specs/$SPEC_NAME/design.md (main body)
37
- - .flow/specs/$SPEC_NAME/requirements.md (NFR requirements)
38
- - .flow/STATE.md (existing decisions)
39
-
40
- Review checklist:
41
-
42
- 1. Architecture lock-in
43
- - Does each AD-NN have a tradeoff explanation?
44
- - Does the rationale reference sequential-thinking rounds?
45
- - Is there an explicit cost ("we accepted X")?
46
-
47
- 2. Scalability
48
- - What happens at 10x users / 10x data?
49
- - Are bottlenecks identified?
50
-
51
- 3. Reasonable dependencies
52
- - Is the library / service choice justified?
53
- - Risk of deprecation?
54
- - Known CVEs / issues?
55
-
56
- 4. Clear data flow
57
- - Does the mermaid diagram reflect the real flow?
58
- - Are all component boundaries explicit?
59
-
60
- 5. Error paths
61
- - Handling of upstream failures?
62
- - Handling of downstream failures?
63
- - User input anomalies?
64
- - Concurrency / retries?
65
-
66
- 6. Test strategy
67
- - Reasonable unit / integration / E2E ratio?
68
- - Core scenarios covered?
69
-
70
- 7. Deployment feasibility
71
- - CI/CD pipeline?
72
- - Monitoring / alerting?
73
- - Rollback strategy?
74
-
75
- Use sequential-thinking ≥ 6 rounds (adversarial-style review; "looks fine" is not accepted).
76
- Must find ≥ 3 findings.
77
-
78
- Output: .flow/specs/$SPEC_NAME/plan-review-eng.md
79
-
80
- Format for each finding:
81
- ### [Category] Issue
82
- Location: design.md section N / AD-NN
83
- Observation: what was specifically seen
84
- Risk: high / medium / low + consequences
85
- Recommendation: concrete change (command or code snippet)
86
- ```
87
-
88
- ## Step 3: Output
89
-
90
- ```
91
- ⚙ Engineering Review complete
92
-
93
- Findings:
94
- High: $HIGH
95
- Medium: $MED
96
- Low: $LOW
97
-
98
- Verdict: <APPROVED / NEEDS_REVISION>
99
-
100
- Key risks:
101
- - <top 3>
102
-
103
- Report: .flow/specs/$SPEC_NAME/plan-review-eng.md
104
-
105
- Next steps:
106
- - Fix high/medium → /curdx-flow:design to update (bump version)
107
- - After pass → /curdx-flow:plan-design or /curdx-flow:tasks
108
- ```