@leeovery/claude-technical-workflows 2.1.19 → 2.1.21

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 (29) hide show
  1. package/agents/implementation-analysis-architecture.md +1 -0
  2. package/agents/review-product-assessor.md +112 -0
  3. package/agents/review-task-verifier.md +2 -1
  4. package/package.json +1 -1
  5. package/skills/start-discussion/SKILL.md +20 -246
  6. package/skills/start-discussion/references/display-options.md +71 -0
  7. package/skills/start-discussion/references/gather-context-continue.md +17 -0
  8. package/skills/start-discussion/references/gather-context-fresh.md +41 -0
  9. package/skills/start-discussion/references/gather-context-research.md +25 -0
  10. package/skills/start-discussion/references/gather-context.md +31 -0
  11. package/skills/start-discussion/references/handle-selection.md +54 -0
  12. package/skills/start-discussion/references/invoke-skill.md +30 -0
  13. package/skills/start-discussion/references/research-analysis.md +72 -0
  14. package/skills/start-implementation/SKILL.md +1 -0
  15. package/skills/start-planning/SKILL.md +1 -0
  16. package/skills/start-review/SKILL.md +87 -21
  17. package/skills/start-review/scripts/discovery.sh +19 -0
  18. package/skills/start-specification/SKILL.md +1 -0
  19. package/skills/start-specification/references/display-analyze.md +2 -3
  20. package/skills/start-specification/references/display-groupings.md +11 -10
  21. package/skills/start-specification/references/display-single-grouped.md +3 -4
  22. package/skills/start-specification/references/display-single-has-spec.md +4 -3
  23. package/skills/start-specification/references/display-single-no-spec.md +4 -3
  24. package/skills/start-specification/references/display-specs-menu.md +10 -8
  25. package/skills/technical-review/SKILL.md +72 -70
  26. package/skills/technical-review/references/invoke-product-assessor.md +57 -0
  27. package/skills/technical-review/references/invoke-task-verifiers.md +104 -0
  28. package/skills/technical-review/references/review-checklist.md +1 -55
  29. package/skills/technical-review/references/template.md +34 -12
