@leeovery/claude-technical-workflows 2.1.24 → 2.1.25

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 (44) hide show
  1. package/agents/review-task-verifier.md +22 -10
  2. package/package.json +1 -1
  3. package/skills/link-dependencies/SKILL.md +60 -33
  4. package/skills/start-discussion/references/display-options.md +44 -15
  5. package/skills/start-discussion/references/gather-context-continue.md +2 -0
  6. package/skills/start-discussion/references/gather-context-fresh.md +6 -0
  7. package/skills/start-discussion/references/gather-context-research.md +2 -2
  8. package/skills/start-implementation/SKILL.md +114 -47
  9. package/skills/start-planning/SKILL.md +94 -36
  10. package/skills/start-research/references/gather-context.md +4 -4
  11. package/skills/start-review/SKILL.md +14 -123
  12. package/skills/start-review/references/display-plans.md +103 -0
  13. package/skills/start-review/references/invoke-skill.md +32 -0
  14. package/skills/start-review/references/select-plans.md +41 -0
  15. package/skills/start-specification/references/analysis-flow.md +2 -0
  16. package/skills/start-specification/references/confirm-continue.md +21 -1
  17. package/skills/start-specification/references/confirm-create.md +15 -1
  18. package/skills/start-specification/references/confirm-refine.md +9 -1
  19. package/skills/start-specification/references/confirm-unify.md +12 -0
  20. package/skills/start-specification/references/display-analyze.md +21 -2
  21. package/skills/start-specification/references/display-blocks.md +11 -6
  22. package/skills/start-specification/references/display-groupings.md +20 -13
  23. package/skills/start-specification/references/display-single-grouped.md +13 -6
  24. package/skills/start-specification/references/display-single-has-spec.md +15 -7
  25. package/skills/start-specification/references/display-single-no-spec.md +13 -9
  26. package/skills/start-specification/references/display-single.md +0 -2
  27. package/skills/start-specification/references/display-specs-menu.md +21 -6
  28. package/skills/status/SKILL.md +18 -11
  29. package/skills/technical-implementation/SKILL.md +14 -6
  30. package/skills/technical-implementation/references/steps/analysis-loop.md +12 -6
  31. package/skills/technical-implementation/references/steps/task-loop.md +12 -6
  32. package/skills/technical-planning/SKILL.md +8 -4
  33. package/skills/technical-planning/references/steps/analyze-task-graph.md +8 -4
  34. package/skills/technical-planning/references/steps/author-tasks.md +4 -2
  35. package/skills/technical-planning/references/steps/define-phases.md +4 -2
  36. package/skills/technical-planning/references/steps/define-tasks.md +4 -2
  37. package/skills/technical-planning/references/steps/plan-construction.md +4 -2
  38. package/skills/technical-planning/references/steps/resolve-dependencies.md +4 -2
  39. package/skills/technical-planning/references/steps/review-integrity.md +4 -2
  40. package/skills/technical-planning/references/steps/review-traceability.md +4 -2
  41. package/skills/technical-research/SKILL.md +4 -2
  42. package/skills/technical-review/references/invoke-task-verifiers.md +37 -47
  43. package/skills/technical-specification/references/specification-guide.md +11 -3
  44. package/skills/view-plan/SKILL.md +3 -1
@@ -27,32 +27,37 @@ docs/workflow/research/
27
27
  docs/workflow/discussion/
28
28
  docs/workflow/specification/
29
29
  docs/workflow/planning/
30
+ docs/workflow/implementation/
30
31
  ```
31
32
 
33
+ For implementation, check `docs/workflow/implementation/{topic}/tracking.md` files and extract frontmatter fields: `status`, `current_phase`, `current_task`, `completed_tasks`, `completed_phases`.
34
+
32
35
  ## Step 2: Present Status
33
36
 
34
37
  Research is project-wide exploration. From discussion onwards, work is organised by **topic** - different topics may be at different stages.
35
38
 
36
- Show a summary like this:
39
+ > *Output the next fenced block as markdown (not a code block):*
37
40
 
38
41
  ```
39
- ## Workflow Status
40
-
41
- **Research:** 2 files (exploration.md, market-analysis.md)
42
+ **Workflow Overview**
42
43
 
