@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
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: review-task-verifier
3
- description: Verifies a single plan task was implemented correctly. Checks implementation, tests, and code quality against the task's acceptance criteria and spec context. Invoked by technical-review to verify ALL plan tasks in PARALLEL.
4
- tools: Read, Glob, Grep
3
+ description: Verifies a single plan task was implemented correctly. Checks implementation, tests, and code quality against the task's acceptance criteria and spec context. Writes structured findings to file, returns brief status to orchestrator.
4
+ tools: Read, Write, Glob, Grep
5
5
  model: opus
6
6
  ---
7
7
 
@@ -17,6 +17,8 @@ You receive:
17
17
  3. **Plan path**: The full plan for additional context
18
18
  4. **Project skill paths**: Relevant `.claude/skills/` paths for framework conventions
19
19
  5. **Review checklist path**: Path to the review checklist (`skills/technical-review/references/review-checklist.md`) — read this for detailed verification criteria
20
+ 6. **Topic name**: The plan topic (used for output file path)
21
+ 7. **Task index**: Sequential number for this task (used for output file naming)
20
22
 
21
23
  ## Your Task
22
24
 
@@ -82,9 +84,9 @@ Review the implementation as a senior architect would:
82
84
  - **Security**: No obvious vulnerabilities (injection, exposure, etc.)
83
85
  - **Performance**: No obvious inefficiencies (N+1 queries, unnecessary loops, etc.)
84
86
 
85
- ## Your Output
87
+ ## Output File Format
86
88
 
87
- Return a structured finding:
89
+ Write to `docs/workflow/review/{topic}/qa-task-{index}.md`:
88
90
 
89
91
  ```
90
92
  TASK: [Task name/description]
@@ -120,11 +122,21 @@ NON-BLOCKING NOTES:
120
122
  - [Suggestions for improvement]
121
123
  ```
122
124
 
125
+ ## Your Output
126
+
127
+ Return a brief status to the orchestrator:
128
+
129
+ ```
130
+ STATUS: Complete | Incomplete | Issues Found
131
+ FINDINGS_COUNT: {N blocking issues}
132
+ SUMMARY: {1 sentence}
133
+ ```
134
+
123
135
  ## Rules
124
136
 
125
- 1. **One task only** - You verify exactly one plan task per invocation
126
- 2. **Be thorough** - Check implementation, tests, AND quality
127
- 3. **Be specific** - Include file paths and line numbers
128
- 4. **Balanced test review** - Flag both under-testing AND over-testing
129
- 5. **Report findings** - Don't fix anything, just report what you find
130
- 6. **Fast and focused** - You're one of many running in parallel
137
+ 1. **One task only** you verify exactly one plan task per invocation
138
+ 2. **Be thorough** check implementation, tests, AND quality
139
+ 3. **Be specific** include file paths and line numbers
140
+ 4. **Balanced test review** flag both under-testing AND over-testing
141
+ 5. **Report findings** don't fix anything, just report what you find
142
+ 6. **No git writes** writing the output file is your only file write
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leeovery/claude-technical-workflows",
3
- "version": "2.1.24",
3
+ "version": "2.1.25",
4
4
  "description": "Technical workflow skills & commands for Claude Code",
5
5
  "license": "MIT",
6
6
  "author": "Lee Overy <me@leeovery.com>",
@@ -28,23 +28,31 @@ Scan the codebase for existing plans:
28
28
 
29
29
  **If no plans exist:**
30
30
 
31
+ > *Output the next fenced block as a code block:*
32
+
31
33
  ```
34
+ Dependency Linking
35
+
32
36
  No plans found in docs/workflow/planning/
33
37
 
34
38
  There are no plans to link. Create plans first.
35
39
  ```
36
40
 
37
- Stop here.
41
+ **STOP.** Do not proceed — terminal condition.
38
42
 
39
43
  **If only one plan exists:**
40
44
 
45
+ > *Output the next fenced block as a code block:*
46
+
41
47
  ```
48
+ Dependency Linking
49
+
42
50
  Only one plan found: {topic}
43
51
 
44
52
  Cross-topic dependency linking requires at least two plans.
45
53
  ```
46
54
 