@@ -0,0 +1,54 @@
1
+ # Handle Selection
2
+
3
+ *Reference for **[start-discussion](../SKILL.md)***
4
+
5
+ ---
6
+
7
+ Route based on the user's choice from the options display.
8
+
9
+ #### If user chose "From research"
10
+
11
+ User chose to start from research (e.g., "research 1", "1", "from research", or a topic name).
12
+
13
+ **If user specified a topic inline** (e.g., "research 2", "2", or topic name):
14
+ - Identify the selected topic from the numbered list
15
+ - Control returns to the backbone
16
+
17
+ **If user just said "from research" without specifying:**
18
+ ```
19
+ Which research topic would you like to discuss? (Enter a number or topic name)
20
+ ```
21
+
22
+ **STOP.** Wait for response.
23
+
24
+ #### If user chose "Continue discussion"
25
+
26
+ User chose to continue a discussion (e.g., "continue auth-flow" or "continue discussion").
27
+
28
+ **If user specified a discussion inline** (e.g., "continue auth-flow"):
29
+ - Identify the selected discussion from the list
30
+ - Control returns to the backbone
31
+
32
+ **If user just said "continue discussion" without specifying:**
33
+ ```
34
+ Which discussion would you like to continue?
35
+ ```
36
+
37
+ **STOP.** Wait for response.
38
+
39
+ #### If user chose "Fresh topic"
40
+
41
+ User wants to start a fresh discussion. Control returns to the backbone.
42
+
43
+ #### If user chose "refresh"
44
+
45
+ ```
46
+ Refreshing analysis...
47
+ ```
48
+
49
+ Delete the cache file:
50
+ ```bash
51
+ rm docs/workflow/.cache/research-analysis.md
52
+ ```
53
+
54
+ → Return to **Step 3** to re-analyze.
@@ -0,0 +1,30 @@
1
+ # Invoke the Skill
2
+
3
+ *Reference for **[start-discussion](../SKILL.md)***
4
+
5
+ ---
6
+
7
+ This skill's purpose is now fulfilled.
8
+
9
+ Invoke the [technical-discussion](../../technical-discussion/SKILL.md) skill for your next instructions. Do not act on the gathered information until the skill is loaded - it contains the instructions for how to proceed.
10
+
11
+ **Example handoff (from research):**
12
+ ```
13
+ Discussion session for: {topic}
14
+ Output: docs/workflow/discussion/{topic}.md
15
+
16
+ Research reference:
17
+ Source: docs/workflow/research/{filename}.md (lines {start}-{end})
18
+ Summary: {the 1-2 sentence summary from the research analysis}
19
+
20
+ Invoke the technical-discussion skill.
21
+ ```
22
+
23
+ **Example handoff (continuing or fresh):**
24
+ ```
25
+ Discussion session for: {topic}
26
+ Source: {existing discussion | fresh}
27
+ Output: docs/workflow/discussion/{topic}.md
28
+
29
+ Invoke the technical-discussion skill.
30
+ ```
@@ -0,0 +1,72 @@
1
+ # Research Analysis
2
+
3
+ *Reference for **[start-discussion](../SKILL.md)***
4
+
5
+ ---
6
+
7
+ This step only runs when research files exist.
8
+
9
+ Use `cache.status` from discovery to determine the approach:
10
+
11
+ #### If cache.status is "valid"
12
+
13
+ ```
14
+ Using cached research analysis (unchanged since {cache.generated})
15
+ ```
16
+
17
+ Load the topics from `docs/workflow/.cache/research-analysis.md` and proceed.
18
+
19
+ #### If cache.status is "stale" or "none"
20
+
21
+ ```
22
+ Analyzing research documents...
23
+ ```
24
+
25
+ Read each research file and extract key themes and potential discussion topics. For each theme:
26
+ - Note the source file and relevant line numbers
27
+ - Summarize what the theme is about in 1-2 sentences
28
+ - Identify key questions or decisions that need discussion
29
+
30
+ **Be thorough**: This analysis will be cached, so identify ALL potential topics:
31
+ - Major architectural decisions
32
+ - Technical trade-offs mentioned
33
+ - Open questions or concerns raised
34
+ - Implementation approaches discussed
35
+ - Integration points with external systems
36
+ - Security or performance considerations
37
+ - Edge cases or error handling mentioned
38
+
39
+ **Save to cache:**
40
+
41
+ Ensure the cache directory exists:
42
+ ```bash
43
+ mkdir -p docs/workflow/.cache
44
+ ```
45
+
46
+ Create/update `docs/workflow/.cache/research-analysis.md`:
47
+
48
+ ```markdown
49
+ ---
50
+ checksum: {research.checksum from discovery}
51
+ generated: YYYY-MM-DDTHH:MM:SS # Use current ISO timestamp
52
+ research_files:
53
+ - {filename1}.md
54
+ - {filename2}.md
55
+ ---
56
+
57
+ # Research Analysis Cache
58
+
59
+ ## Topics
60
+
61
+ ### {Theme name}
62
+ - **Source**: {filename}.md (lines {start}-{end})
63
+ - **Summary**: {1-2 sentence summary}
64
+ - **Key questions**: {what needs deciding}
65
+
66
+ ### {Another theme}
67
+ - **Source**: {filename}.md (lines {start}-{end})
68
+ - **Summary**: {1-2 sentence summary}
69
+ - **Key questions**: {what needs deciding}
70
+ ```
71
+
72
+ **Cross-reference**: For each topic, note if a discussion already exists (from `discussions.files` in discovery).
@@ -30,6 +30,7 @@ Follow these steps EXACTLY as written. Do not skip steps or combine them. Presen
30
30
 
31
31
  **CRITICAL**: This guidance is mandatory.
32
32
 
33
+ - **Silent processing**: Do NOT narrate your internal reasoning. Never output discovery field values, routing decisions, cache status, or prerequisite checks. The first user-visible output must be the display content itself.
33
34
  - After each user interaction, STOP and wait for their response before proceeding
