@leeovery/claude-technical-workflows 2.1.18 → 2.1.20

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/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 +21 -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 +2 -0
  15. package/skills/start-planning/SKILL.md +2 -0
  16. package/skills/start-review/SKILL.md +88 -21
  17. package/skills/start-review/scripts/discovery.sh +19 -0
  18. package/skills/start-specification/SKILL.md +21 -758
  19. package/skills/start-specification/references/analysis-flow.md +103 -0
  20. package/skills/start-specification/references/confirm-and-handoff.md +30 -0
  21. package/skills/start-specification/references/confirm-continue.md +90 -0
  22. package/skills/start-specification/references/confirm-create.md +73 -0
  23. package/skills/start-specification/references/confirm-refine.md +41 -0
  24. package/skills/start-specification/references/confirm-unify.md +63 -0
  25. package/skills/start-specification/references/display-analyze.md +85 -0
  26. package/skills/start-specification/references/display-blocks.md +42 -0
  27. package/skills/start-specification/references/display-groupings.md +171 -0
  28. package/skills/start-specification/references/display-single-grouped.md +69 -0
  29. package/skills/start-specification/references/display-single-has-spec.md +60 -0
  30. package/skills/start-specification/references/display-single-no-spec.md +55 -0
  31. package/skills/start-specification/references/display-single.md +25 -0
  32. package/skills/start-specification/references/display-specs-menu.md +134 -0
  33. package/skills/start-specification/references/handoffs/continue-concluded.md +24 -0
  34. package/skills/start-specification/references/handoffs/continue.md +22 -0
  35. package/skills/start-specification/references/handoffs/create-with-incorporation.md +30 -0
  36. package/skills/start-specification/references/handoffs/create.md +20 -0
  37. package/skills/start-specification/references/handoffs/unify-with-incorporation.md +32 -0
  38. package/skills/start-specification/references/handoffs/unify.md +21 -0
  39. package/skills/start-specification/scripts/discovery.sh +66 -12
  40. package/skills/technical-implementation/references/steps/analysis-loop.md +10 -6
  41. package/skills/technical-review/SKILL.md +72 -70
  42. package/skills/technical-review/references/invoke-product-assessor.md +57 -0
  43. package/skills/technical-review/references/invoke-task-verifiers.md +104 -0
  44. package/skills/technical-review/references/review-checklist.md +1 -55
  45. 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).
@@ -94,6 +94,8 @@ Parse the discovery output to understand:
94
94
 
95
95
  **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
96
 
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
+
97
99
  → Proceed to **Step 2**.
98
100
 
99
101
  ---
@@ -83,6 +83,8 @@ Parse the discovery output to understand:
83
83
 
84
84
  **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
85
 
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
+
86
88
  → Proceed to **Step 2**.
87
89
 
88
90
  ---
@@ -71,9 +71,13 @@ Parse the discovery output to understand:
71
71
 
72
72
  **From `state` section:**
73
73
  - `scenario` - one of: `"no_plans"`, `"single_plan"`, `"multiple_plans"`
74
+ - `implemented_count` - plans with implementation_status != "none"
75
+ - `completed_count` - plans with implementation_status == "completed"
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
 
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
+
77
81
  → Proceed to **Step 2**.
78
82
 
79
83
  ---
@@ -102,29 +106,67 @@ Plans exist.
102
106
 
103
107
  ---
104
108
 
105
- ## Step 3: Present Plans and Select
109
+ ## Step 3: Present Plans and Select Scope
106
110
 
107
- Present all discovered plans to help the user make an informed choice.
111
+ Present all discovered plans with implementation status to help the user understand what's reviewable.
108
112
 
109
113
  **Present the full state:**
110
114
 
111
115
  ```
112
- Available Plans:
116
+ Review Phase
113
117
 
114
- 1. {topic-1} ({status}) - format: {format}, spec: {exists|missing}
115
- 2. {topic-2} ({status}) - format: {format}, spec: {exists|missing}
118
+ Reviewable:
119
+ 1. {topic-1} (completed) - format: {format}, spec: {exists|missing}
120
+ 2. ▶ {topic-2} (in-progress) - format: {format}, spec: {exists|missing}
116
121
 
117
- · · · · · · · · · · · ·
118
- Which plan would you like to review the implementation for? (Enter a number or name)
122
+ Not reviewable:
123
+ · {topic-3} [no implementation]
119
124
  ```