47
- Stop here.
55
+ **STOP.** Do not proceed — terminal condition.
48
56
 
49
57
  ## Step 2: Check Output Format Consistency
50
58
 
@@ -52,18 +60,21 @@ Compare the `format:` field across all discovered plans.
52
60
 
53
61
  **If plans use different output formats:**
54
62
 
63
+ > *Output the next fenced block as a code block:*
64
+
55
65
  ```
66
+ Dependency Linking
67
+
56
68
  Mixed output formats detected:
57
69
 
58
- - authentication: {format-a}
59
- - billing-system: {format-b}
60
- - notifications: {format-a}
70
+ {topic} ({format})
71
+ ...
61
72
 
62
- Cross-topic dependencies can only be wired within the same output format.
63
- Please consolidate your plans to use a single output format before linking dependencies.
73
+ Cross-topic dependencies can only be wired within the same output
74
+ format. Consolidate your plans to a single format before linking.
64
75
  ```
65
76
 
66
- Stop here.
77
+ **STOP.** Do not proceed — terminal condition.
67
78
 
68
79
  ## Step 3: Extract External Dependencies
69
80
 
@@ -77,20 +88,28 @@ For each plan, read the `external_dependencies` field from the frontmatter:
77
88
 
78
89
  3. **Build a summary**:
79
90
 
91
+ > *Output the next fenced block as a code block:*
92
+
80
93
  ```
81
94
  Dependency Summary
82
95
 
83
- Plan: authentication (format: {format})
84
- - billing-system: Invoice generation (unresolved)
85
- - user-management: User profiles → {task-id} (resolved)
96
+ {N} plans found. {M} unresolved dependencies.
97
+
98
+ Plan: {topic:(titlecase)} (format: {format})
99
+ • {dependency}: {description} ({state:[unresolved|resolved|satisfied externally]})
100
+
101
+ Plan: ...
102
+ ```
103
+
104
+ > *Output the next fenced block as a code block:*
86
105
 
87
- Plan: billing-system (format: {format})
88
- - authentication: User context (unresolved)
89
- - payment-gateway: Payment processing (satisfied externally)
106
+ ```
107
+ Key:
90
108
 
91
- Plan: notifications (format: {format})
92
- - authentication: User lookup (unresolved)
93
- - billing-system: Invoice events (unresolved)
109
+ Dependency state:
110
+ unresolved — no task linked yet
111
+ resolved — linked to a task in another plan
112
+ satisfied externally — implemented outside this workflow
94
113
  ```
95
114
 
96
115
  ## Step 4: Match Dependencies to Plans
@@ -131,35 +150,43 @@ For each plan that was a dependency target (i.e., other plans depend on it):
131
150
 
132
151
  Present a summary:
133
152
 
153
+ > *Output the next fenced block as a code block:*
154
+
134
155
  ```
135
156
  Dependency Linking Complete
136
157
 
137
- RESOLVED (newly linked):
138
- - authenticationbilling-system: {task-id} (Invoice generation)
139
- - notifications → authentication: {task-id} (Session management)
158
+ Resolved (newly linked):
159
+ {source}{target}: {task-id} ({description})
140
160
 
141
- ALREADY RESOLVED (no action needed):
142
- - authenticationuser-management: {task-id}
161
+ Already resolved (no action needed):
162
+ {source}{target}: {task-id}
143
163
 
144
- SATISFIED EXTERNALLY (no action needed):
145
- - billing-systempayment-gateway
164
+ Satisfied externally (no action needed):
165
+ {source}{target}
146
166
 
147
- UNRESOLVED (no matching plan exists):
148
- - notificationsemail-service: Email delivery
167
+ Unresolved (no matching plan exists):
168
+ {source}{target}: {description}
149
169
 
150
- These dependencies have no corresponding plan. Either:
151
- - Create a plan for the topic
152
- - Mark as "satisfied externally" if already implemented
170
+ Updated files:
171
+ docs/workflow/planning/{topic}.md
172
+ ```
173
+
174
+ If any dependencies remain unresolved:
175
+
176
+ > *Output the next fenced block as a code block:*
153
177
 