34
35
  - Never assume or anticipate user choices
35
36
  - Even if the user's initial prompt seems to answer a question, still confirm with them at the appropriate step
@@ -30,6 +30,7 @@ Follow these steps EXACTLY as written. Do not skip steps or combine them. Presen
30
30
 
31
31
  **CRITICAL**: This guidance is mandatory.
32
32
 
33
+ - **Silent processing**: Do NOT narrate your internal reasoning. Never output discovery field values, routing decisions, cache status, or prerequisite checks. The first user-visible output must be the display content itself.
33
34
  - After each user interaction, STOP and wait for their response before proceeding
34
35
  - Never assume or anticipate user choices
35
36
  - Even if the user's initial prompt seems to answer a question, still confirm with them at the appropriate step
@@ -30,6 +30,7 @@ Follow these steps EXACTLY as written. Do not skip steps or combine them. Presen
30
30
 
31
31
  **CRITICAL**: This guidance is mandatory.
32
32
 
33
+ - **Silent processing**: Do NOT narrate your internal reasoning. Never output discovery field values, routing decisions, cache status, or prerequisite checks. The first user-visible output must be the display content itself.
33
34
  - After each user interaction, STOP and wait for their response before proceeding
34
35
  - Never assume or anticipate user choices
35
36
  - Even if the user's initial prompt seems to answer a question, still confirm with them at the appropriate step
@@ -71,6 +72,8 @@ Parse the discovery output to understand:
71
72
 
72
73
  **From `state` section:**
73
74
  - `scenario` - one of: `"no_plans"`, `"single_plan"`, `"multiple_plans"`
75
+ - `implemented_count` - plans with implementation_status != "none"
76
+ - `completed_count` - plans with implementation_status == "completed"
74
77
 
75
78
  **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
79
 
@@ -102,29 +105,67 @@ Plans exist.
102
105
 
103
106
  ---
104
107
 
105
- ## Step 3: Present Plans and Select
108
+ ## Step 3: Present Plans and Select Scope
106
109
 
107
- Present all discovered plans to help the user make an informed choice.
110
+ Present all discovered plans with implementation status to help the user understand what's reviewable.
108
111
 
109
112
  **Present the full state:**
110
113
 
111
114
  ```
112
- Available Plans:
115
+ Review Phase
113
116
 
114
- 1. {topic-1} ({status}) - format: {format}, spec: {exists|missing}
115
- 2. {topic-2} ({status}) - format: {format}, spec: {exists|missing}
117
+ Reviewable:
118
+ 1. {topic-1} (completed) - format: {format}, spec: {exists|missing}
119
+ 2. ▶ {topic-2} (in-progress) - format: {format}, spec: {exists|missing}
116
120
 
117
- · · · · · · · · · · · ·
118
- Which plan would you like to review the implementation for? (Enter a number or name)
121
+ Not reviewable:
122
+ · {topic-3} [no implementation]
123
+ ```
124
+
125
+ **Formatting rules:**
126
+
127
+ Reviewable (numbered, selectable):
128
+ - **`✓`** — implementation_status: completed
129
+ - **`▶`** — implementation_status: in-progress
130
+
131
+ Not reviewable (not numbered, not selectable):
132
+ - **`·`** — implementation_status: none
133
+
134
+ Omit either section entirely if it has no entries.
135
+
136
+ **Then route based on what's reviewable:**
137
+
138
+ #### If no reviewable plans
139
+
140
+ ```
141
+ No implemented plans found.
142
+
143
+ The review phase requires at least one plan with an implementation.
144
+ Please run /start-implementation first.
119
145
  ```
120
146
 
121
- **If single plan exists (auto-select):**
147
+ **STOP.** Wait for user to acknowledge before ending.
148
+
149
+ #### If single reviewable plan
150
+
151
+ ```
152
+ Auto-selecting: {topic} (only reviewable plan)
153
+ Scope: single
122
154
  ```