43
- **Topics:**
44
+ **Research:** {count} files ({filenames})
44
45
 
45
- | Topic | Discussion | Spec | Plan | Implemented |
46
- |--------------|------------|------|------|-------------|
47
- | auth-system | | | | in progress |
48
- | payment-flow | | | - | - |
49
- | notifications| ✓ | - | - | - |
46
+ | Topic | Discussion | Spec | Plan | Implemented |
47
+ |-------|------------|------|------|-------------|
48
+ | {topic} | {discussion_status} | {spec_status} | {plan_status} | {impl_status} |
49
+ | ... | | | | |
50
50
  ```
51
51
 
52
52
  Adapt based on what exists:
53
- - If a directory is empty or missing, show "Not started"
53
+ - If a directory is empty or missing, show `-`
54
54
  - For planning, note the output format if specified in frontmatter
55
55
  - Match topics across phases by filename
56
+ - For implementation, derive the Implemented column from tracking file data:
57
+ - No tracking file → `-`
58
+ - `status: not-started` → `not started`
59
+ - `status: in-progress` → `phase {current_phase} ({n}/{total} tasks done)` — count `completed_tasks` for n; use total task count from `completed_tasks` + remaining if available, otherwise just show completed count
60
+ - `status: completed` → `completed`
56
61
 
57
62
  ## Step 3: Suggest Next Steps
58
63
 
@@ -75,6 +80,8 @@ Keep suggestions brief - the user knows their project's dependencies better than
75
80
 
76
81
  If planning files exist, let the user know they can view plan details:
77
82
 
83
+ > *Output the next fenced block as a code block:*
84
+
78
85
  ```
79
86
  To view a plan's tasks and progress, use /view-plan
80
87
  ```
@@ -166,6 +166,9 @@ Commit: `impl({topic}): start implementation`
166
166
 
167
167
  Present the existing configuration for confirmation:
168
168
 
169
+ > *Output the next fenced block as markdown (not a code block):*
170
+
171
+ ```
169
172
  Previous session used these project skills:
170
173
  - `{skill-name}` — {path}
171
174
  - ...
@@ -174,8 +177,7 @@ Previous session used these project skills:
174
177
  - **`y`/`yes`** — Keep these, proceed
175
178
  - **`c`/`change`** — Re-discover and choose skills
176
179
  · · · · · · · · · · · ·
177
-
178
- **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
180
+ ```
179
181
 
180
182
  **STOP.** Wait for user choice.
181
183
 
@@ -184,6 +186,8 @@ Previous session used these project skills:
184
186
 
185
187
  #### If `.claude/skills/` does not exist or is empty
186
188
 
189
+ > *Output the next fenced block as a code block:*
190
+
187
191
  ```
188
192
  No project skills found. Proceeding without project-specific conventions.
189
193
  ```
@@ -194,6 +198,9 @@ No project skills found. Proceeding without project-specific conventions.
194
198
 
195
199
  Scan `.claude/skills/` for project-specific skill directories. Present findings:
196
200
 
201
+ > *Output the next fenced block as markdown (not a code block):*
202
+
203
+ ```
197
204
  Found these project skills that may be relevant to implementation:
198
205
  - `{skill-name}` — {brief description}
199
206
  - `{skill-name}` — {brief description}
@@ -204,8 +211,7 @@ Found these project skills that may be relevant to implementation:
204
211
  - **`n`/`none`** — Skip project skills
205
212
  - **Or list the ones you want** — e.g. "golang-pro, react-patterns"
206
213
  · · · · · · · · · · · ·
207
-
208
- **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
214
+ ```
209
215
 
210
216
  **STOP.** Wait for user to confirm which skills are relevant.
211
217
 
@@ -223,6 +229,9 @@ If `linters` is already populated in the tracking file, present the existing con
223
229
 
224
230
  Otherwise, present discovery findings to the user:
225
231
 
232
+ > *Output the next fenced block as markdown (not a code block):*
233
+
234
+ ```
226
235
  **Linter discovery:**
227
236
  - {tool} — `{command}` (installed / not installed)
228
237
  - ...
@@ -234,8 +243,7 @@ Recommendations: {any suggested tools with install commands}
234
243
  - **`c`/`change`** — Modify the linter list