154
- UPDATED FILES:
155
- - docs/workflow/planning/authentication.md
156
- - docs/workflow/planning/notifications.md
178
+ ```
179
+ Unresolved dependencies have no corresponding plan. Either:
180
+ Create a plan for the topic
181
+ • Mark as "satisfied externally" if already implemented
157
182
  ```
158
183
 
159
184
  ## Step 8: Commit Changes
160
185
 
161
186
  If any files were updated:
162
187
 
188
+ > *Output the next fenced block as markdown (not a code block):*
189
+
163
190
  ```
164
191
  · · · · · · · · · · · ·
165
192
  Shall I commit these dependency updates?
@@ -168,7 +195,7 @@ Shall I commit these dependency updates?
168
195
  · · · · · · · · · · · ·
169
196
  ```
170
197
 
171
- **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
198
+ **STOP.** Wait for user response.
172
199
 
173
200
  If yes, commit with message:
174
201
  ```
@@ -8,34 +8,54 @@ Present everything discovered to help the user make an informed choice.
8
8
 
9
9
  **Present the full state:**
10
10
 
11
+ > *Output the next fenced block as a code block:*
12
+
11
13
  ```
12
- Workflow Status: Discussion Phase
14
+ Discussion Overview
15
+
16
+ {N} research topics found. {M} existing discussions.
13
17
 
14
18
  Research topics:
15
- 1. · {Theme name} - undiscussed
16
- Source: {filename}.md (lines {start}-{end})
17
- "{Brief summary}"
18
19
 
19
- 2. {Theme name} → {topic}.md
20
- Source: {filename}.md (lines {start}-{end})
21
- "{Brief summary}"
20
+ 1. {theme_name}
21
+ └─ Source: {filename}.md (lines {start}-{end})
22
+ └─ Discussion: @if(has_discussion) {topic}.md ({status:[in-progress|concluded]}) @else (no discussion) @endif
23
+ └─ "{summary}"
22
24
 
23
- Discussions:
24
- - {topic}.md (in-progress)
25
- - {topic}.md (concluded)
25
+ 2. ...
26
+ ```
27
+
28
+ If discussions exist that are NOT linked to a research topic, list them separately:
29
+
30
+ > *Output the next fenced block as a code block:*
26
31
 
27
- ---
28
- Key:
29
- · = undiscussed topic (potential new discussion)
30
- ✓ = already has a corresponding discussion
31
32
  ```
33
+ Existing discussions:
32
34
 
33
- **Output in a fenced code block exactly as shown above.**
35
+ {topic}.md ({status:[in-progress|concluded]})
36
+ ```
37
+
38
+ ### Key/Legend
39
+
40
+ No `---` separator before this section.
41
+
42
+ > *Output the next fenced block as a code block:*
43
+
44
+ ```
45
+ Key:
46
+
47
+ Discussion status:
48
+ in-progress — discussion is ongoing
49
+ concluded — discussion is complete
50
+ ```
34
51
 
35
52
  **Then present the options based on what exists:**
36
53
 
37
54
  #### If research and discussions exist
38
55
 
56
+ > *Output the next fenced block as markdown (not a code block):*
57
+
58
+ ```
39
59
  · · · · · · · · · · · ·
40
60
  How would you like to proceed?
41
61
 
@@ -44,9 +64,13 @@ How would you like to proceed?
44
64
  - Continue discussion — name one above (e.g., "continue {topic}")
45
65
  - Fresh topic — describe what you want to discuss
46
66
  · · · · · · · · · · · ·
67
+ ```
47
68
 
48
69
  #### If only research exists
49
70
 
71
+ > *Output the next fenced block as markdown (not a code block):*
72
+
73
+ ```
50
74
  · · · · · · · · · · · ·
51
75
  How would you like to proceed?
52
76
 
@@ -54,14 +78,19 @@ How would you like to proceed?
54
78
  - From research — pick a topic number above (e.g., "1" or "research 1")
55
79
  - Fresh topic — describe what you want to discuss
56
80
  · · · · · · · · · · · ·
81
+ ```
57
82
 
58
83
  #### If only discussions exist
59
84
 
85
+ > *Output the next fenced block as markdown (not a code block):*
86
+
87
+ ```
60
88
  · · · · · · · · · · · ·
61
89
  How would you like to proceed?
