@leeovery/claude-technical-workflows 2.1.17 → 2.1.19

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 (45) hide show
  1. package/package.json +1 -1
  2. package/skills/link-dependencies/SKILL.md +2 -2
  3. package/skills/start-discussion/SKILL.md +6 -6
  4. package/skills/start-implementation/SKILL.md +3 -4
  5. package/skills/start-planning/SKILL.md +3 -4
  6. package/skills/start-research/SKILL.md +13 -88
  7. package/skills/start-research/references/gather-context.md +68 -0
  8. package/skills/start-research/references/invoke-skill.md +23 -0
  9. package/skills/start-review/SKILL.md +3 -4
  10. package/skills/start-specification/SKILL.md +19 -758
  11. package/skills/start-specification/references/analysis-flow.md +103 -0
  12. package/skills/start-specification/references/confirm-and-handoff.md +30 -0
  13. package/skills/start-specification/references/confirm-continue.md +90 -0
  14. package/skills/start-specification/references/confirm-create.md +73 -0
  15. package/skills/start-specification/references/confirm-refine.md +41 -0
  16. package/skills/start-specification/references/confirm-unify.md +63 -0
  17. package/skills/start-specification/references/display-analyze.md +86 -0
  18. package/skills/start-specification/references/display-blocks.md +42 -0
  19. package/skills/start-specification/references/display-groupings.md +168 -0
  20. package/skills/start-specification/references/display-single-grouped.md +70 -0
  21. package/skills/start-specification/references/display-single-has-spec.md +59 -0
  22. package/skills/start-specification/references/display-single-no-spec.md +54 -0
  23. package/skills/start-specification/references/display-single.md +25 -0
  24. package/skills/start-specification/references/display-specs-menu.md +132 -0
  25. package/skills/start-specification/references/handoffs/continue-concluded.md +24 -0
  26. package/skills/start-specification/references/handoffs/continue.md +22 -0
  27. package/skills/start-specification/references/handoffs/create-with-incorporation.md +30 -0
  28. package/skills/start-specification/references/handoffs/create.md +20 -0
  29. package/skills/start-specification/references/handoffs/unify-with-incorporation.md +32 -0
  30. package/skills/start-specification/references/handoffs/unify.md +21 -0
  31. package/skills/start-specification/scripts/discovery.sh +66 -12
  32. package/skills/technical-implementation/SKILL.md +15 -7
  33. package/skills/technical-implementation/references/steps/analysis-loop.md +15 -11
  34. package/skills/technical-implementation/references/steps/task-loop.md +6 -6
  35. package/skills/technical-planning/SKILL.md +12 -8
  36. package/skills/technical-planning/references/steps/analyze-task-graph.md +4 -4
  37. package/skills/technical-planning/references/steps/author-tasks.md +2 -2
  38. package/skills/technical-planning/references/steps/define-phases.md +2 -2
  39. package/skills/technical-planning/references/steps/define-tasks.md +2 -2
  40. package/skills/technical-planning/references/steps/plan-construction.md +2 -2
  41. package/skills/technical-planning/references/steps/resolve-dependencies.md +2 -2
  42. package/skills/technical-planning/references/steps/review-integrity.md +2 -2
  43. package/skills/technical-planning/references/steps/review-traceability.md +2 -2
  44. package/skills/technical-research/SKILL.md +2 -2
  45. package/skills/technical-specification/references/specification-guide.md +6 -6