235
244
  - **`s`/`skip`** — Skip linter setup (no linting during TDD)
236
245
  · · · · · · · · · · · ·
237
-
238
- **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
246
+ ```
239
247
 
240
248
  **STOP.** Wait for user choice.
241
249
 
@@ -32,12 +32,14 @@ If `analysis_cycle > 3`:
32
32
 
33
33
  Analysis has run {N-1} times so far. You can continue (recommended if issues were still found last cycle) or skip to completion.
34
34
 
35
+ > *Output the next fenced block as markdown (not a code block):*
36
+
37
+ ```
35
38
  · · · · · · · · · · · ·
36
39
  - **`p`/`proceed`** — Continue analysis *(default)*
37
40
  - **`s`/`skip`** — Skip analysis, proceed to completion
38
41
  · · · · · · · · · · · ·
39
-
40
- **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
42
+ ```
41
43
 
42
44
  **STOP.** Wait for user choice. You MUST NOT choose on the user's behalf.
43
45
 
@@ -61,13 +63,15 @@ If there are unstaged changes or untracked files, categorize them:
61
63
  - `{file}` ({status: modified/untracked})
62
64
  - ...
63
65
 
66
+ > *Output the next fenced block as markdown (not a code block):*
67
+
68
+ ```
64
69
  · · · · · · · · · · · ·
65
70
  - **`y`/`yes`** — Include all in the checkpoint commit
66
71
  - **`s`/`skip`** — Exclude unexpected files, commit only implementation files
67
72
  - **Comment** — Specify which to include
68
73
  · · · · · · · · · · · ·
69
-
70
- **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
74
+ ```
71
75
 
72
76
  **STOP.** Wait for user choice.
73
77
 
@@ -145,13 +149,15 @@ Sources: {sources}
145
149
  **Tests**:
146
150
  {tests}
147
151
 
152
+ > *Output the next fenced block as markdown (not a code block):*
153
+
154
+ ```
148
155
  · · · · · · · · · · · ·
149
156
  - **`a`/`approve`** — Approve this task
150
157
  - **`s`/`skip`** — Skip this task
151
158
  - **Comment** — Revise based on feedback
152
159
  · · · · · · · · · · · ·
153
-
154
- **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
160
+ ```
155
161
 
156
162
  **STOP.** Wait for user input.
157
163
 
@@ -44,13 +44,15 @@ Present the executor's ISSUES to the user:
44
44
 
45
45
  {executor's ISSUES content}
46
46
 
47
+ > *Output the next fenced block as markdown (not a code block):*
48
+
49
+ ```
47
50
  · · · · · · · · · · · ·
48
51
  - **`r`/`retry`** — Re-invoke the executor with your comments (provide below)
49
52
  - **`s`/`skip`** — Skip this task and move to the next
50
53
  - **`t`/`stop`** — Stop implementation entirely
51
54
  · · · · · · · · · · · ·
52
-
53
- **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
55
+ ```
54
56
 
55
57
  **STOP.** Wait for user choice.
56
58
 
@@ -103,14 +105,16 @@ Present the reviewer's findings and fix analysis to the user:
103
105
  Notes (non-blocking):
104
106
  {NOTES from reviewer}
105
107
 
108
+ > *Output the next fenced block as markdown (not a code block):*
109
+
110
+ ```
106
111
  · · · · · · · · · · · ·
107
112
  - **`y`/`yes`** — Accept the review and fix analysis, pass to executor
108
113
  - **`a`/`auto`** — Accept and auto-approve future fix analyses
109
114
  - **`s`/`skip`** — Override the reviewer and proceed as-is
110
115
  - **Comment** — Any commentary, adjustments, alternative approaches, or questions before passing to executor
111
116
  · · · · · · · · · · · ·
112
-
113
- **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
117
+ ```
114
118
 
115
119
  **STOP.** Wait for user choice.
116
120
 
@@ -134,14 +138,16 @@ Present a summary and wait for user input:
134
138
  Phase: {phase number} — {phase name}
135
139
  {executor's SUMMARY — brief commentary, decisions, implementation notes}
136
140
 
141
+ > *Output the next fenced block as markdown (not a code block):*
142
+
143
+ ```
137
144
  · · · · · · · · · · · ·