123
- Auto-selecting: {topic} (only available plan)
155
+
156
+ → Proceed directly to **Step 5**.
157
+
158
+ #### If multiple reviewable plans
159
+
124
160
  ```
125
- Proceed directly to **Step 4**.
161
+ · · · · · · · · · · · ·
162
+ What scope would you like to review?
126
163
 
127
- **If multiple plans exist:**
164
+ - **`s`/`single`** Review one plan's implementation
165
+ - **`m`/`multi`** — Review selected plans together (cross-cutting)
166
+ - **`a`/`all`** — Review all implemented plans (full product)
167
+ · · · · · · · · · · · ·
168
+ ```
128
169
 
129
170
  **STOP.** Wait for user response.
130
171
 
@@ -132,23 +173,37 @@ Auto-selecting: {topic} (only available plan)
132
173
 
133
174
  ---
134
175
 
135
- ## Step 4: Identify Implementation Scope
176
+ ## Step 4: Plan Selection
177
+
178
+ This step only applies for `single` or `multi` scope chosen in Step 3.
179
+
180
+ #### If scope is "all"
181
+
182
+ All reviewable plans are included. No selection needed.
183
+
184
+ → Proceed directly to **Step 5**.
136
185
 
137
- Ask the user what code to review:
186
+ #### If scope is "single"
138
187
 
139
188
  ```
140
189
  · · · · · · · · · · · ·
141
- What code should I review?
142
-
143
- - **`a`/`all`** — All changes since the plan was created
144
- - **`g`/`git`** — Identify from git status
145
- - Specific directories or files — tell me which
190
+ Which plan would you like to review? (Enter a number from Step 3)
146
191
  · · · · · · · · · · · ·
147
192
  ```
148
193
 
149
194
  **STOP.** Wait for user response.
150
195
 
151
- If they choose specific directories/files, ask them to specify.
196
+ Proceed to **Step 5**.
197
+
198
+ #### If scope is "multi"
199
+
200
+ ```
201
+ · · · · · · · · · · · ·
202
+ Which plans to include? (Enter numbers separated by commas, e.g. 1,3)
203
+ · · · · · · · · · · · ·
204
+ ```
205
+
206
+ **STOP.** Wait for user response.
152
207
 
153
208
  → Proceed to **Step 5**.
154
209
 
@@ -160,14 +215,25 @@ After completing the steps above, this skill's purpose is fulfilled.
160
215
 
161
216
  Invoke the [technical-review](../technical-review/SKILL.md) skill for your next instructions. Do not act on the gathered information until the skill is loaded - it contains the instructions for how to proceed.
162
217
 
163
- **Example handoff:**
218
+ **Example handoff (single):**
164
219
  ```
165
220
  Review session for: {topic}
221
+ Review scope: single
166
222
  Plan: docs/workflow/planning/{topic}.md
167
223
  Format: {format}
168
224
  Plan ID: {plan_id} (if applicable)
169
225
  Specification: {specification} (exists: {true|false})
170
- Scope: {all changes | specific paths | from git status}
226
+
227
+ Invoke the technical-review skill.
228
+ ```
229
+
230
+ **Example handoff (multi/all):**
231
+ ```
232
+ Review session for: {scope description}
233
+ Review scope: {multi | all}
234
+ Plans:
235
+ - docs/workflow/planning/{topic-1}.md (format: {format}, spec: {spec})
236
+ - docs/workflow/planning/{topic-2}.md (format: {format}, spec: {spec})
171
237
 
172
238
  Invoke the technical-review skill.
173
239
  ```
@@ -45,6 +45,8 @@ echo ""
45
45
  echo "plans:"
46
46
 
47
47
  plan_count=0
48
+ implemented_count=0
49
+ completed_count=0
48
50
 
49
51
  if [ -d "$PLAN_DIR" ] && [ -n "$(ls -A "$PLAN_DIR" 2>/dev/null)" ]; then
50
52
  echo " exists: true"
@@ -73,6 +75,14 @@ if [ -d "$PLAN_DIR" ] && [ -n "$(ls -A "$PLAN_DIR" 2>/dev/null)" ]; then
73
75
  spec_exists="true"