62
90
 
63
91
  - Continue discussion — name one above (e.g., "continue {topic}")
64
92
  - Fresh topic — describe what you want to discuss
65
93
  · · · · · · · · · · · ·
94
+ ```
66
95
 
67
96
  **STOP.** Wait for user response before proceeding.
@@ -6,6 +6,8 @@
6
6
 
7
7
  Read the existing discussion document first, then ask:
8
8
 
9
+ > *Output the next fenced block as a code block:*
10
+
9
11
  ```
10
12
  Continuing: {topic}
11
13
 
@@ -10,6 +10,8 @@ Ask each question below **one at a time**. After each, **STOP** and wait for the
10
10
 
11
11
  ## Core Problem
12
12
 
13
+ > *Output the next fenced block as a code block:*
14
+
13
15
  ```
14
16
  New discussion: {topic}
15
17
 
@@ -22,6 +24,8 @@ What's the core problem or decision we need to work through?
22
24
 
23
25
  ## Constraints
24
26
 
27
+ > *Output the next fenced block as a code block:*
28
+
25
29
  ```
26
30
  Any constraints or context I should know about?
27
31
  ```
@@ -32,6 +36,8 @@ Any constraints or context I should know about?
32
36
 
33
37
  ## Codebase
34
38
 
39
+ > *Output the next fenced block as a code block:*
40
+
35
41
  ```
36
42
  Are there specific files in the codebase I should review first?
37
43
 
@@ -6,6 +6,8 @@
6
6
 
7
7
  Summarise the selected research topic in 2-5 lines, drawing from the source, summary, and key questions in the research analysis.
8
8
 
9
+ > *Output the next fenced block as markdown (not a code block):*
10
+
9
11
  ```
10
12
  New discussion: {topic}
11
13
 
@@ -22,6 +24,4 @@ research you'd like to include — drop them in now.
22
24
  · · · · · · · · · · · ·
23
25
  ```
24
26
 
25
- **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
26
-
27
27
  **STOP.** Wait for user response before proceeding.
@@ -108,13 +108,18 @@ Use `state.scenario` from the discovery output to determine the path:
108
108
 
109
109
  No plans exist yet.
110
110
 
111
+ > *Output the next fenced block as a code block:*
112
+
111
113
  ```
114
+ Implementation Overview
115
+
112
116
  No plans found in docs/workflow/planning/
113
117
 
114
- The implementation phase requires a plan. Please run /start-planning first to create a plan from a specification.
118
+ The implementation phase requires a plan.
119
+ Run /start-planning first to create a plan from a specification.
115
120
  ```
116
121
 
117
- **STOP.** Wait for user to acknowledge before ending.
122
+ **STOP.** Do not proceed terminal condition.
118
123
 
119
124
  #### If scenario is "single_plan" or "multiple_plans"
120
125
 
@@ -126,7 +131,7 @@ Plans exist.
126
131
 
127
132
  ## Step 3: Present Plans and Select
128
133
 
129
- Present all discovered plans using the icon system below. Classify each plan into one of three sections based on its state.
134
+ Present all discovered plans. Classify each plan into one of three categories based on its state.
130
135
 
131
136
  **Classification logic:**
132
137
 
@@ -144,80 +149,124 @@ A plan is **Not implementable** if:
144
149
 
145
150
  **Present the full state:**
146
151
 
152
+ Show implementable and implemented plans as numbered tree items.
153
+
154
+ > *Output the next fenced block as a code block:*
155
+
147
156
  ```
148
- Implementation Phase
157
+ Implementation Overview
158
+
159
+ {N} plans found. {M} implementations in progress.
160
+
161
+ 1. {topic:(titlecase)}
162
+ └─ Plan: {plan_status:[concluded]} ({format})
163
+ └─ Implementation: @if(has_implementation) {impl_status:[in-progress|completed]} @else (not started) @endif
164
+
165
+ 2. ...
166
+ ```
167
+
168
+ **Tree rules:**
149
169
 
150
170
  Implementable:
151
- 1. billing - continue [Phase 2, Task 3]
152
- 2. + core-features - start
171
+ - Implementation `status: in-progress` `Implementation: in-progress (Phase N, Task M)`
172
+ - Concluded plan, deps met, not started → `Implementation: (not started)`
153
173
 