138
145
  **Options:**
139
146
  - **`y`/`yes`** — Approve, commit, continue to next task
140
147
  - **`a`/`auto`** — Approve this and all future reviewer-approved tasks automatically
141
148
  - **Comment** — Feedback the reviewer missed (triggers a fix round)
142
149
  · · · · · · · · · · · ·
143
-
144
- **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
150
+ ```
145
151
 
146
152
  **STOP.** Wait for user input.
147
153
 
@@ -84,12 +84,14 @@ Found existing plan for **{topic}** (previously reached phase {N}, task {M}).
84
84
 
85
85
  {spec change summary from spec-change-detection.md}
86
86
 
87
+ > *Output the next fenced block as markdown (not a code block):*
88
+
89
+ ```
87
90
  · · · · · · · · · · · ·
88
91
  - **`c`/`continue`** — Walk through the plan from the start. You can review, amend, or navigate at any point — including straight to the leading edge.
89
92
  - **`r`/`restart`** — Erase all planning work for this topic and start fresh. This deletes the Plan Index File and any Authored Tasks. Other topics are unaffected.
90
93
  · · · · · · · · · · · ·
91
-
92
- **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
94
+ ```
93
95
 
94
96
  **STOP.** Wait for user response.
95
97
 
@@ -128,12 +130,14 @@ Present the recommendation:
128
130
 
129
131
  Existing plans use **{format}**. Use the same format for consistency?
130
132
 
133
+ > *Output the next fenced block as markdown (not a code block):*
134
+
135
+ ```
131
136
  · · · · · · · · · · · ·
132
137
  - **`y`/`yes`** — Use {format}
133
138
  - **`n`/`no`** — See all available formats
134
139
  · · · · · · · · · · · ·
135
-
136
- **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
140
+ ```
137
141
 
138
142
  **STOP.** Wait for user choice. If declined, fall through to the full list below.
139
143
 
@@ -38,13 +38,15 @@ The natural task order is already correct. Present as rendered markdown (not in
38
38
 
39
39
  {notes from agent output}"
40
40
 
41
+ > *Output the next fenced block as markdown (not a code block):*
42
+
43
+ ```
41
44
  · · · · · · · · · · · ·
42
45
  **To proceed:**
43
46
  - **`y`/`yes`** — Confirmed.
44
47
  - **Or tell me what to change.**
45
48
  · · · · · · · · · · · ·
46
-
47
- **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
49
+ ```
48
50
 
49
51
  **STOP.** Wait for the user's response.
50
52
 
@@ -74,13 +76,15 @@ Dependencies and priorities have already been written to the task files. Present
74
76
 
75
77
  {any notes from agent output}"
76
78
 
79
+ > *Output the next fenced block as markdown (not a code block):*
80
+
81
+ ```
77
82
  · · · · · · · · · · · ·
78
83
  **To proceed:**
79
84
  - **`y`/`yes`** — Approved.
80
85
  - **Or tell me what to change.**
81
86
  · · · · · · · · · · · ·
82
-
83
- **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
87
+ ```
84
88
 
85
89
  **STOP.** Wait for the user's response.
86
90
 
@@ -31,14 +31,16 @@ After presenting, ask:
31
31
 
32
32
  **Task {M} of {total}: {Task Name}**
33
33
 
34
+ > *Output the next fenced block as markdown (not a code block):*
35
+
36
+ ```
34
37
  · · · · · · · · · · · ·
35
38
  **To proceed:**
36
39
  - **`y`/`yes`** — Approved. I'll log it to the plan.
37
40
  - **Or tell me what to change.**
38
41
  - **Or navigate** — a different phase or task, or the leading edge.
39
42
  · · · · · · · · · · · ·
40
-
41
- **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
43
+ ```
42
44
 
43
45
  **STOP.** Wait for the user's response.
44
46
 
@@ -59,14 +59,16 @@ Present the phase structure to the user as rendered markdown (not in a code bloc
59
59
 
60
60
  **Phase Structure**
61
61
 
62
+ > *Output the next fenced block as markdown (not a code block):*
63
+
64
+ ```
62
65
  · · · · · · · · · · · ·
63
66
  **To proceed:**
64
67
  - **`y`/`yes`** — Approved. I'll proceed to task breakdown.