74
76
  fi
75
77
 
78
+ # Check implementation status
79
+ impl_tracking="docs/workflow/implementation/${name}/tracking.md"
80
+ impl_status="none"
81
+ if [ -f "$impl_tracking" ]; then
82
+ impl_status_val=$(extract_field "$impl_tracking" "status")
83
+ impl_status=${impl_status_val:-"in-progress"}
84
+ fi
85
+
76
86
  echo " - name: \"$name\""
77
87
  echo " topic: \"$topic\""
78
88
  echo " status: \"$status\""
@@ -83,8 +93,15 @@ if [ -d "$PLAN_DIR" ] && [ -n "$(ls -A "$PLAN_DIR" 2>/dev/null)" ]; then
83
93
  if [ -n "$plan_id" ]; then
84
94
  echo " plan_id: \"$plan_id\""
85
95
  fi
96
+ echo " implementation_status: \"$impl_status\""
86
97
 
87
98
  plan_count=$((plan_count + 1))
99
+ if [ "$impl_status" != "none" ]; then
100
+ implemented_count=$((implemented_count + 1))
101
+ fi
102
+ if [ "$impl_status" = "completed" ]; then
103
+ completed_count=$((completed_count + 1))
104
+ fi
88
105
  done
89
106
 
90
107
  echo " count: $plan_count"
@@ -103,6 +120,8 @@ echo "state:"
103
120
 
104
121
  echo " has_plans: $([ "$plan_count" -gt 0 ] && echo "true" || echo "false")"
105
122
  echo " plan_count: $plan_count"
123
+ echo " implemented_count: $implemented_count"
124
+ echo " completed_count: $completed_count"
106
125
 
107
126
  # Determine workflow state for routing
108
127
  if [ "$plan_count" -eq 0 ]; then
@@ -30,6 +30,7 @@ Follow these steps EXACTLY as written. Do not skip steps or combine them. Presen
30
30
 
31
31
  **CRITICAL**: This guidance is mandatory.
32
32
 
33
+ - **Silent processing**: Do NOT narrate your internal reasoning. Never output discovery field values, routing decisions, cache status, or prerequisite checks. The first user-visible output must be the display content itself.
33
34
  - After each user interaction, STOP and wait for their response before proceeding
34
35
  - Never assume or anticipate user choices
35
36
  - Even if the user's initial prompt seems to answer a question, still confirm with them at the appropriate step
@@ -24,7 +24,6 @@ List all concluded discussions from discovery output.
24
24
  ### If in-progress discussions exist
25
25
 
26
26
  ```
27
- ---
28
27
  Discussions not ready for specification:
29
28
  These discussions are still in progress and must be concluded
30
29
  before they can be included in a specification.
@@ -33,10 +32,11 @@ before they can be included in a specification.
33
32
 
34
33
  ### Cache-Aware Message
35
34
 
35
+ No `---` separator before these messages.
36
+
36
37
  #### If cache status is "none"
37
38
 
38
39
  ```
39
- ---
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.
@@ -51,7 +51,6 @@ Proceed with analysis?
51
51
  #### If cache status is "stale"
52
52
 
53
53
  ```
54
- ---
55
54
  A previous grouping analysis exists but is outdated — discussions
56
55
  have changed since it was created.
57
56
 
@@ -67,12 +67,11 @@ Recommended breakdown for specifications with their source discussions.
67
67
  └─ {discussion-name} (ready)
68
68
  ```
69
69
 
70
- Use `├─` for all but the last discussion, `└─` for the last.
70
+ **Formatting is exact**: Output the tree structure exactly as shown above — preserve all indentation spaces, blank lines between groupings, and `├─`/`└─` characters. Do not flatten or compress the spacing.
71
71
 
72
72
  ### If in-progress discussions exist
73
73
 
74
74
  ```
75
- ---
76
75
  Discussions not ready for specification:
77
76
  These discussions are still in progress and must be concluded
78
77
  before they can be included in a specification.
@@ -81,10 +80,9 @@ before they can be included in a specification.
81
80
 
82
81
  ### Key/Legend
83
82
 
84
- Show only the statuses that appear in the current display.
83
+ Show only the statuses that appear in the current display. No `---` separator before this section.
85
84
 
86
85
  ```
