@leeovery/claude-technical-workflows 2.1.20 → 2.1.22

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 (33) hide show
  1. package/package.json +1 -1
  2. package/skills/link-dependencies/SKILL.md +2 -0
  3. package/skills/start-discussion/SKILL.md +2 -2
  4. package/skills/start-discussion/references/display-options.md +2 -6
  5. package/skills/start-discussion/references/gather-context-research.md +2 -0
  6. package/skills/start-implementation/SKILL.md +4 -2
  7. package/skills/start-planning/SKILL.md +4 -2
  8. package/skills/start-review/SKILL.md +4 -2
  9. package/skills/start-specification/SKILL.md +2 -2
  10. package/skills/start-specification/references/confirm-continue.md +3 -3
  11. package/skills/start-specification/references/confirm-create.md +2 -2
  12. package/skills/start-specification/references/confirm-refine.md +1 -1
  13. package/skills/start-specification/references/confirm-unify.md +2 -2
  14. package/skills/start-specification/references/display-analyze.md +2 -2
  15. package/skills/start-specification/references/display-groupings.md +9 -11
  16. package/skills/start-specification/references/display-single-grouped.md +5 -5
  17. package/skills/start-specification/references/display-single-has-spec.md +4 -4
  18. package/skills/start-specification/references/display-single-no-spec.md +4 -4
  19. package/skills/start-specification/references/display-specs-menu.md +7 -5
  20. package/skills/technical-implementation/SKILL.md +6 -0
  21. package/skills/technical-implementation/references/steps/analysis-loop.md +6 -0
  22. package/skills/technical-implementation/references/steps/task-loop.md +6 -0
  23. package/skills/technical-planning/SKILL.md +4 -0
  24. package/skills/technical-planning/references/steps/analyze-task-graph.md +6 -2
  25. package/skills/technical-planning/references/steps/author-tasks.md +3 -1
  26. package/skills/technical-planning/references/steps/define-phases.md +3 -1
  27. package/skills/technical-planning/references/steps/define-tasks.md +3 -1
  28. package/skills/technical-planning/references/steps/plan-construction.md +3 -1
  29. package/skills/technical-planning/references/steps/resolve-dependencies.md +2 -0
  30. package/skills/technical-planning/references/steps/review-integrity.md +3 -1
  31. package/skills/technical-planning/references/steps/review-traceability.md +3 -1
  32. package/skills/technical-research/SKILL.md +2 -0
  33. package/skills/technical-specification/references/specification-guide.md +12 -8
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leeovery/claude-technical-workflows",
3
- "version": "2.1.20",
3
+ "version": "2.1.22",
4
4
  "description": "Technical workflow skills & commands for Claude Code",
5
5
  "license": "MIT",
6
6
  "author": "Lee Overy <me@leeovery.com>",
@@ -168,6 +168,8 @@ Shall I commit these dependency updates?
168
168
  · · · · · · · · · · · ·
169
169
  ```
170
170
 
171
+ **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
172
+
171
173
  If yes, commit with message:
172
174
  ```
173
175
  Link cross-topic dependencies