65
68
  - **Or tell me what to change** — reorder, split, merge, add, edit, or remove phases.
66
69
  - **Or navigate** — a different phase or task, or the leading edge.
67
70
  · · · · · · · · · · · ·
68
-
69
- **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
71
+ ```
70
72
 
71
73
  #### If the user provides feedback
72
74
 
@@ -42,14 +42,16 @@ Present the task overview to the user as rendered markdown (not in a code block)
42
42
 
43
43
  **STOP.** Ask:
44
44
 
45
+ > *Output the next fenced block as markdown (not a code block):*
46
+
47
+ ```
45
48
  · · · · · · · · · · · ·
46
49
  **To proceed:**
47
50
  - **`y`/`yes`** — Approved.
48
51
  - **Or tell me what to change** — reorder, split, merge, add, edit, or remove tasks.
49
52
  - **Or navigate** — a different phase or task, or the leading edge.
50
53
  · · · · · · · · · · · ·
51
-
52
- **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
54
+ ```
53
55
 
54
56
  #### If the user provides feedback
55
57
 
@@ -71,14 +71,16 @@ Present the task list to the user as rendered markdown (not in a code block).
71
71
 
72
72
  **Phase {N}: {Phase Name}** — {M} tasks.
73
73
 
74
+ > *Output the next fenced block as markdown (not a code block):*
75
+
76
+ ```
74
77
  · · · · · · · · · · · ·
75
78
  **To proceed:**
76
79
  - **`y`/`yes`** — Confirmed.
77
80
  - **Or tell me what to change.**
78
81
  - **Or navigate** — a different phase or task, or the leading edge.
79
82
  · · · · · · · · · · · ·
80
-
81
- **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
83
+ ```
82
84
 
83
85
  **STOP.** Wait for the user's response.
84
86
 
@@ -43,13 +43,15 @@ Skip the resolution and reverse check — there is nothing to resolve against. D
43
43
 
44
44
  **STOP.** Present a summary of the dependency state: what was documented, what was resolved, what remains unresolved, and any reverse resolutions made.
45
45
 
46
+ > *Output the next fenced block as markdown (not a code block):*
47
+
48
+ ```
46
49
  · · · · · · · · · · · ·
47
50
  **To proceed:**
48
51
  - **`y`/`yes`** — Approved. I'll proceed to plan review.
49
52
  - **Or tell me what to change.**
50
53
  · · · · · · · · · · · ·
51
-
52
- **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
54
+ ```
53
55
 
54
56
  #### If the user provides feedback
55
57
 
@@ -171,14 +171,16 @@ After presenting the finding and proposed fix, ask:
171
171
 
172
172
  **Finding {N} of {total}: {Brief Title}**
173
173
 
174
+ > *Output the next fenced block as markdown (not a code block):*
175
+
176
+ ```
174
177
  · · · · · · · · · · · ·
175
178
  **To proceed:**
176
179
  - **`y`/`yes`** — Approved. I'll apply it to the plan verbatim.
177
180
  - **`s`/`skip`** — Leave this as-is and move to the next finding.
178
181
  - **Or tell me what to change.**
179
182
  · · · · · · · · · · · ·
180
-
181
- **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
183
+ ```
182
184
 
183
185
  **STOP.** Wait for the user's response.
184
186
 
@@ -149,14 +149,16 @@ After presenting the finding and proposed fix, ask:
149
149
 
150
150
  **Finding {N} of {total}: {Brief Title}**
151
151
 
152
+ > *Output the next fenced block as markdown (not a code block):*
153
+
154
+ ```
152
155
  · · · · · · · · · · · ·
153
156
  **To proceed:**
154
157
  - **`y`/`yes`** — Approved. I'll apply it to the plan verbatim.
155
158
  - **`s`/`skip`** — Leave this as-is and move to the next finding.
156
159
  - **Or tell me what to change.**
157
160
  · · · · · · · · · · · ·
158
-
159
- **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
161
+ ```
160
162
 
161
163
  **STOP.** Wait for the user's response.
162
164
 
@@ -87,13 +87,15 @@ When you notice convergence, **flag it and give the user options**:
87
87
 
88
88
  This thread seems to be converging — we've explored {topic} enough that the tradeoffs are clear and it's approaching decision territory.
89
89
 
90
+ > *Output the next fenced block as markdown (not a code block):*
91
+
92
+ ```
90
93
  · · · · · · · · · · · ·
