@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.
- package/package.json +1 -1
- package/skills/link-dependencies/SKILL.md +2 -2
- package/skills/start-discussion/SKILL.md +6 -6
- package/skills/start-implementation/SKILL.md +3 -4
- package/skills/start-planning/SKILL.md +3 -4
- package/skills/start-research/SKILL.md +13 -88
- package/skills/start-research/references/gather-context.md +68 -0
- package/skills/start-research/references/invoke-skill.md +23 -0
- package/skills/start-review/SKILL.md +3 -4
- package/skills/start-specification/SKILL.md +19 -758
- package/skills/start-specification/references/analysis-flow.md +103 -0
- package/skills/start-specification/references/confirm-and-handoff.md +30 -0
- package/skills/start-specification/references/confirm-continue.md +90 -0
- package/skills/start-specification/references/confirm-create.md +73 -0
- package/skills/start-specification/references/confirm-refine.md +41 -0
- package/skills/start-specification/references/confirm-unify.md +63 -0
- package/skills/start-specification/references/display-analyze.md +86 -0
- package/skills/start-specification/references/display-blocks.md +42 -0
- package/skills/start-specification/references/display-groupings.md +168 -0
- package/skills/start-specification/references/display-single-grouped.md +70 -0
- package/skills/start-specification/references/display-single-has-spec.md +59 -0
- package/skills/start-specification/references/display-single-no-spec.md +54 -0
- package/skills/start-specification/references/display-single.md +25 -0
- package/skills/start-specification/references/display-specs-menu.md +132 -0
- package/skills/start-specification/references/handoffs/continue-concluded.md +24 -0
- package/skills/start-specification/references/handoffs/continue.md +22 -0
- package/skills/start-specification/references/handoffs/create-with-incorporation.md +30 -0
- package/skills/start-specification/references/handoffs/create.md +20 -0
- package/skills/start-specification/references/handoffs/unify-with-incorporation.md +32 -0
- package/skills/start-specification/references/handoffs/unify.md +21 -0
- package/skills/start-specification/scripts/discovery.sh +66 -12
- package/skills/technical-implementation/SKILL.md +15 -7
- package/skills/technical-implementation/references/steps/analysis-loop.md +15 -11
- package/skills/technical-implementation/references/steps/task-loop.md +6 -6
- package/skills/technical-planning/SKILL.md +12 -8
- package/skills/technical-planning/references/steps/analyze-task-graph.md +4 -4
- package/skills/technical-planning/references/steps/author-tasks.md +2 -2
- package/skills/technical-planning/references/steps/define-phases.md +2 -2
- package/skills/technical-planning/references/steps/define-tasks.md +2 -2
- package/skills/technical-planning/references/steps/plan-construction.md +2 -2
- package/skills/technical-planning/references/steps/resolve-dependencies.md +2 -2
- package/skills/technical-planning/references/steps/review-integrity.md +2 -2
- package/skills/technical-planning/references/steps/review-traceability.md +2 -2
- package/skills/technical-research/SKILL.md +2 -2
- 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.
|