154
174
  Implemented:
155
- 3. > user-auth
175
+ - Implementation `status: completed` → `Implementation: completed`
156
176
 
157
- Not implementable:
158
- · advanced-features [blocked: core-features task core-2-3 not completed]
159
- · reporting [planning]
160
- ```
177
+ **Ordering:**
178
+ 1. Implementable first: in-progress, then new (foundational before dependent)
179
+ 2. Implemented next: completed
180
+ 3. Not implementable last (separate block below)
161
181
 
162
- **Output in a fenced code block exactly as shown above.**
182
+ Numbering is sequential across Implementable and Implemented. Omit any section entirely if it has no entries.
163
183
 
164
- **Formatting rules:**
184
+ **If non-implementable plans exist**, show them in a separate code block:
165
185
 
166
- Implementable (numbered, selectable):
167
- - **`▶`** — implementation `status: in-progress`, show current position `[Phase N, Task M]`
168
- - **`+`** — concluded plan, deps met, no tracking file or tracking `status: not-started`
186
+ > *Output the next fenced block as a code block:*
169
187
 
170
- Implemented (numbered, selectable):
171
- - **`>`** implementation `status: completed`
188
+ ```
189
+ Plans not ready for implementation:
190
+ These plans are either still in progress or have unresolved
191
+ dependencies that must be addressed first.
172
192
 
173
- Not implementable (not numbered, not selectable):
174
- - **`·`** — blocked or plan not concluded
175
- - `[blocked: {topic} task {id} not completed]` — resolved dep, task not done
176
- - `[blocked: unresolved dep on {topic}]` — no task linked
177
- - `[planning]` — plan status is not `concluded`
193
+ advanced-features (blocked by core-features:core-2-3)
194
+ reporting (in-progress)
195
+ ```
178
196
 
179
- **Ordering:**
180
- 1. Implementable first: `▶` in-progress, then `+` new (foundational before dependent)
181
- 2. Implemented next: `>` completed
182
- 3. Not implementable last
197
+ > *Output the next fenced block as a code block:*
183
198
 
184
- Numbering is sequential across Implementable and Implemented. Omit any section entirely if it has no entries.
199
+ ```
200
+ If a blocked dependency has been resolved outside this workflow,
201
+ name the plan and the dependency to unblock it.
202
+ ```
203
+
204
+ **Key/Legend** — show only statuses that appear in the current display. No `---` separator before this section.
185
205
 
186
- **If Not implementable section is shown**, append after the presentation:
206
+ > *Output the next fenced block as a code block:*
187
207
 
188
208
  ```
189
- If a blocked dependency has been resolved outside this workflow, name the plan and the dependency to unblock it.
209
+ Key:
210
+
211
+ Implementation status:
212
+ in-progress — work is ongoing
213
+ completed — all tasks implemented
214
+
215
+ Blocking reason:
216
+ blocked — depends on another plan's task
217
+ in-progress — plan not yet concluded
190
218
  ```
191
219
 
192
220
  **Then prompt based on what's actionable:**
193
221
 
194
222
  **If single implementable plan and no implemented plans (auto-select):**
223
+
224
+ > *Output the next fenced block as a code block:*
225
+
195
226
  ```
196
- Auto-selecting: {topic} (only implementable plan)
227
+ Automatically proceeding with "{topic:(titlecase)}".
197
228
  ```
229
+
198
230
  → Proceed directly to **Step 4**.
199
231
 
200
232
  **If nothing selectable (no implementable or implemented):**
201
- Show Not implementable section only (with unblock hint above).
233
+
234
+ Show "not ready" block only (with unblock hint above).
235
+
236
+ > *Output the next fenced block as a code block:*
202
237
 
203
238
  ```
204
- No implementable plans.
239
+ Implementation Overview
205
240
 
206
- Before you can start implementation:
207
- - Complete blocking dependencies first, or
208
- - Finish plans still in progress with /start-planning
241
+ No implementable plans found.
209
242
 