91
94
  - **`p`/`park`** — Mark as discussion-ready and move to another topic
92
95
  - **`k`/`keep`** — Keep digging, there's more to understand
93
96
  - Comment — your call
94
97
  · · · · · · · · · · · ·
95
-
96
- **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
98
+ ```
97
99
 
98
100
  **Never decide for the user.** Even if the answer seems obvious, flag it and ask.
99
101
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  ---
6
6
 
7
- This step dispatches `review-task-verifier` agents in parallel to verify ALL tasks across the selected plan(s). Each verifier independently checks one task for implementation, tests, and code quality.
7
+ This step dispatches `review-task-verifier` agents in batches to verify ALL tasks across the selected plan(s). Each verifier independently checks one task for implementation, tests, and code quality, writing its full findings to a file and returning a brief status.
8
8
 
9
9
  ---
10
10
 
@@ -26,15 +26,33 @@ From each plan in scope, list every task across all phases:
26
26
  - Note each task's description
27
27
  - Note each task's acceptance criteria
28
28
  - Note expected micro acceptance (test name)
29
+ - Assign each task a sequential **index** (1, 2, 3...) for file naming
29
30
 
30
31
  ---
31
32
 
32
- ## Dispatch Verifiers
33
+ ## Create Output Directory
33
34
 
34
- Dispatch **one verifier per task, all in parallel** via the Task tool.
35
+ For each topic in scope, ensure the review output directory exists:
36
+
37
+ ```bash
38
+ mkdir -p docs/workflow/review/{topic}
39
+ ```
40
+
41
+ ---
42
+
43
+ ## Batch Dispatch
44
+
45
+ Dispatch verifiers in **batches of 5** via the Task tool.
35
46
 
36
47
  - **Agent path**: `../../../agents/review-task-verifier.md`
37
48
 
49
+ 1. Group tasks into batches of 5
50
+ 2. For each batch:
51
+ - Dispatch all agents in the batch in parallel
52
+ - Wait for all agents in the batch to return
53
+ - Record statuses
54
+ 3. After all batches complete, proceed to aggregation
55
+
38
56
  Each verifier receives:
39
57
 
40
58
  1. **Plan task** — the specific task with acceptance criteria
@@ -42,63 +60,35 @@ Each verifier receives:
42
60
  3. **Plan path** — the full plan for phase context
43
61
  4. **Project skill paths** — from Step 2 discovery
44
62
  5. **Review checklist path** — `skills/technical-review/references/review-checklist.md`
63
+ 6. **Topic name** — for output file path
64
+ 7. **Task index** — sequential number for file naming (1, 2, 3...)
45
65
 
46
- ---
47
-
48
- ## Wait for Completion
49
-
50
- **STOP.** Do not proceed until all verifiers have returned.
51
-
52
- Each verifier returns a structured finding. If any verifier fails (error, timeout), record the failure and continue — aggregate what's available.
66
+ If any verifier fails (error, timeout), record the failure and continue — aggregate what's available.
53
67
 
54
68
  ---
55
69
 
56
70
  ## Expected Result
57
71
 
58
- Each verifier returns:
72
+ Each verifier returns a brief status:
59
73
 
60
74
  ```
61
- TASK: [Task name/description]
62
-
63
- ACCEPTANCE CRITERIA: [List from plan]
64
-
65
75
  STATUS: Complete | Incomplete | Issues Found