87
- ---
88
86
  Key:
89
87
 
90
88
  Discussion status:
@@ -101,8 +99,9 @@ Key:
101
99
 
102
100
  ### Tip (show when 2+ groupings)
103
101
 
102
+ No `---` separator before this section.
103
+
104
104
  ```
105
- ---
106
105
  Tip: To restructure groupings or pull a discussion into its own
107
106
  specification, choose "Re-analyze" and provide guidance.
108
107
  ```
@@ -133,17 +132,19 @@ After all grouping entries, append meta options:
133
132
  1. Start "Auth Flow" — 2 ready discussions
134
133
  2. Continue "Data Model" — 1 source(s) pending extraction
135
134
  3. Unify all into single specification
136
- All discussions are combined into one specification. Existing
137
- specifications are incorporated and superseded.
135
+ `All discussions are combined into one specification. Existing`
136
+ `specifications are incorporated and superseded.`
138
137
  4. Re-analyze groupings
139
- Current groupings are discarded and rebuilt. Existing
140
- specification names are preserved. You can provide guidance
141
- in the next step.
138
+ `Current groupings are discarded and rebuilt. Existing`
139
+ `specification names are preserved. You can provide guidance`
140
+ `in the next step.`
142
141
 
143
142
  Select an option (enter number):
144
143
  · · · · · · · · · · · ·
145
144
  ```
146
145
 
146
+ **Formatting is exact**: Reproduce the menu exactly as shown above — descriptions are indented 3 spaces and wrapped in backticks.
147
+
147
148
  **STOP.** Wait for user response.
148
149
 
149
150
  #### If user picks a grouping
@@ -27,10 +27,11 @@ Single concluded discussion found with existing multi-source specification.
27
27
  └─ {source-name} (extracted, reopened)
28
28
  ```
29
29
 
30
+ **Formatting is exact**: Output the tree structure exactly as shown above — preserve all indentation spaces and `├─`/`└─` characters. Do not flatten or compress the spacing.
31
+
30
32
  ### If in-progress discussions exist
31
33
 
32
34
  ```
33
- ---
34
35
  Discussions not ready for specification:
35
36
  These discussions are still in progress and must be concluded
36
37
  before they can be included in a specification.
@@ -39,10 +40,9 @@ before they can be included in a specification.
39
40
 
40
41
  ### Key/Legend
41
42
 
42
- Show only the statuses that appear in the current display.
43
+ Show only the statuses that appear in the current display. No `---` separator before this section.
43
44
 
44
45
  ```
45
- ---
46
46
  Key:
47
47
 
48
48
  Discussion status:
@@ -58,7 +58,6 @@ Key:
58
58
  ## After Display
59
59
 
60
60
  ```
61
- ---
62
61
  Automatically proceeding with "{Spec Title Case Name}".
63
62
  ```
64
63
 
@@ -21,10 +21,11 @@ Single concluded discussion found with existing specification.
21
21
  └─ {discussion-name} (extracted)
22
22
  ```
23
23
 
24
+ **Formatting is exact**: Output the tree structure exactly as shown above — preserve all indentation spaces and `├─`/`└─` characters. Do not flatten or compress the spacing.
25
+
24
26
  ### If in-progress discussions exist
25
27
 
26
28
  ```
27
- ---
28
29
  Discussions not ready for specification:
29
30
  These discussions are still in progress and must be concluded
30
31
  before they can be included in a specification.
@@ -33,8 +34,9 @@ before they can be included in a specification.
33
34
 
34
35
  ### Key/Legend
35
36
 
37
+ No `---` separator before this section.
38
+
36
39
  ```
37
- ---
38
40
  Key:
39
41
 
40
42
  Discussion status:
@@ -47,7 +49,6 @@ Key:
47
49
  ## After Display
48
50
 
49
51
  ```