@@ -7,6 +7,8 @@ allowed-tools: Bash(.claude/skills/start-discussion/scripts/discovery.sh), Bash(
7
7
 
8
8
  Invoke the **technical-discussion** skill for this conversation.
9
9
 
10
+ > **⚠️ ZERO OUTPUT RULE**: Do not narrate your processing. Produce no output until a step or reference file explicitly specifies display content. No "proceeding with...", no discovery summaries, no routing decisions, no transition text. Your first output must be content explicitly called for by the instructions.
11
+
10
12
  ## Workflow Context
11
13
 
12
14
  This is **Phase 2** of the six-phase workflow:
@@ -88,8 +90,6 @@ Parse the discovery output to understand:
88
90
 
89
91
  **IMPORTANT**: Use ONLY this script for discovery. Do NOT run additional bash commands (ls, head, cat, etc.) to gather state - the script provides everything needed.
90
92
 
91
- **Silent processing**: Do NOT output your assessment of the discovery state. Parse it internally and proceed to the next step without narrating field values, routing decisions, or prerequisites. The first user-visible output should be the display content itself.
92
-
93
93
  → Proceed to **Step 2**.
94
94
 
95
95
  ---
@@ -30,11 +30,12 @@ Key:
30
30
  ✓ = already has a corresponding discussion
31
31
  ```
32
32
 
33
+ **Output in a fenced code block exactly as shown above.**
34
+
33
35
  **Then present the options based on what exists:**
34
36
 
35
37
  #### If research and discussions exist
36
38
 
37
- ```
38
39
  · · · · · · · · · · · ·
39
40
  How would you like to proceed?
40
41
 
@@ -43,11 +44,9 @@ How would you like to proceed?
43
44
  - Continue discussion — name one above (e.g., "continue {topic}")
44
45
  - Fresh topic — describe what you want to discuss
45
46
  · · · · · · · · · · · ·
46
- ```
47
47
 
48
48
  #### If only research exists
49
49
 
50
- ```
51
50
  · · · · · · · · · · · ·
52
51
  How would you like to proceed?
53
52
 
@@ -55,17 +54,14 @@ How would you like to proceed?
55
54
  - From research — pick a topic number above (e.g., "1" or "research 1")
56
55
  - Fresh topic — describe what you want to discuss
57
56
  · · · · · · · · · · · ·
58
- ```
59
57
 
60
58
  #### If only discussions exist
61
59
 
62
- ```
63
60
  · · · · · · · · · · · ·
64
61
  How would you like to proceed?
65
62
 
66
63
  - Continue discussion — name one above (e.g., "continue {topic}")
67
64
  - Fresh topic — describe what you want to discuss
68
65
  · · · · · · · · · · · ·
69
- ```
70
66
 
71
67
  **STOP.** Wait for user response before proceeding.
@@ -22,4 +22,6 @@ research you'd like to include — drop them in now.
22
22
  · · · · · · · · · · · ·
23
23
  ```
24
24
 
25
+ **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
26
+
25
27
  **STOP.** Wait for user response before proceeding.
@@ -7,6 +7,8 @@ allowed-tools: Bash(.claude/skills/start-implementation/scripts/discovery.sh)
7
7
 
8
8
  Invoke the **technical-implementation** skill for this conversation.
9
9
 
10
+ > **⚠️ ZERO OUTPUT RULE**: Do not narrate your processing. Produce no output until a step or reference file explicitly specifies display content. No "proceeding with...", no discovery summaries, no routing decisions, no transition text. Your first output must be content explicitly called for by the instructions.
11
+
10
12
  ## Workflow Context
11
13
 
12
14
  This is **Phase 5** of the six-phase workflow:
@@ -94,8 +96,6 @@ Parse the discovery output to understand:
94
96
 
95
97
  **IMPORTANT**: Use ONLY this script for discovery. Do NOT run additional bash commands (ls, head, cat, etc.) to gather state - the script provides everything needed.
96
98
 
97
- **Silent processing**: Do NOT output your assessment of the discovery state. Parse it internally and proceed to the next step without narrating field values, routing decisions, or prerequisites. The first user-visible output should be the display content itself.
98
-
99
99
  → Proceed to **Step 2**.
100
100
 
101
101
  ---
@@ -159,6 +159,8 @@ Not implementable:
159
159
  · reporting [planning]
160
160
  ```
161
161
 
162
+ **Output in a fenced code block exactly as shown above.**
163
+
162
164
  **Formatting rules:**
163
165
 
164
166
  Implementable (numbered, selectable):
@@ -7,6 +7,8 @@ allowed-tools: Bash(.claude/skills/start-planning/scripts/discovery.sh)
7
7
 
8
8
  Invoke the **technical-planning** skill for this conversation.
9
9
 
10
+ > **⚠️ ZERO OUTPUT RULE**: Do not narrate your processing. Produce no output until a step or reference file explicitly specifies display content. No "proceeding with...", no discovery summaries, no routing decisions, no transition text. Your first output must be content explicitly called for by the instructions.
11
+
10
12
  ## Workflow Context
11
13
 
12
14
  This is **Phase 4** of the six-phase workflow:
@@ -83,8 +85,6 @@ Parse the discovery output to understand:
83
85
 
84
86
  **IMPORTANT**: Use ONLY this script for discovery. Do NOT run additional bash commands (ls, head, cat, etc.) to gather state - the script provides everything needed.
85
87
 
86
- **Silent processing**: Do NOT output your assessment of the discovery state. Parse it internally and proceed to the next step without narrating field values, routing decisions, or prerequisites. The first user-visible output should be the display content itself.
87
-
88
88
  → Proceed to **Step 2**.
89
89
 
90
90
  ---
@@ -139,6 +139,8 @@ Not plannable specifications:
139
139
  · {rate-limiting} [cross-cutting, in-progress]
140
140
  ```
141
141
 
142
+ **Output in a fenced code block exactly as shown above.**
143
+
142
144
  **Formatting rules:**
143
145
 
144
146
  Available (numbered, selectable):
@@ -7,6 +7,8 @@ allowed-tools: Bash(.claude/skills/start-review/scripts/discovery.sh)
7
7
 
8
8
  Invoke the **technical-review** skill for this conversation.
9
9
 
10
+ > **⚠️ ZERO OUTPUT RULE**: Do not narrate your processing. Produce no output until a step or reference file explicitly specifies display content. No "proceeding with...", no discovery summaries, no routing decisions, no transition text. Your first output must be content explicitly called for by the instructions.
11
+
10
12
  ## Workflow Context
11
13
 
12
14
  This is **Phase 6** of the six-phase workflow:
@@ -76,8 +78,6 @@ Parse the discovery output to understand:
76
78
 
77
79
  **IMPORTANT**: Use ONLY this script for discovery. Do NOT run additional bash commands (ls, head, cat, etc.) to gather state - the script provides everything needed.
78
80
 
79
- **Silent processing**: Do NOT output your assessment of the discovery state. Parse it internally and proceed to the next step without narrating field values, routing decisions, or prerequisites. The first user-visible output should be the display content itself.
80
-
81
81
  → Proceed to **Step 2**.
82
82
 
83
83
  ---
@@ -123,6 +123,8 @@ Not reviewable:
123
123
  · {topic-3} [no implementation]
124
124
  ```
125
125
 
126
+ **Output in a fenced code block exactly as shown above.**
127
+
126
128
  **Formatting rules:**
127
129
 
128
130
  Reviewable (numbered, selectable):
@@ -7,6 +7,8 @@ allowed-tools: Bash(.claude/skills/start-specification/scripts/discovery.sh), Ba
7
7
 
8
8
  Invoke the **technical-specification** skill for this conversation.
9
9
 
10
+ > **⚠️ ZERO OUTPUT RULE**: Do not narrate your processing. Produce no output until a step or reference file explicitly specifies display content. No "proceeding with...", no discovery summaries, no routing decisions, no transition text. Your first output must be content explicitly called for by the instructions.
11
+
10
12
  ## Workflow Context
11
13
 
12
14
  This is **Phase 3** of the six-phase workflow:
@@ -74,8 +76,6 @@ Parse the discovery output to understand:
74
76
 
75
77
  **IMPORTANT**: Use ONLY this script for discovery. Do NOT run additional bash commands (ls, head, cat, etc.) to gather state - the script provides everything needed.
76
78
 
77
- **Silent processing**: Do NOT output your assessment of the discovery state. Parse it internally and proceed to the next step without narrating field values, routing decisions, or prerequisites. The first user-visible output should be the display content itself.
78
-
79
79
  → Proceed to **Step 2**.
80
80
 
81
81
  ---
@@ -16,13 +16,13 @@ Sources to extract:
16
16
 
17
17
  Previously extracted (for reference):
18
18
  • {discussion-name}
19
+ ```
19
20
 
20
21
  · · · · · · · · · · · ·
21
22
  Proceed?
22
23
  - **`y`/`yes`**
23
24
  - **`n`/`no`**
24
25
  · · · · · · · · · · · ·
25
- ```
26
26
 
27
27
  #### If spec is in-progress with all sources extracted
28
28
 
@@ -34,13 +34,13 @@ Existing: docs/workflow/specification/{kebab-case-name}.md (in-progress)
34
34
  All sources extracted:
35
35
  • {discussion-name}
36
36
  • {discussion-name}
37
+ ```
37
38
 
38
39
  · · · · · · · · · · · ·
39
40
  Proceed?
40
41
  - **`y`/`yes`**
41
42
  - **`n`/`no`**
42
43
  · · · · · · · · · · · ·
43
- ```
44
44
 
45
45
  #### If spec is concluded with pending sources
46
46
 
@@ -54,13 +54,13 @@ New sources to extract:
54
54
 
55
55
  Previously extracted (for reference):
56
56
  • {discussion-name}
57
+ ```
57
58
 
58
59
  · · · · · · · · · · · ·
59
60
  Proceed?
60
61
  - **`y`/`yes`**
61
62
  - **`n`/`no`**
62
63
  · · · · · · · · · · · ·
63
- ```
64
64
 
65
65
  **STOP.** Wait for user response.
66
66
 
@@ -14,13 +14,13 @@ Sources:
14
14
  • {discussion-name}
15
15
 
16
16
  Output: docs/workflow/specification/{kebab-case-name}.md
17
+ ```
17
18
 
18
19
  · · · · · · · · · · · ·
19
20
  Proceed?
20
21
  - **`y`/`yes`**
21
22
  - **`n`/`no`**
22
23
  · · · · · · · · · · · ·
23
- ```
24
24
 
25
25
  #### If any source discussion has an individual spec
26
26
 
@@ -37,13 +37,13 @@ Output: docs/workflow/specification/{kebab-case-name}.md
37
37
 
38
38
  After completion:
39
39
  specification/{discussion-name}.md → marked as superseded
40
+ ```
40
41
 
41
42
  · · · · · · · · · · · ·
42
43
  Proceed?
43
44
  - **`y`/`yes`**
44
45
  - **`n`/`no`**
45
46
  · · · · · · · · · · · ·
46
- ```
47
47
 
48
48
  **STOP.** Wait for user response.
49
49
 
@@ -11,13 +11,13 @@ Existing: docs/workflow/specification/{kebab-case-name}.md (concluded)
11
11
 
12
12
  All sources extracted:
13
13
  • {discussion-name}
14
+ ```
14
15
 
15
16
  · · · · · · · · · · · ·
16
17
  Proceed?
17
18
  - **`y`/`yes`**
18
19
  - **`n`/`no`**
19
20
  · · · · · · · · · · · ·
20
- ```
21
21
 
22
22
  **STOP.** Wait for user response.
23
23
 
@@ -19,13 +19,13 @@ Existing specifications to incorporate:
19
19
  • {spec-name}.md → will be superseded
20
20
 
21
21
  Output: docs/workflow/specification/unified.md
22
+ ```
22
23
 
23
24
  · · · · · · · · · · · ·
24
25
  Proceed?
25
26
  - **`y`/`yes`**
26
27
  - **`n`/`no`**
27
28
  · · · · · · · · · · · ·
28
- ```
29
29
 
30
30
  #### If no existing specifications
31
31
 
@@ -38,13 +38,13 @@ Sources:
38
38
  ...
39
39
 
40
40
  Output: docs/workflow/specification/unified.md
41
+ ```
41
42
 
42
43
  · · · · · · · · · · · ·
43
44
  Proceed?
44
45
  - **`y`/`yes`**
45
46
  - **`n`/`no`**
46
47
  · · · · · · · · · · · ·
47
- ```
48
48
 
49
49
  **STOP.** Wait for user response.
50
50
 
@@ -40,13 +40,13 @@ No `---` separator before these messages.
40
40
  These discussions will be analyzed for natural groupings to determine
41
41
  how they should be organized into specifications. Results are cached
42
42
  and reused until discussions change.
43
+ ```
43
44
 
44
45
  · · · · · · · · · · · ·
45
46
  Proceed with analysis?
46
47
  - **`y`/`yes`**
47
48
  - **`n`/`no`**
48
49
  · · · · · · · · · · · ·
49
- ```
50
50
 
51
51
  #### If cache status is "stale"
52
52
 
@@ -56,13 +56,13 @@ have changed since it was created.
56
56
 
57
57
  These discussions will be re-analyzed for natural groupings. Results
58
58
  are cached and reused until discussions change.
59
+ ```
59
60
 
60
61
  · · · · · · · · · · · ·
61
62
  Proceed with analysis?
62
63
  - **`y`/`yes`**
63
64
  - **`n`/`no`**
64
65
  · · · · · · · · · · · ·
65
- ```
66
66
 
67
67
  **STOP.** Wait for user response.
68
68
 
@@ -56,20 +56,18 @@ Specification Overview
56
56
  Recommended breakdown for specifications with their source discussions.
57
57
 
58
58
  1. {Grouping Name}
59
- └─ Spec: {status} {(X of Y sources extracted) if applicable}
60
- └─ Discussions:
61
- ├─ {discussion-name} ({status})
62
- └─ {discussion-name} ({status})
59
+ └─ Spec: {status} {(X of Y sources extracted) if applicable}
60
+ └─ Discussions:
61
+ ├─ {discussion-name} ({status})
62
+ └─ {discussion-name} ({status})
63
63
 
64
64
  2. {Grouping Name}
65
- └─ Spec: none
66
- └─ Discussions:
67
- └─ {discussion-name} (ready)
65
+ └─ Spec: none
66
+ └─ Discussions:
67
+ └─ {discussion-name} (ready)
68
68
  ```
69
69
 
70
- Indentation: `└─` starts at column 4 (under the grouping name text, not the number). Discussion entries start at column 7.
71
-
72
- Use `├─` for all but the last discussion, `└─` for the last.
70
+ **Output in a fenced code block exactly as shown above.**
73
71
 
74
72
  ### If in-progress discussions exist
75
73
 
@@ -145,7 +143,7 @@ Select an option (enter number):
145
143
  · · · · · · · · · · · ·
146
144
  ```
147
145
 
148
- Menu descriptions are wrapped in backticks to visually distinguish them from the choice labels.
146
+ **Output in a fenced code block exactly as shown above.** Every meta option (Unify, Re-analyze) MUST include its description lines.
149
147
 
150
148
  **STOP.** Wait for user response.
151
149
 
@@ -21,13 +21,13 @@ Specification Overview
21
21
  Single concluded discussion found with existing multi-source specification.
22
22
 
23
23
  1. {Spec Title Case Name}
24
- └─ Spec: {spec_status} ({X} of {Y} sources extracted)
25
- └─ Discussions:
26
- ├─ {source-name} (extracted)
27
- └─ {source-name} (extracted, reopened)
24
+ └─ Spec: {spec_status} ({X} of {Y} sources extracted)
25
+ └─ Discussions:
26
+ ├─ {source-name} (extracted)
27
+ └─ {source-name} (extracted, reopened)
28
28
  ```
29
29
 
30
- Indentation: `└─` starts at column 4 (under the name text, not the number). Discussion entries start at column 7.
30
+ **Output in a fenced code block exactly as shown above.**
31
31
 
32
32
  ### If in-progress discussions exist
33
33
 
@@ -16,12 +16,12 @@ Specification Overview
16
16
  Single concluded discussion found with existing specification.
17
17
 
18
18
  1. {Title Case Name}
19
- └─ Spec: {spec_status} ({X} of {Y} sources extracted)
20
- └─ Discussions:
21
- └─ {discussion-name} (extracted)
19
+ └─ Spec: {spec_status} ({X} of {Y} sources extracted)
20
+ └─ Discussions:
21
+ └─ {discussion-name} (extracted)
22
22
  ```
23
23
 
24
- Indentation: `└─` starts at column 4 (under the name text, not the number). Discussion entries start at column 7.
24
+ **Output in a fenced code block exactly as shown above.**
25
25
 
26
26
  ### If in-progress discussions exist
27
27
 
@@ -14,12 +14,12 @@ Specification Overview
14
14
  Single concluded discussion found.
15
15
 
16
16
  1. {Title Case Name}
17
- └─ Spec: none
18
- └─ Discussions:
19
- └─ {discussion-name} (ready)
17
+ └─ Spec: none
18
+ └─ Discussions:
19
+ └─ {discussion-name} (ready)
20
20
  ```
21
21
 
22
- Indentation: `└─` starts at column 4 (under the name text, not the number). Discussion entries start at column 7.
22
+ **Output in a fenced code block exactly as shown above.**
23
23
 
24
24
  ### If in-progress discussions exist
25
25
 
@@ -20,13 +20,13 @@ For each non-superseded specification from discovery output, display as nested t
20
20
 
21
21
  ```
22
22
  1. {Spec Title Case Name}
23
- └─ Spec: {status} ({X} of {Y} sources extracted)
24
- └─ Discussions:
25
- ├─ {source-name} (extracted)
26
- └─ {source-name} (extracted)
23
+ └─ Spec: {status} ({X} of {Y} sources extracted)
24
+ └─ Discussions:
25
+ ├─ {source-name} (extracted)
26
+ └─ {source-name} (extracted)
27
27
  ```
28
28
 
29
- Indentation: `└─` starts at column 4 (under the name text, not the number). Discussion entries start at column 7.
29
+ **Output in a fenced code block exactly as shown above.**
30
30
 
31
31
  Determine discussion status from the spec's `sources` array:
32
32
  - `incorporated` + `discussion_status: concluded` or `not-found` → `extracted`
@@ -114,6 +114,8 @@ Select an option (enter number):
114
114
  · · · · · · · · · · · ·
115
115
  ```
116
116
 
117
+ **Output in a fenced code block exactly as shown above.**
118
+
117
119
  Menu descriptions are wrapped in backticks to visually distinguish them from the choice labels.
118
120
 
119
121
  **STOP.** Wait for user response.
@@ -175,6 +175,8 @@ Present the existing configuration for confirmation:
175
175
  > - **`c`/`change`** — Re-discover and choose skills
176
176
  > · · · · · · · · · · · ·
177
177
 
178
+ **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
179
+
178
180
  **STOP.** Wait for user choice.
179
181
 
180
182
  - **`yes`**: → Proceed to **Step 5**.
@@ -203,6 +205,8 @@ Scan `.claude/skills/` for project-specific skill directories. Present findings:
203
205
  > - **Or list the ones you want** — e.g. "golang-pro, react-patterns"
204
206
  > · · · · · · · · · · · ·
205
207
 
208
+ **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
209
+
206
210
  **STOP.** Wait for user to confirm which skills are relevant.
207
211
 
208
212
  Store the selected skill paths in the tracking file.
@@ -231,6 +235,8 @@ Otherwise, present discovery findings to the user:
231
235
  > - **`s`/`skip`** — Skip linter setup (no linting during TDD)
232
236
  > · · · · · · · · · · · ·
233
237
 
238
+ **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
239
+
234
240
  **STOP.** Wait for user choice.
235
241
 
236
242
  - **`yes`**: Store the approved linter commands in the tracking file.
@@ -37,6 +37,8 @@ If `analysis_cycle > 3`:
37
37
  > - **`s`/`skip`** — Skip analysis, proceed to completion
38
38
  > · · · · · · · · · · · ·
39
39
 
40
+ **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
41
+
40
42
  **STOP.** Wait for user choice. You MUST NOT choose on the user's behalf.
41
43
 
42
44
  - **`proceed`**: → Continue to **B. Git Checkpoint**.
@@ -65,6 +67,8 @@ If there are unstaged changes or untracked files, categorize them:
65
67
  > - **Comment** — Specify which to include
66
68
  > · · · · · · · · · · · ·
67
69
 
70
+ **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
71
+
68
72
  **STOP.** Wait for user choice.
69
73
 
70
74
  Commit included files:
@@ -147,6 +151,8 @@ Then present each task with `status: pending` individually:
147
151
  > - **Comment** — Revise based on feedback
148
152
  > · · · · · · · · · · · ·
149
153
 
154
+ **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
155
+
150
156
  **STOP.** Wait for user input.
151
157
 
152
158
  #### If `approve`
@@ -50,6 +50,8 @@ Present the executor's ISSUES to the user:
50
50
  > - **`t`/`stop`** — Stop implementation entirely
51
51
  > · · · · · · · · · · · ·
52
52
 
53
+ **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
54
+
53
55
  **STOP.** Wait for user choice.
54
56
 
55
57
  #### If `retry`
@@ -108,6 +110,8 @@ Present the reviewer's findings and fix analysis to the user:
108
110
  > - **Comment** — Any commentary, adjustments, alternative approaches, or questions before passing to executor
109
111
  > · · · · · · · · · · · ·
110
112
 
113
+ **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
114
+
111
115
  **STOP.** Wait for user choice.
112
116
 
113
117
  - **`y`/`yes`**: → Return to the top of **B. Execute Task** and re-invoke the executor with the full task content and the reviewer's notes (including fix analysis).
@@ -137,6 +141,8 @@ Present a summary and wait for user input:
137
141
  > - **Comment** — Feedback the reviewer missed (triggers a fix round)
138
142
  > · · · · · · · · · · · ·
139
143
 
144
+ **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
145
+
140
146
  **STOP.** Wait for user input.
141
147
 
142
148
  - **`y`/`yes`**: → Proceed to **E. Update Progress and Commit**.
@@ -89,6 +89,8 @@ Load **[spec-change-detection.md](references/spec-change-detection.md)** to chec
89
89
  > - **`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
90
  > · · · · · · · · · · · ·
91
91
 
92
+ **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
93
+
92
94
  **STOP.** Wait for user response.
93
95
 
94
96
  #### If `continue`
@@ -131,6 +133,8 @@ Present the recommendation:
131
133
  > - **`n`/`no`** — See all available formats
132
134
  > · · · · · · · · · · · ·
133
135
 
136
+ **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
137
+
134
138
  **STOP.** Wait for user choice. If declined, fall through to the full list below.
135
139
 
136
140
  **If no recommendation, or user declined:**
@@ -32,7 +32,7 @@ The agent clears any existing dependencies/priorities, analyzes all tasks, and
32
32
 
33
33
  #### If the agent reports no changes needed (`STATUS: no-changes`)
34
34
 
35
- The natural task order is already correct. Present this to the user:
35
+ The natural task order is already correct. Present as rendered markdown (not in a code block):
36
36
 
37
37
  > "I've analyzed all {M} tasks and the natural execution order is already correct — no explicit dependencies or priorities are needed.
38
38
  >
@@ -44,6 +44,8 @@ The natural task order is already correct. Present this to the user:
44
44
  > - **Or tell me what to change.**
45
45
  > · · · · · · · · · · · ·
46
46
 
47
+ **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
48
+
47
49
  **STOP.** Wait for the user's response.
48
50
 
49
51
  #### If the agent reports a cycle (`STATUS: blocked`)
@@ -60,7 +62,7 @@ No changes were applied. Present the cycle to the user:
60
62
 
61
63
  #### If the agent applied changes successfully (`STATUS: complete`)
62
64
 
63
- Dependencies and priorities have already been written to the task files. Present the summary:
65
+ Dependencies and priorities have already been written to the task files. Present as rendered markdown (not in a code block):
64
66
 
65
67
  > "I've analyzed and applied dependencies and priorities across all {M} tasks:
66
68
  >
@@ -78,6 +80,8 @@ Dependencies and priorities have already been written to the task files. Present
78
80
  > - **Or tell me what to change.**
79
81
  > · · · · · · · · · · · ·
80
82
 
83
+ **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
84
+
81
85
  **STOP.** Wait for the user's response.
82
86
 
83
87
  #### If the user provides feedback
@@ -25,7 +25,7 @@ Invoke `planning-task-author` with these file paths:
25
25
 
26
26
  ### Present the Output
27
27
 
28
- The agent returns complete task detail following the task template from task-design.md. Present it to the user **exactly as it will be written** — what the user sees is what gets logged.
28
+ The agent returns complete task detail following the task template from task-design.md. Present it to the user as rendered markdown (not in a code block) **exactly as it will be written** — what the user sees is what gets logged.
29
29
 
30
30
  After presenting, ask:
31
31
 
@@ -38,6 +38,8 @@ After presenting, ask:
38
38
  > - **Or navigate** — a different phase or task, or the leading edge.
39
39
  > · · · · · · · · · · · ·
40
40
 
41
+ **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
42
+
41
43
  **STOP.** Wait for the user's response.
42
44
 
43
45
  #### If the user provides feedback
@@ -53,7 +53,7 @@ Continue to **Review and Approve** below.
53
53
 
54
54
  ## Review and Approve
55
55
 
56
- Present the phase structure to the user.
56
+ Present the phase structure to the user as rendered markdown (not in a code block). Then, separately, present the choices:
57
57
 
58
58
  **STOP.** Ask:
59
59
 
@@ -66,6 +66,8 @@ Present the phase structure to the user.
66
66
  > - **Or navigate** — a different phase or task, or the leading edge.
67
67
  > · · · · · · · · · · · ·
68
68
 
69
+ **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
70
+
69
71
  #### If the user provides feedback
70
72
 
71
73
  Re-invoke `planning-phase-designer` with all original inputs PLUS:
@@ -38,7 +38,7 @@ planning:
38
38
 
39
39
  Commit: `planning({topic}): draft Phase {N} task list`
40
40
 
41
- Present the task overview to the user.
41
+ Present the task overview to the user as rendered markdown (not in a code block). Then, separately, present the choices:
42
42
 
43
43
  **STOP.** Ask:
44
44
 
@@ -49,6 +49,8 @@ Present the task overview to the user.
49
49
  > - **Or navigate** — a different phase or task, or the leading edge.
50
50
  > · · · · · · · · · · · ·
51
51
 
52
+ **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
53
+
52
54
  #### If the user provides feedback
53
55
 
54
56
  Re-invoke `planning-task-designer` with all original inputs PLUS:
@@ -67,7 +67,7 @@ After Step A returns with an approved task table, continue to **Author Tasks for
67
67
 
68
68
  #### If the phase has a task table
69
69
 
70
- Present the task list to the user for review.
70
+ 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
  >
@@ -78,6 +78,8 @@ Present the task list to the user for review.
78
78
  > - **Or navigate** — a different phase or task, or the leading edge.
79
79
  > · · · · · · · · · · · ·
80
80
 
81
+ **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
82
+
81
83
  **STOP.** Wait for the user's response.
82
84
 
83
85
  **If the user wants changes:** → Go to **Step A** with this phase for revision.
@@ -49,6 +49,8 @@ Skip the resolution and reverse check — there is nothing to resolve against. D
49
49
  > - **Or tell me what to change.**
50
50
  > · · · · · · · · · · · ·
51
51
 
52
+ **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
53
+
52
54
  #### If the user provides feedback
53
55
 
54
56
  Incorporate feedback, re-present the updated dependency state, and ask again. Repeat until approved.
@@ -117,7 +117,7 @@ Show the finding with full detail:
117
117
 
118
118
  ### Propose the Fix
119
119
 
120
- Present the proposed fix **in the format it will be written to the plan**. What the user sees is what gets applied — no changes between approval and writing.
120
+ Present the proposed fix **in the format it will be written to the plan**, rendered as markdown (not in a code block). What the user sees is what gets applied — no changes between approval and writing.
121
121
 
122
122
  State the action type explicitly so the user knows what's changing structurally:
123
123
 
@@ -178,6 +178,8 @@ After presenting the finding and proposed fix, ask:
178
178
  > - **Or tell me what to change.**
179
179
  > · · · · · · · · · · · ·
180
180
 
181
+ **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
182
+
181
183
  **STOP.** Wait for the user's response.
182
184
 
183
185
  ### If the user provides feedback
@@ -95,7 +95,7 @@ Show the finding with full detail:
95
95
 
96
96
  ### Propose the Fix
97
97
 
98
- Present the proposed fix **in the format it will be written to the plan**. What the user sees is what gets applied — no changes between approval and writing.
98
+ Present the proposed fix **in the format it will be written to the plan**, rendered as markdown (not in a code block). What the user sees is what gets applied — no changes between approval and writing.
99
99
 
100
100
  State the action type explicitly so the user knows what's changing structurally:
101
101
 
@@ -156,6 +156,8 @@ After presenting the finding and proposed fix, ask:
156
156
  > - **Or tell me what to change.**
157
157
  > · · · · · · · · · · · ·
158
158
 
159
+ **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
160
+
159
161
  **STOP.** Wait for the user's response.
160
162
 
161
163
  ### If the user provides feedback
@@ -93,6 +93,8 @@ When you notice convergence, **flag it and give the user options**:
93
93
  > - Comment — your call
94
94
  > · · · · · · · · · · · ·
95
95
 
96
+ **Do not wrap the above in a code block** — output as raw markdown so bold styling renders.
97
+
96
98
  **Never decide for the user.** Even if the answer seems obvious, flag it and ask.
97
99
 
98
100
  ### If the user parks it
@@ -70,13 +70,13 @@ For each topic or subtopic, perform exhaustive extraction:
70
70
  **Why this matters:** The specification is the single source of truth for planning. Planning will not reference prior source material - only this document. Missing a detail here means that detail doesn't get implemented.
71
71
 
72
72
  ### 2. Synthesize and Present
73
- Present your understanding to the user **in the format it would appear in the specification**:
73
+ Present your understanding to the user **in the format it would appear in the specification**. Output the content as rendered markdown (not in a code block) — the user needs to read it naturally, not inspect raw formatting:
74
74
 
75
75
  > "Here's what I understand about [topic] based on the reference material. This is exactly what I'll write into the specification:
76
76
  >
77
- > [content as it would appear]
77
+ > [content as rendered markdown]
78
78
 
79
- Then present two explicit choices:
79
+ Then, **separately from the content above** (clear visual break), present the choices as raw markdown:
80
80
 
81
81
  > · · · · · · · · · · · ·
82
82
  > **To proceed:**
@@ -84,7 +84,7 @@ Then present two explicit choices:
84
84
  > - **Or tell me what to change.**
85
85
  > · · · · · · · · · · · ·
86
86
 
87
- **Do not paraphrase these choices.** Present them exactly as written so users always know what to expect.
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).
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
 