66
-
67
- SPEC CONTEXT: [Brief summary of relevant spec context]
68
-
69
- IMPLEMENTATION:
70
- - Status: [Implemented/Missing/Partial/Drifted]
71
- - Location: [file:line references]
72
- - Notes: [Any concerns]
73
-
74
- TESTS:
75
- - Status: [Adequate/Under-tested/Over-tested/Missing]
76
- - Coverage: [What is/isn't tested]
77
- - Notes: [Specific issues]
78
-
79
- CODE QUALITY:
80
- - Project conventions: [Followed/Violations/N/A]
81
- - SOLID principles: [Good/Concerns]
82
- - Complexity: [Low/Acceptable/High]
83
- - Modern idioms: [Yes/Opportunities]
84
- - Readability: [Good/Concerns]
85
- - Issues: [Specific problems if any]
86
-
87
- BLOCKING ISSUES:
88
- - [List any issues that must be fixed]
89
-
90
- NON-BLOCKING NOTES:
91
- - [Suggestions for improvement]
76
+ FINDINGS_COUNT: {N blocking issues}
77
+ SUMMARY: {1 sentence}
92
78
  ```
93
79
 
80
+ Full findings are written to `docs/workflow/review/{topic}/qa-task-{index}.md`.
81
+
94
82
  ---
95
83
 
96
84
  ## Aggregate Findings
97
85
 
98
- Once all verifiers have returned, synthesize their reports:
86
+ Once all batches have completed:
99
87
 
100
- - Collect all tasks with `STATUS: Incomplete` or `STATUS: Issues Found` as blocking issues
101
- - Collect all test issues (under/over-tested)
102
- - Collect all code quality concerns
103
- - Include specific file:line references
104
- - Check overall plan completion (see [review-checklist.md](review-checklist.md) — Plan Completion Check)
88
+ 1. Read all `docs/workflow/review/{topic}/qa-task-*.md` files
89
+ 2. Synthesize findings from file contents:
90
+ - Collect all tasks with `STATUS: Incomplete` or `STATUS: Issues Found` as blocking issues
91
+ - Collect all test issues (under/over-tested)
92
+ - Collect all code quality concerns
93
+ - Include specific file:line references
94
+ - Check overall plan completion (see [review-checklist.md](review-checklist.md) — Plan Completion Check)
@@ -84,7 +84,7 @@ Then, **separately from the content above** (clear visual break), present the ch
84
84
  - **Or tell me what to change.**
85
85
  · · · · · · · · · · · ·
86
86
 
87
- **Do not wrap content or choices in a code block** — both must render as styled markdown. The content and choices must be visually distinct (not run together).
87
+ Content and choices must be visually distinct (not run together).
88
88
 
89
89
  > **CHECKPOINT**: After presenting, you MUST STOP and wait for the user's response. Do NOT proceed to logging. Do NOT present the next topic. WAIT.
90
90
 
@@ -518,13 +518,17 @@ For each item, follow the **same workflow as the main specification process**:
518
518
 
519
519
  [content as rendered markdown]
520
520
 
521
+ > *Output the next fenced block as markdown (not a code block):*
522
+
523
+ ```
521
524
  · · · · · · · · · · · ·
522
525
  **To proceed:**
523
526
  - **`y`/`yes`** — Approved. I'll add the above to the specification **verbatim**.
524
527
  - **Or tell me what to change.**
525
528
  · · · · · · · · · · · ·
529
+ ```
526
530
 
527
- **Do not wrap content or choices in a code block.** Content and choices must be visually distinct.
531
+ Content and choices must be visually distinct.
528
532
 
529
533
  4. **Wait for explicit approval** - same rules as always: `y`/`yes` or equivalent before writing
530
534
  5. **Log verbatim** when approved
@@ -652,13 +656,17 @@ For each item:
652
656
 
653
657
  [content as rendered markdown]
654
658
 
659
+ > *Output the next fenced block as markdown (not a code block):*
660
+
661
+ ```
655
662
  · · · · · · · · · · · ·
656
663
  **To proceed:**
657
664
  - **`y`/`yes`** — Approved. I'll add the above to the specification **verbatim**.
658
665
  - **Or tell me what to change.**
659
666
  · · · · · · · · · · · ·
667
+ ```
660
668
 
661
- **Do not wrap content or choices in a code block.** Content and choices must be visually distinct.
669
+ Content and choices must be visually distinct.
662
670
 
663
671
  4. **Wait for explicit approval**
664
672
  5. **Log verbatim** when approved
@@ -38,8 +38,10 @@ Follow the reading reference to locate and read the actual plan content.
38
38
 
39
39
  Display a readable summary:
40
40
 
41
+ > *Output the next fenced block as a code block:*
42
+
41
43
  ```
42
- ## Plan: {topic}
44
+ Plan: {topic}
43
45
 
44
46
  **Format:** {format}
45
47