50
- ---
51
52
  Automatically proceeding with "{Title Case Name}".
52
53
  ```
53
54
 
@@ -19,10 +19,11 @@ Single concluded discussion found.
19
19
  └─ {discussion-name} (ready)
20
20
  ```
21
21
 
22
+ **Formatting is exact**: Output the tree structure exactly as shown above — preserve all indentation spaces and `├─`/`└─` characters. Do not flatten or compress the spacing.
23
+
22
24
  ### If in-progress discussions exist
23
25
 
24
26
  ```
25
- ---
26
27
  Discussions not ready for specification:
27
28
  These discussions are still in progress and must be concluded
28
29
  before they can be included in a specification.
@@ -31,8 +32,9 @@ before they can be included in a specification.
31
32
 
32
33
  ### Key/Legend
33
34
 
35
+ No `---` separator before this section.
36
+
34
37
  ```
35
- ---
36
38
  Key:
37
39
 
38
40
  Discussion status:
@@ -45,7 +47,6 @@ Key:
45
47
  ## After Display
46
48
 
47
49
  ```
48
- ---
49
50
  Automatically proceeding with "{Title Case Name}".
50
51
  ```
51
52
 
@@ -26,6 +26,8 @@ For each non-superseded specification from discovery output, display as nested t
26
26
  └─ {source-name} (extracted)
27
27
  ```
28
28
 
29
+ **Formatting is exact**: Output the tree structure exactly as shown above — preserve all indentation spaces and `├─`/`└─` characters. Do not flatten or compress the spacing.
30
+
29
31
  Determine discussion status from the spec's `sources` array:
30
32
  - `incorporated` + `discussion_status: concluded` or `not-found` → `extracted`
31
33
  - `incorporated` + `discussion_status: other` (e.g. `in-progress`) → `extracted, reopened`
@@ -46,7 +48,6 @@ Concluded discussions not in a specification:
46
48
  ### If in-progress discussions exist
47
49
 
48
50
  ```
49
- ---
50
51
  Discussions not ready for specification:
51
52
  These discussions are still in progress and must be concluded
52
53
  before they can be included in a specification.
@@ -55,10 +56,9 @@ before they can be included in a specification.
55
56
 
56
57
  ### Key/Legend
57
58
 
58
- Show only the statuses that appear in the current display.
59
+ Show only the statuses that appear in the current display. No `---` separator before this section.
59
60
 
60
61
  ```
61
- ---
62
62
  Key:
63
63
 
64
64
  Discussion status:
@@ -72,17 +72,17 @@ Key:
72
72
 
73
73
  ### Cache-Aware Message
74
74
 
75
+ No `---` separator before these messages.
76
+
75
77
  #### If cache status is "none"
76
78
 
77
79
  ```
78
- ---
79
80
  No grouping analysis exists.
80
81
  ```
81
82
 
82
83
  #### If cache status is "stale"
83
84
 
84
85
  ```
85
- ---
86
86
  A previous grouping analysis exists but is outdated — discussions
87
87
  have changed since it was created. Re-analysis is required.
88
88
  ```
@@ -104,9 +104,9 @@ List "Analyze for groupings (recommended)" first, then one entry per existing no
104
104
  ```
105
105
  · · · · · · · · · · · ·
106
106
  1. Analyze for groupings (recommended)
107
- All discussions are analyzed for natural groupings. Existing
108
- specification names are preserved. You can provide guidance
109
- in the next step.
107
+ `All discussions are analyzed for natural groupings. Existing`
108
+ `specification names are preserved. You can provide guidance`
109
+ `in the next step.`
110
110
  2. Continue "Auth Flow" — in-progress
111
111
  3. Refine "Data Model" — concluded
112
112
 
@@ -114,6 +114,8 @@ Select an option (enter number):
114
114
  · · · · · · · · · · · ·
115
115
  ```
116
116
 
117
+ Menu descriptions are wrapped in backticks to visually distinguish them from the choice labels.
118
+
117
119
  **STOP.** Wait for user response.
118
120
 
119
121
  #### If user picks "Analyze for groupings"