@@ -512,11 +512,11 @@ For each item, follow the **same workflow as the main specification process**:
512
512
 
513
513
  1. **Present** the item in detail - what you found, where it came from (source reference), and what you propose to add
514
514
  2. **Discuss** if needed - clarify ambiguities, answer questions, refine the content
515
- 3. **Present for approval** - show exactly what will be written to the specification:
515
+ 3. **Present for approval** - show as rendered markdown (not a code block) exactly what will be written to the specification. Then, separately, show the choices:
516
516
 
517
517
  > "Here's what I'll add to the specification:
518
518
  >
519
- > [content exactly as it would appear]
519
+ > [content as rendered markdown]
520
520
  >
521
521
  > · · · · · · · · · · · ·
522
522
  > **To proceed:**
@@ -524,6 +524,8 @@ For each item, follow the **same workflow as the main specification process**:
524
524
  > - **Or tell me what to change.**
525
525
  > · · · · · · · · · · · ·
526
526
 
527
+ **Do not wrap content or choices in a code block.** Content and choices must be visually distinct.
528
+
527
529
  4. **Wait for explicit approval** - same rules as always: `y`/`yes` or equivalent before writing
528
530
  5. **Log verbatim** when approved
529
531
  6. **Update tracking file** - Mark the item's resolution (Approved/Adjusted/Skipped) and add any notes
@@ -644,11 +646,11 @@ For each item:
644
646
 
645
647
  1. **Present** the gap in detail - what's missing or unclear, what questions an implementer would have
646
648
  2. **Discuss** - work with the user to determine the correct specification content
647
- 3. **Present for approval** - show exactly what will be written:
649
+ 3. **Present for approval** - show as rendered markdown (not a code block) exactly what will be written. Then, separately, show the choices:
648
650
 
649
651
  > "Here's what I'll add to the specification:
650
652
  >
651
- > [content exactly as it would appear]
653
+ > [content as rendered markdown]
652
654
  >
653
655
  > · · · · · · · · · · · ·
654
656
  > **To proceed:**
@@ -656,6 +658,8 @@ For each item:
656
658
  > - **Or tell me what to change.**
657
659
  > · · · · · · · · · · · ·
658
660
 
661
+ **Do not wrap content or choices in a code block.** Content and choices must be visually distinct.
662
+
659
663
  4. **Wait for explicit approval**
660
664
  5. **Log verbatim** when approved
661
665
  6. **Update tracking file** - Mark resolution and add notes