@@ -0,0 +1,103 @@
1
+ # Analysis Flow
2
+
3
+ *Reference for **[start-specification](../SKILL.md)***
4
+
5
+ ---
6
+
7
+ ## A. Gather Analysis Context
8
+
9
+ ```
10
+ Before analyzing, is there anything about how these discussions relate
11
+ that would help me group them appropriately?
12
+
13
+ For example:
14
+ - Topics that are part of the same feature
15
+ - Dependencies between topics
16
+ - Topics that must stay separate
17
+
18
+ Your context (or 'none'):
19
+ ```
20
+
21
+ **STOP.** Wait for user response. Note their input for the analysis.
22
+
23
+ → Proceed to **B. Analyze Discussions**.
24
+
25
+ ---
26
+
27
+ ## B. Analyze Discussions
28
+
29
+ **This step is critical. You MUST read every concluded discussion document thoroughly.**
30
+
31
+ For each concluded discussion:
32
+ 1. Read the ENTIRE document using the Read tool (not just frontmatter)
33
+ 2. Understand the decisions, systems, and concepts it defines
34
+ 3. Note dependencies on or references to other discussions
35
+ 4. Identify shared data structures, entities, or behaviors
36
+
37
+ Then analyze coupling between discussions:
38
+ - **Data coupling**: Discussions that define or depend on the same data structures
39
+ - **Behavioral coupling**: Discussions where one's implementation requires another
40
+ - **Conceptual coupling**: Discussions that address different facets of the same problem
41
+
42
+ Group discussions into specifications where each grouping represents a **coherent feature or capability that can be independently planned and built** — with clear stages delivering incremental, testable value:
43
+
44
+ - **Tightly coupled discussions belong together** — their decisions are inseparable and would produce interleaved implementation work
45
+ - **Don't group too broadly** — if a grouping mixes unrelated concerns, the resulting specification will produce incoherent stages and tasks
46
+ - **Don't group too narrowly** — if a grouping is too thin, it may not warrant its own specification cycle
47
+ - **Flag cross-cutting discussions** — discussions about patterns or policies should become cross-cutting specifications rather than being grouped with feature discussions
48
+
49
+ ### Preserve Anchored Names
50
+
51
+ **CRITICAL**: Check the `cache.anchored_names` from discovery state. These are grouping names that have existing specifications.
52
+
53
+ When forming groupings:
54
+ - If a grouping contains a majority of the same discussions as an anchored name's spec, you MUST reuse that anchored name
55
+ - Only create new names for genuinely new groupings with no overlap
56
+ - If an anchored spec's discussions are now scattered across multiple new groupings, note this as a **naming conflict** to present to the user
57
+
58
+ → Proceed to **C. Save to Cache**.
59
+
60
+ ---
61
+
62
+ ## C. Save to Cache
63
+
64
+ Create the cache directory if needed:
65
+ ```bash
66
+ mkdir -p docs/workflow/.cache
67
+ ```
68
+
69
+ Write to `docs/workflow/.cache/discussion-consolidation-analysis.md`:
70
+
71
+ ```markdown
72
+ ---
73
+ checksum: {checksum from current_state.discussions_checksum}
74
+ generated: {ISO date}
75
+ discussion_files:
76
+ - {topic1}.md
77
+ - {topic2}.md
78
+ ---
79
+
80
+ # Discussion Consolidation Analysis
81
+
82
+ ## Recommended Groupings
83
+
84
+ ### {Suggested Specification Name}
85
+ - **{topic-a}**: {why it belongs in this group}
86
+ - **{topic-b}**: {why it belongs in this group}
87
+
88
+ **Coupling**: {Brief explanation of what binds these together}
89
+
90
+ ### {Another Specification Name}
91
+ - **{topic-d}**: {why it belongs}
92
+
93
+ **Coupling**: {Brief explanation}
94
+
95
+ ## Independent Discussions
96
+ - **{topic-f}**: {Why this stands alone}
97
+
98
+ ## Analysis Notes
99
+ {Any additional context about the relationships discovered}
100
+ {Note any naming conflicts with anchored specs here}
101
+ ```
102
+
103
+ → Load **[display-groupings.md](display-groupings.md)** and follow its instructions.
@@ -0,0 +1,30 @@
1
+ # Confirm and Handoff
2
+
3
+ *Reference for **[start-specification](../SKILL.md)***
4
+
5
+ ---
6
+
7
+ ## Verb Rule
8
+
9
+ - No spec exists → **"Creating"**
10
+ - Spec is `in-progress` → **"Continuing"**
11
+ - Spec is `concluded` with pending sources → **"Continuing"**
12
+ - Spec is `concluded` with all sources extracted → **"Refining"**
13
+
14
+ ## Route
15
+
16
+ #### If selection is "Unify all"
17
+
18
+ → Load **[confirm-unify.md](confirm-unify.md)** and follow its instructions.
19
+
20
+ #### If verb is "Creating"
21
+
22
+ → Load **[confirm-create.md](confirm-create.md)** and follow its instructions.
23
+
24
+ #### If verb is "Continuing"
25
+
26
+ → Load **[confirm-continue.md](confirm-continue.md)** and follow its instructions.
27
+
28
+ #### If verb is "Refining"
29
+
30
+ → Load **[confirm-refine.md](confirm-refine.md)** and follow its instructions.
@@ -0,0 +1,90 @@
1
+ # Confirm: Continue Specification
2
+
3
+ *Reference for **[confirm-and-handoff.md](confirm-and-handoff.md)***
4
+
5
+ ---
6
+
7
+ #### If spec is in-progress with pending sources
8
+
9
+ ```
10
+ Continuing specification: {Title Case Name}
11
+
12
+ Existing: docs/workflow/specification/{kebab-case-name}.md (in-progress)
13
+
14
+ Sources to extract:
15
+ • {discussion-name} (pending)
16
+
17
+ Previously extracted (for reference):
18
+ • {discussion-name}
19
+
20
+ · · · · · · · · · · · ·
21
+ Proceed?
22
+ - **`y`/`yes`**
23
+ - **`n`/`no`**
24
+ · · · · · · · · · · · ·
25
+ ```
26
+
27
+ #### If spec is in-progress with all sources extracted
28
+
29
+ ```
30
+ Continuing specification: {Title Case Name}
31
+
32
+ Existing: docs/workflow/specification/{kebab-case-name}.md (in-progress)
33
+
34
+ All sources extracted:
35
+ • {discussion-name}
36
+ • {discussion-name}
37
+
38
+ · · · · · · · · · · · ·
39
+ Proceed?
40
+ - **`y`/`yes`**
41
+ - **`n`/`no`**
42
+ · · · · · · · · · · · ·
43
+ ```
44
+
45
+ #### If spec is concluded with pending sources
46
+
47
+ ```
48
+ Continuing specification: {Title Case Name}
49
+
50
+ Existing: docs/workflow/specification/{kebab-case-name}.md (concluded)
51
+
52
+ New sources to extract:
53
+ • {discussion-name} (pending)
54
+
55
+ Previously extracted (for reference):
56
+ • {discussion-name}
57
+
58
+ · · · · · · · · · · · ·
59
+ Proceed?
60
+ - **`y`/`yes`**
61
+ - **`n`/`no`**
62
+ · · · · · · · · · · · ·
63
+ ```
64
+
65
+ **STOP.** Wait for user response.
66
+
67
+ #### If user confirms (y)
68
+
69
+ #### If spec is concluded with pending sources
70
+
71
+ → Load **[continue-concluded.md](handoffs/continue-concluded.md)** and follow its instructions.
72
+
73
+ #### Otherwise
74
+
75
+ → Load **[continue.md](handoffs/continue.md)** and follow its instructions.
76
+
77
+ #### If user declines (n)
78
+
79
+ #### If single discussion (no menu to return to)
80
+
81
+ ```
82
+ Understood. You can run /start-discussion to continue working on
83
+ discussions, or re-run this command when ready.
84
+ ```
85
+
86
+ Command ends.
87
+
88
+ #### If groupings or specs menu
89
+
90
+ Re-display the previous menu (the display that led to this confirmation). The user can make a different choice.
@@ -0,0 +1,73 @@
1
+ # Confirm: Create Specification
2
+
3
+ *Reference for **[confirm-and-handoff.md](confirm-and-handoff.md)***
4
+
5
+ ---
6
+
7
+ #### If no source discussions have individual specs
8
+
9
+ ```
10
+ Creating specification: {Title Case Name}
11
+
12
+ Sources:
13
+ • {discussion-name}
14
+ • {discussion-name}
15
+
16
+ Output: docs/workflow/specification/{kebab-case-name}.md
17
+
18
+ · · · · · · · · · · · ·
19
+ Proceed?
20
+ - **`y`/`yes`**
21
+ - **`n`/`no`**
22
+ · · · · · · · · · · · ·
23
+ ```
24
+
25
+ #### If any source discussion has an individual spec
26
+
27
+ Note the supersession (`has_individual_spec: true`):
28
+
29
+ ```
30
+ Creating specification: {Title Case Name}
31
+
32
+ Sources:
33
+ • {discussion-name} (has individual spec — will be incorporated)
34
+ • {discussion-name}
35
+
36
+ Output: docs/workflow/specification/{kebab-case-name}.md
37
+
38
+ After completion:
39
+ specification/{discussion-name}.md → marked as superseded
40
+
41
+ · · · · · · · · · · · ·
42
+ Proceed?
43
+ - **`y`/`yes`**
44
+ - **`n`/`no`**
45
+ · · · · · · · · · · · ·
46
+ ```
47
+
48
+ **STOP.** Wait for user response.
49
+
50
+ #### If user confirms (y)
51
+
52
+ #### If any source discussions have individual specs
53
+
54
+ → Load **[create-with-incorporation.md](handoffs/create-with-incorporation.md)** and follow its instructions.
55
+
56
+ #### Otherwise
57
+
58
+ → Load **[create.md](handoffs/create.md)** and follow its instructions.
59
+
60
+ #### If user declines (n)
61
+
62
+ #### If single discussion (no menu to return to)
63
+
64
+ ```
65
+ Understood. You can run /start-discussion to continue working on
66
+ discussions, or re-run this command when ready.
67
+ ```
68
+
69
+ Command ends.
70
+
71
+ #### If groupings or specs menu
72
+
73
+ Re-display the previous menu (the display that led to this confirmation). The user can make a different choice.
@@ -0,0 +1,41 @@
1
+ # Confirm: Refine Specification
2
+
3
+ *Reference for **[confirm-and-handoff.md](confirm-and-handoff.md)***
4
+
5
+ ---
6
+
7
+ ```
8
+ Refining specification: {Title Case Name}
9
+
10
+ Existing: docs/workflow/specification/{kebab-case-name}.md (concluded)
11
+
12
+ All sources extracted:
13
+ • {discussion-name}
14
+
15
+ · · · · · · · · · · · ·
16
+ Proceed?
17
+ - **`y`/`yes`**
18
+ - **`n`/`no`**
19
+ · · · · · · · · · · · ·
20
+ ```
21
+
22
+ **STOP.** Wait for user response.
23
+
24
+ #### If user confirms (y)
25
+
26
+ → Load **[continue.md](handoffs/continue.md)** and follow its instructions.
27
+
28
+ #### If user declines (n)
29
+
30
+ #### If single discussion (no menu to return to)
31
+
32
+ ```
33
+ Understood. You can run /start-discussion to continue working on
34
+ discussions, or re-run this command when ready.
35
+ ```
36
+
37
+ Command ends.
38
+
39
+ #### If groupings or specs menu
40
+
41
+ Re-display the previous menu (the display that led to this confirmation). The user can make a different choice.
@@ -0,0 +1,63 @@
1
+ # Confirm: Unify All
2
+
3
+ *Reference for **[confirm-and-handoff.md](confirm-and-handoff.md)***
4
+
5
+ ---
6
+
7
+ #### If existing specifications will be superseded
8
+
9
+ ```
10
+ Creating specification: Unified
11
+
12
+ Sources:
13
+ • {discussion-name}
14
+ • {discussion-name}
15
+ ...
16
+
17
+ Existing specifications to incorporate:
18
+ • {spec-name}.md → will be superseded
19
+ • {spec-name}.md → will be superseded
20
+
21
+ Output: docs/workflow/specification/unified.md
22
+
23
+ · · · · · · · · · · · ·
24
+ Proceed?
25
+ - **`y`/`yes`**
26
+ - **`n`/`no`**
27
+ · · · · · · · · · · · ·
28
+ ```
29
+
30
+ #### If no existing specifications
31
+
32
+ ```
33
+ Creating specification: Unified
34
+
35
+ Sources:
36
+ • {discussion-name}
37
+ • {discussion-name}
38
+ ...
39
+
40
+ Output: docs/workflow/specification/unified.md
41
+
42
+ · · · · · · · · · · · ·
43
+ Proceed?
44
+ - **`y`/`yes`**
45
+ - **`n`/`no`**
46
+ · · · · · · · · · · · ·
47
+ ```
48
+
49
+ **STOP.** Wait for user response.
50
+
51
+ #### If user confirms (y)
52
+
53
+ #### If existing specifications will be superseded
54
+
55
+ → Load **[unify-with-incorporation.md](handoffs/unify-with-incorporation.md)** and follow its instructions.
56
+
57
+ #### Otherwise
58
+
59
+ → Load **[unify.md](handoffs/unify.md)** and follow its instructions.
60
+
61
+ #### If user declines (n)
62
+
63
+ Re-display the previous menu (the display that led to this confirmation). The user can make a different choice.
@@ -0,0 +1,86 @@
1
+ # Display: Analyze Prompt
2
+
3
+ *Reference for **[start-specification](../SKILL.md)***
4
+
5
+ ---
6
+
7
+ Prompted when multiple concluded discussions exist, no specifications exist, and cache is none or stale.
8
+
9
+ ## Display
10
+
11
+ ```
12
+ Specification Overview
13
+
14
+ {N} concluded discussions found. No specifications exist yet.
15
+
16
+ Concluded discussions:
17
+ • {discussion-name}
18
+ • {discussion-name}
19
+ • {discussion-name}
20
+ ```
21
+
22
+ List all concluded discussions from discovery output.
23
+
24
+ ### If in-progress discussions exist
25
+
26
+ ```
27
+ ---
28
+ Discussions not ready for specification:
29
+ These discussions are still in progress and must be concluded
30
+ before they can be included in a specification.
31
+ · {discussion-name} (in-progress)
32
+ ```
33
+
34
+ ### Cache-Aware Message
35
+
36
+ #### If cache status is "none"
37
+
38
+ ```
39
+ ---
40
+ These discussions will be analyzed for natural groupings to determine
41
+ how they should be organized into specifications. Results are cached
42
+ and reused until discussions change.
43
+
44
+ · · · · · · · · · · · ·
45
+ Proceed with analysis?
46
+ - **`y`/`yes`**
47
+ - **`n`/`no`**
48
+ · · · · · · · · · · · ·
49
+ ```
50
+
51
+ #### If cache status is "stale"
52
+
53
+ ```
54
+ ---
55
+ A previous grouping analysis exists but is outdated — discussions
56
+ have changed since it was created.
57
+
58
+ These discussions will be re-analyzed for natural groupings. Results
59
+ are cached and reused until discussions change.
60
+
61
+ · · · · · · · · · · · ·
62
+ Proceed with analysis?
63
+ - **`y`/`yes`**
64
+ - **`n`/`no`**
65
+ · · · · · · · · · · · ·
66
+ ```
67
+
68
+ **STOP.** Wait for user response.
69
+
70
+ #### If user confirms (y)
71
+
72
+ If cache is stale, delete it first:
73
+ ```bash
74
+ rm docs/workflow/.cache/discussion-consolidation-analysis.md
75
+ ```
76
+
77
+ → Load **[analysis-flow.md](analysis-flow.md)** and follow its instructions.
78
+
79
+ #### If user declines (n)
80
+
81
+ ```
82
+ Understood. You can run /start-discussion to continue working on
83
+ discussions, or re-run this command when ready.
84
+ ```
85
+
86
+ **Command ends.** Control returns to the user.
@@ -0,0 +1,42 @@
1
+ # Display: Block Scenarios
2
+
3
+ *Reference for **[start-specification](../SKILL.md)***
4
+
5
+ ---
6
+
7
+ Two terminal paths — the command stops and cannot proceed.
8
+
9
+ ## If no discussions exist
10
+
11
+ ```
12
+ Specification Phase
13
+
14
+ No discussions found.
15
+
16
+ The specification phase requires concluded discussions to work from.
17
+ Discussions capture the technical decisions, edge cases, and rationale
18
+ that specifications are built upon.
19
+
20
+ Run /start-discussion to begin documenting technical decisions.
21
+ ```
22
+
23
+ **STOP.** Wait for user acknowledgment. Command ends here.
24
+
25
+ ## If discussions exist but none concluded
26
+
27
+ ```
28
+ Specification Phase
29
+
30
+ No concluded discussions found.
31
+
32
+ The following discussions are still in progress:
33
+ · {discussion-name} (in-progress)
34
+ · {discussion-name} (in-progress)
35
+
36
+ Specifications can only be created from concluded discussions.
37
+ Run /start-discussion to continue working on a discussion.
38
+ ```
39
+
40
+ List all in-progress discussions from discovery output.
41
+
42
+ **STOP.** Wait for user acknowledgment. Command ends here.
@@ -0,0 +1,168 @@
1
+ # Display: Groupings
2
+
3
+ *Reference for **[start-specification](../SKILL.md)***
4
+
5
+ ---
6
+
7
+ Shows when cache is valid (directly from routing) or after analysis completes. This is the most content-rich display.
8
+
9
+ ## A. Load Groupings
10
+
11
+ Load groupings from `docs/workflow/.cache/discussion-consolidation-analysis.md`. Parse the `### {Name}` headings and their discussion lists.
12
+
13
+ → Proceed to **B. Determine Discussion Status**.
14
+
15
+ ---
16
+
17
+ ## B. Determine Discussion Status
18
+
19
+ For each grouping, convert the name to kebab-case and check if a matching specification exists in the discovery `specifications` array.
20
+
21
+ #### If a matching spec exists
22
+
23
+ For each discussion in the grouping:
24
+ - Look up in the spec's `sources` array (by `name` field)
25
+ - If found → use the source's `status` (`incorporated` → `extracted`, `pending` → `pending`)
26
+ - If NOT found → status is `pending` (new source not yet in spec)
27
+
28
+ Spec status: show actual status with extraction count `({X} of {Y} sources extracted)`.
29
+
30
+ **Regressed sources:** After processing the grouping's discussions, check the spec's
31
+ `sources` array from discovery. For any source where `discussion_status` is neither
32
+ `concluded` nor `not-found`, and the source is not already in the grouping:
33
+ - Add it to the discussion tree with status `(extracted, reopened)`
34
+
35
+ These represent sources that were incorporated but whose discussions have since
36
+ regressed to in-progress. Sources with `discussion_status: "not-found"` (deleted
37
+ discussions) are silently skipped — there is nothing actionable.
38
+
39
+ **Extraction count:** Y = count of unique discussions in (spec sources ∪ grouping members). X = count of those with `incorporated` status in spec sources. This ensures regressed sources that dropped out of the grouping still count toward Y.
40
+
41
+ #### Otherwise
42
+
43
+ For each discussion: status is `ready`. Spec status: `none`.
44
+
45
+ → Proceed to **C. Display**.
46
+
47
+ ---
48
+
49
+ ## C. Display
50
+
51
+ All items are first-class — every grouping (including single-discussion entries) is a numbered item.
52
+
53
+ ```
54
+ Specification Overview
55
+
56
+ Recommended breakdown for specifications with their source discussions.
57
+
58
+ 1. {Grouping Name}
59
+ └─ Spec: {status} {(X of Y sources extracted) if applicable}
60
+ └─ Discussions:
61
+ ├─ {discussion-name} ({status})
62
+ └─ {discussion-name} ({status})
63
+
64
+ 2. {Grouping Name}
65
+ └─ Spec: none
66
+ └─ Discussions:
67
+ └─ {discussion-name} (ready)
68
+ ```
69
+
70
+ Use `├─` for all but the last discussion, `└─` for the last.
71
+
72
+ ### If in-progress discussions exist
73
+
74
+ ```
75
+ ---
76
+ Discussions not ready for specification:
77
+ These discussions are still in progress and must be concluded
78
+ before they can be included in a specification.
79
+ · {discussion-name} (in-progress)
80
+ ```
81
+
82
+ ### Key/Legend
83
+
84
+ Show only the statuses that appear in the current display.
85
+
86
+ ```
87
+ ---
88
+ Key:
89
+
90
+ Discussion status:
91
+ extracted — content has been incorporated into the specification
92
+ pending — listed as source but content not yet extracted
93
+ ready — concluded and available to be specified
94
+ reopened — was extracted but discussion has regressed to in-progress
95
+
96
+ Spec status:
97
+ none — no specification file exists yet
98
+ in-progress — specification work is ongoing
99
+ concluded — specification is complete
100
+ ```
101
+
102
+ ### Tip (show when 2+ groupings)
103
+
104
+ ```
105
+ ---
106
+ Tip: To restructure groupings or pull a discussion into its own
107
+ specification, choose "Re-analyze" and provide guidance.
108
+ ```
109
+
110
+ → Proceed to **D. Menu**.
111
+
112
+ ---
113
+
114
+ ## D. Menu
115
+
116
+ Present one numbered menu entry per grouping. The verb and description depend on the grouping's spec state:
117
+
118
+ - No spec exists → **Start** "{Name}" — {N} ready discussions
119
+ - Spec is `in-progress` with pending sources → **Continue** "{Name}" — {N} source(s) pending extraction
120
+ - Spec is `in-progress` with all extracted → **Continue** "{Name}" — all sources extracted
121
+ - Spec is `concluded` with no pending sources → **Refine** "{Name}" — concluded spec
122
+ - Spec is `concluded` with pending sources → **Continue** "{Name}" — {N} new source(s) to extract
123
+
124
+ After all grouping entries, append meta options:
125
+
126
+ - **Unify all** (only when 2+ groupings exist) — all discussions combined into one specification instead of following the recommended groupings. If specs exist, note they will be incorporated and superseded.
127
+ - **Re-analyze groupings** (always) — current groupings are discarded and rebuilt. If specs exist, existing names are preserved. User can provide guidance in the next step.
128
+
129
+ **Example assembled menu** (2 groupings, specs exist):
130
+
131
+ ```
132
+ · · · · · · · · · · · ·
133
+ 1. Start "Auth Flow" — 2 ready discussions
134
+ 2. Continue "Data Model" — 1 source(s) pending extraction
135
+ 3. Unify all into single specification
136
+ All discussions are combined into one specification. Existing
137
+ specifications are incorporated and superseded.
138
+ 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.
142
+
143
+ Select an option (enter number):
144
+ · · · · · · · · · · · ·
145
+ ```
146
+
147
+ **STOP.** Wait for user response.
148
+
149
+ #### If user picks a grouping
150
+
151
+ → Load **[confirm-and-handoff.md](confirm-and-handoff.md)** and follow its instructions.
152
+
153
+ #### If user picks "Unify all"
154
+
155
+ Update the cache: rewrite `docs/workflow/.cache/discussion-consolidation-analysis.md` with a single "Unified" grouping containing all concluded discussions. Keep the same checksum, update the generated timestamp. Add note: `Custom groupings confirmed by user (unified).`
156
+
157
+ Spec name: "Unified". Sources: all concluded discussions.
158
+
159
+ → Load **[confirm-and-handoff.md](confirm-and-handoff.md)** and follow its instructions.
160
+
161
+ #### If user picks "Re-analyze"
162
+
163
+ Delete the cache:
164
+ ```bash
165
+ rm docs/workflow/.cache/discussion-consolidation-analysis.md
166
+ ```
167
+
168
+ → Load **[analysis-flow.md](analysis-flow.md)** and follow its instructions.