120
125
 
121
- **If single plan exists (auto-select):**
126
+ **Formatting rules:**
127
+
128
+ Reviewable (numbered, selectable):
129
+ - **`✓`** — implementation_status: completed
130
+ - **`▶`** — implementation_status: in-progress
131
+
132
+ Not reviewable (not numbered, not selectable):
133
+ - **`·`** — implementation_status: none
134
+
135
+ Omit either section entirely if it has no entries.
136
+
137
+ **Then route based on what's reviewable:**
138
+
139
+ #### If no reviewable plans
140
+
122
141
  ```
123
- Auto-selecting: {topic} (only available plan)
142
+ No implemented plans found.
143
+
144
+ The review phase requires at least one plan with an implementation.
145
+ Please run /start-implementation first.
124
146
  ```
125
- → Proceed directly to **Step 4**.
126
147
 
127
- **If multiple plans exist:**
148
+ **STOP.** Wait for user to acknowledge before ending.
149
+
150
+ #### If single reviewable plan
151
+
152
+ ```
153
+ Auto-selecting: {topic} (only reviewable plan)
154
+ Scope: single
155
+ ```
156
+
157
+ → Proceed directly to **Step 5**.
158
+
159
+ #### If multiple reviewable plans
160
+
161
+ ```
162
+ · · · · · · · · · · · ·
163
+ What scope would you like to review?
164
+
165
+ - **`s`/`single`** — Review one plan's implementation
166
+ - **`m`/`multi`** — Review selected plans together (cross-cutting)
167
+ - **`a`/`all`** — Review all implemented plans (full product)
168
+ · · · · · · · · · · · ·
169
+ ```
128
170
 
129
171
  **STOP.** Wait for user response.
130
172
 
@@ -132,23 +174,37 @@ Auto-selecting: {topic} (only available plan)
132
174
 
133
175
  ---
134
176
 
135
- ## Step 4: Identify Implementation Scope
177
+ ## Step 4: Plan Selection
178
+
179
+ This step only applies for `single` or `multi` scope chosen in Step 3.
180
+
181
+ #### If scope is "all"
182
+
183
+ All reviewable plans are included. No selection needed.
184
+
185
+ → Proceed directly to **Step 5**.
136
186
 
137
- Ask the user what code to review:
187
+ #### If scope is "single"
138
188
 
139
189
  ```
140
190
  · · · · · · · · · · · ·
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
191
+ Which plan would you like to review? (Enter a number from Step 3)
146
192
  · · · · · · · · · · · ·
147
193
  ```
148
194
 
149
195
  **STOP.** Wait for user response.
150
196
 
151
- If they choose specific directories/files, ask them to specify.
197
+ Proceed to **Step 5**.
198
+
199
+ #### If scope is "multi"
200
+
201
+ ```
202
+ · · · · · · · · · · · ·
203
+ Which plans to include? (Enter numbers separated by commas, e.g. 1,3)
204
+ · · · · · · · · · · · ·
205
+ ```
206
+
207
+ **STOP.** Wait for user response.
152
208
 
153
209
  → Proceed to **Step 5**.
154
210
 
@@ -160,14 +216,25 @@ After completing the steps above, this skill's purpose is fulfilled.
160
216
 
161
217
  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
218
 
163
- **Example handoff:**
219
+ **Example handoff (single):**
164
220
  ```
165
221
  Review session for: {topic}
222
+ Review scope: single
166
223
  Plan: docs/workflow/planning/{topic}.md
167
224
  Format: {format}
168
225
  Plan ID: {plan_id} (if applicable)
169
226
  Specification: {specification} (exists: {true|false})
170
- Scope: {all changes | specific paths | from git status}
227
+
228
+ Invoke the technical-review skill.
229
+ ```
230
+
231
+ **Example handoff (multi/all):**
232
+ ```
233
+ Review session for: {scope description}
234
+ Review scope: {multi | all}
235
+ Plans:
236
+ - docs/workflow/planning/{topic-1}.md (format: {format}, spec: {spec})
237
+ - docs/workflow/planning/{topic-2}.md (format: {format}, spec: {spec})
171
238
 
172
239
  Invoke the technical-review skill.
173
240
  ```
@@ -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