210
- Then re-run /start-implementation.
243
+ Complete blocking dependencies first, or finish plans still
244
+ in progress with /start-planning. Then re-run /start-implementation.
211
245
  ```
212
246
 
213
- **STOP.** This workflow cannot continue do not proceed.
247
+ **STOP.** Do not proceedterminal condition.
214
248
 
215
249
  **Otherwise (multiple selectable plans, or implemented plans exist):**
250
+
251
+ The verb in the menu depends on the implementation state:
252
+ - Implementation in-progress → **Continue**
253
+ - Not yet started → **Start**
254
+ - Completed → **Re-review**
255
+
256
+ > *Output the next fenced block as markdown (not a code block):*
257
+
216
258
  ```
217
259
  · · · · · · · · · · · ·
218
- Select a plan (enter number):
260
+ 1. Continue "Billing" — in-progress (Phase 2, Task 3)
261
+ 2. Start "Core Features" — not yet started
262
+ 3. Re-review "User Auth" — completed
263
+
264
+ Select an option (enter number):
265
+ · · · · · · · · · · · ·
219
266
  ```
220
267
 
268
+ Recreate with actual topics and states from discovery.
269
+
221
270
  **STOP.** Wait for user response.
222
271
 
223
272
  #### If the user requests an unblock
@@ -242,6 +291,8 @@ After the plan is selected:
242
291
 
243
292
  #### If all deps satisfied (or no deps)
244
293
 
294
+ > *Output the next fenced block as a code block:*
295
+
245
296
  ```
246
297
  External dependencies satisfied.
247
298
  ```
@@ -252,21 +303,28 @@ External dependencies satisfied.
252
303
 
253
304
  This should not normally happen for plans classified as "Implementable" in Step 3. However, as an escape hatch:
254
305
 
306
+ > *Output the next fenced block as a code block:*
307
+
255
308
  ```
256
- Missing dependencies:
309
+ Missing Dependencies
310
+
311
+ Unresolved (not yet planned):
312
+ • {topic}: {description}
313
+ No plan exists. Create with /start-planning or mark as
314
+ satisfied externally.
257
315
 
258
- UNRESOLVED (not yet planned):
259
- - {topic}: {description}
260
- -> No plan exists for this topic. Create with /start-planning or mark as satisfied externally.
316
+ Incomplete (planned but not implemented):
317
+ {topic}: {plan}:{task-id} not yet completed
318
+ This task must be completed first.
319
+ ```
261
320
 
262
- INCOMPLETE (planned but not implemented):
263
- - {topic}: task {task_id} not yet completed
264
- -> This task must be completed first.
321
+ > *Output the next fenced block as markdown (not a code block):*
265
322
 
323
+ ```
266
324
  · · · · · · · · · · · ·
267
325
  - **`i`/`implement`** — Implement the blocking dependencies first
268
326
  - **`l`/`link`** — Run /link-dependencies to wire up recently completed plans
269
- - Mark as "satisfied externally" tell me which dependency was implemented outside this workflow
327
+ - **`s`/`satisfied`**Mark a dependency as satisfied externally
270
328
  · · · · · · · · · · · ·
271
329
  ```
272
330
 
@@ -292,12 +350,18 @@ If the user says a dependency has been implemented outside the workflow:
292
350
  Use the `environment` section from the discovery output:
293
351
 
294
352
  **If `setup_file_exists: true` and `requires_setup: false`:**
353
+
354
+ > *Output the next fenced block as a code block:*
355
+
295
356
  ```
296
357
  Environment: No special setup required.
297
358
  ```
298
359
  → Proceed to **Step 6**.
299
360
 
300
361
  **If `setup_file_exists: true` and `requires_setup: true`:**
362
+
363
+ > *Output the next fenced block as a code block:*
364
+
301
365
  ```
302
366
  Environment setup file found: docs/workflow/environment-setup.md
303
367
  ```
@@ -306,6 +370,9 @@ Environment setup file found: docs/workflow/environment-setup.md
306
370
  **If `setup_file_exists: false` or `requires_setup: unknown`:**
307
371
 
308
372
  Ask:
373
+
374
+ > *Output the next fenced block as a code block:*
375
+
309
376
  ```
310
377
  Are there any environment setup instructions I should follow before implementation?
311
378
  (Or "none" if no special setup is needed)