@leeovery/claude-technical-workflows 2.1.41 → 2.2.0

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 (119) hide show
  1. package/README.md +5 -20
  2. package/hooks/workflows/compact-recovery.sh +3 -23
  3. package/hooks/workflows/write-session-state.sh +2 -26
  4. package/package.json +1 -1
  5. package/skills/link-dependencies/SKILL.md +0 -1
  6. package/skills/migrate/SKILL.md +0 -1
  7. package/skills/migrate/scripts/migrations/013-discussion-work-type.sh +76 -0
  8. package/skills/migrate/scripts/migrations/014-specification-work-type.sh +76 -0
  9. package/skills/migrate/scripts/migrations/015-plan-work-type.sh +76 -0
  10. package/skills/start-bugfix/SKILL.md +80 -0
  11. package/skills/start-bugfix/references/gather-bug-context.md +75 -0
  12. package/skills/start-bugfix/references/invoke-investigation.md +46 -0
  13. package/skills/start-bugfix/references/topic-name-check.md +59 -0
  14. package/skills/start-discussion/SKILL.md +51 -46
  15. package/skills/start-discussion/references/gather-context.md +54 -10
  16. package/skills/start-discussion/references/handle-selection.md +14 -4
  17. package/skills/start-discussion/references/invoke-skill.md +71 -3
  18. package/skills/start-discussion/references/research-analysis.md +2 -0
  19. package/skills/start-discussion/references/route-scenario.md +39 -0
  20. package/skills/start-discussion/references/validate-topic.md +46 -0
  21. package/skills/start-discussion/scripts/discovery.sh +3 -0
  22. package/skills/start-feature/SKILL.md +28 -84
  23. package/skills/start-feature/references/invoke-discussion.md +8 -4
  24. package/skills/start-feature/references/invoke-research.md +29 -0
  25. package/skills/start-feature/references/invoke-skill.md +35 -0
  26. package/skills/start-feature/references/research-gating.md +65 -0
  27. package/skills/start-feature/references/topic-name-check.md +61 -0
  28. package/skills/start-implementation/SKILL.md +35 -289
  29. package/skills/start-implementation/references/check-dependencies.md +65 -0
  30. package/skills/start-implementation/references/display-plans.md +159 -0
  31. package/skills/start-implementation/references/environment-check.md +45 -0
  32. package/skills/start-implementation/references/invoke-skill.md +42 -0
  33. package/skills/start-implementation/references/route-scenario.md +32 -0
  34. package/skills/start-implementation/references/validate-plan.md +45 -0
  35. package/skills/start-implementation/scripts/discovery.sh +3 -0
  36. package/skills/start-investigation/SKILL.md +145 -0
  37. package/skills/start-investigation/references/gather-context-fresh.md +72 -0
  38. package/skills/start-investigation/references/gather-context.md +31 -0
  39. package/skills/start-investigation/references/invoke-skill.md +54 -0
  40. package/skills/start-investigation/references/route-scenario.md +69 -0
  41. package/skills/start-investigation/references/validate-investigation.md +46 -0
  42. package/skills/start-investigation/scripts/discovery.sh +92 -0
  43. package/skills/start-planning/SKILL.md +32 -72
  44. package/skills/start-planning/references/cross-cutting-context.md +5 -5
  45. package/skills/start-planning/references/invoke-skill.md +27 -4
  46. package/skills/start-planning/references/route-plan-state.md +30 -0
  47. package/skills/start-planning/references/route-scenario.md +38 -0
  48. package/skills/start-planning/references/validate-spec.md +47 -0
  49. package/skills/start-planning/scripts/discovery.sh +7 -0
  50. package/skills/start-research/SKILL.md +17 -6
  51. package/skills/start-research/references/invoke-skill.md +3 -0
  52. package/skills/start-review/SKILL.md +32 -60
  53. package/skills/start-review/references/determine-review-version.md +24 -0
  54. package/skills/start-review/references/display-plans.md +2 -2
  55. package/skills/start-review/references/route-scenario.md +74 -0
  56. package/skills/start-review/references/select-plans.md +8 -6
  57. package/skills/start-review/references/validate-artifacts.md +63 -0
  58. package/skills/start-review/scripts/discovery.sh +3 -0
  59. package/skills/start-specification/SKILL.md +44 -20
  60. package/skills/start-specification/references/check-existing-spec.md +57 -0
  61. package/skills/start-specification/references/check-prerequisites.md +15 -0
  62. package/skills/start-specification/references/handoffs/continue-concluded.md +3 -0
  63. package/skills/start-specification/references/handoffs/continue.md +3 -0
  64. package/skills/start-specification/references/handoffs/create-with-incorporation.md +3 -0
  65. package/skills/start-specification/references/handoffs/create.md +3 -0
  66. package/skills/start-specification/references/handoffs/unify-with-incorporation.md +3 -0
  67. package/skills/start-specification/references/handoffs/unify.md +3 -0
  68. package/skills/start-specification/references/invoke-skill-bridge.md +74 -0
  69. package/skills/start-specification/references/route-scenario.md +23 -0
  70. package/skills/start-specification/references/validate-source.md +91 -0
  71. package/skills/start-specification/scripts/discovery.sh +6 -0
  72. package/skills/status/SKILL.md +6 -3
  73. package/skills/status/scripts/discovery.sh +9 -0
  74. package/skills/technical-discussion/SKILL.md +15 -4
  75. package/skills/technical-discussion/references/template.md +9 -1
  76. package/skills/technical-implementation/SKILL.md +24 -1
  77. package/skills/technical-implementation/references/analysis-loop.md +4 -4
  78. package/skills/technical-implementation/references/task-loop.md +2 -2
  79. package/skills/technical-investigation/SKILL.md +239 -0
  80. package/skills/technical-investigation/references/analysis-patterns.md +181 -0
  81. package/skills/technical-investigation/references/symptom-gathering.md +164 -0
  82. package/skills/technical-investigation/references/template.md +164 -0
  83. package/skills/technical-planning/SKILL.md +24 -1
  84. package/skills/technical-planning/references/author-tasks.md +16 -16
  85. package/skills/technical-planning/references/define-tasks.md +2 -2
  86. package/skills/technical-planning/references/output-formats/tick/authoring.md +3 -15
  87. package/skills/technical-planning/references/plan-construction.md +11 -30
  88. package/skills/technical-planning/references/plan-review.md +3 -3
  89. package/skills/technical-research/SKILL.md +38 -2
  90. package/skills/technical-review/SKILL.md +1 -2
  91. package/skills/technical-review/references/review-actions-loop.md +43 -1
  92. package/skills/technical-specification/SKILL.md +1 -2
  93. package/skills/technical-specification/references/spec-completion.md +34 -6
  94. package/skills/technical-specification/references/spec-construction.md +1 -1
  95. package/skills/technical-specification/references/spec-review.md +5 -5
  96. package/skills/view-plan/SKILL.md +0 -1
  97. package/skills/workflow/bridge/SKILL.md +82 -0
  98. package/skills/workflow/bridge/references/bugfix-continuation.md +59 -0
  99. package/skills/workflow/bridge/references/feature-continuation.md +60 -0
  100. package/skills/workflow/bridge/references/greenfield-continuation.md +224 -0
  101. package/skills/workflow/bridge/scripts/discovery.sh +512 -0
  102. package/skills/workflow/start/SKILL.md +97 -0
  103. package/skills/workflow/start/references/bugfix-routing.md +117 -0
  104. package/skills/workflow/start/references/feature-routing.md +117 -0
  105. package/skills/workflow/start/references/greenfield-routing.md +140 -0
  106. package/skills/workflow/start/references/work-type-selection.md +83 -0
  107. package/skills/workflow/start/scripts/discovery.sh +577 -0
  108. package/skills/begin-implementation/SKILL.md +0 -162
  109. package/skills/begin-planning/SKILL.md +0 -92
  110. package/skills/begin-review/SKILL.md +0 -90
  111. package/skills/continue-feature/SKILL.md +0 -186
  112. package/skills/continue-feature/references/detect-phase.md +0 -99
  113. package/skills/continue-feature/references/invoke-implementation.md +0 -43
  114. package/skills/continue-feature/references/invoke-planning.md +0 -43
  115. package/skills/continue-feature/references/invoke-review.md +0 -43
  116. package/skills/continue-feature/references/invoke-specification.md +0 -55
  117. package/skills/continue-feature/references/phase-bridge.md +0 -57
  118. package/skills/continue-feature/scripts/discovery.sh +0 -233
  119. package/skills/start-feature/references/phase-bridge.md +0 -37
@@ -12,13 +12,17 @@ Invoke the [technical-discussion](../../technical-discussion/SKILL.md) skill:
12
12
 
13
13
  ```
14
14
  Technical discussion for: {topic}
15
+ Work type: feature
15
16
 
16
17
  {compiled feature context from gather-feature-context}
17
18
 
18
- PIPELINE CONTINUATION When this discussion concludes (status: concluded),
19
- you MUST return to the start-feature skill and execute Step 4 (Phase Bridge).
20
- Load: skills/start-feature/references/phase-bridge.md
21
- Do not end the session after the discussion — the feature pipeline continues.
19
+ The discussion frontmatter should include:
20
+ - topic: {topic}
21
+ - status: in-progress
22
+ - work_type: feature
23
+ - date: {today}
22
24
 
23
25
  Invoke the technical-discussion skill.
24
26
  ```
27
+
28
+ When the discussion concludes, the processing skill will detect `work_type: feature` in the artifact and invoke workflow:bridge automatically.
@@ -0,0 +1,29 @@
1
+ # Invoke Research
2
+
3
+ *Reference for **[start-feature](../SKILL.md)***
4
+
5
+ ---
6
+
7
+ Invoke the [technical-research](../../technical-research/SKILL.md) skill for feature research.
8
+
9
+ ```
10
+ Research session for: {topic}
11
+ Work type: feature
12
+
13
+ Initial context from feature interview:
14
+ {compiled feature context from gather-feature-context}
15
+
16
+ Uncertainties to explore:
17
+ {list of uncertainties identified in research-gating}
18
+
19
+ Create research file: .workflows/research/{topic}.md
20
+
21
+ The research frontmatter should include:
22
+ - topic: {topic}
23
+ - work_type: feature
24
+ - date: {today}
25
+
26
+ Invoke the technical-research skill.
27
+ ```
28
+
29
+ When a research topic is parked as discussion-ready, the processing skill will offer pipeline continuation via workflow:bridge.
@@ -0,0 +1,35 @@
1
+ # Invoke Processing Skill
2
+
3
+ *Reference for **[start-feature](../SKILL.md)***
4
+
5
+ ---
6
+
7
+ Save a session bookmark for compaction recovery, then invoke the appropriate processing skill.
8
+
9
+ > *Output the next fenced block as a code block:*
10
+
11
+ ```
12
+ Saving session state for compaction recovery.
13
+ ```
14
+
15
+ #### If phase is research
16
+
17
+ ```bash
18
+ .claude/hooks/workflows/write-session-state.sh \
19
+ "{topic}" \
20
+ "skills/technical-research/SKILL.md" \
21
+ ".workflows/research/{topic}.md"
22
+ ```
23
+
24
+ → Load **[invoke-research.md](invoke-research.md)** and follow its instructions.
25
+
26
+ #### If phase is discussion
27
+
28
+ ```bash
29
+ .claude/hooks/workflows/write-session-state.sh \
30
+ "{topic}" \
31
+ "skills/technical-discussion/SKILL.md" \
32
+ ".workflows/discussion/{topic}.md"
33
+ ```
34
+
35
+ → Load **[invoke-discussion.md](invoke-discussion.md)** and follow its instructions.
@@ -0,0 +1,65 @@
1
+ # Research Gating
2
+
3
+ *Reference for **[start-feature](../SKILL.md)***
4
+
5
+ ---
6
+
7
+ Assess whether the feature has open questions that warrant research before discussion.
8
+
9
+ ## Assess Uncertainties
10
+
11
+ Based on the gathered context, evaluate if there are significant unknowns:
12
+
13
+ - **Technical unknowns**: Unfamiliar APIs, libraries, or patterns
14
+ - **Design unknowns**: Multiple viable approaches, unclear tradeoffs
15
+ - **Integration unknowns**: How existing systems will interact
16
+ - **Scope unknowns**: Requirements that need exploration
17
+
18
+ ## Present Assessment
19
+
20
+ #### If significant uncertainties exist
21
+
22
+ > *Output the next fenced block as a code block:*
23
+
24
+ ```
25
+ Research Assessment
26
+
27
+ Based on your description, there are open questions that might benefit from research:
28
+
29
+ • {uncertainty_1}
30
+ • {uncertainty_2}
31
+ • ...
32
+
33
+ Research helps explore options and tradeoffs before committing to decisions in discussion.
34
+ ```
35
+
36
+ > *Output the next fenced block as markdown (not a code block):*
37
+
38
+ ```
39
+ · · · · · · · · · · · ·
40
+ Would you like to explore these in research first?
41
+
42
+ - **`y`/`yes`** — Start with research, then continue to discussion
43
+ - **`n`/`no`** — Proceed directly to discussion
44
+ · · · · · · · · · · · ·
45
+ ```
46
+
47
+ **STOP.** Wait for user response.
48
+
49
+ #### If no significant uncertainties
50
+
51
+ Skip this step silently and proceed to discussion. Do not ask about research if the feature scope is clear.
52
+
53
+ ## Route Based on Response
54
+
55
+ #### If user chooses research
56
+
57
+ Set phase="research".
58
+
59
+ → Return to **[the skill](../SKILL.md)**.
60
+
61
+ #### If user declines research (or no uncertainties)
62
+
63
+ Set phase="discussion".
64
+
65
+ → Return to **[the skill](../SKILL.md)**.
@@ -0,0 +1,61 @@
1
+ # Topic Name and Conflict Check
2
+
3
+ *Reference for **[start-feature](../SKILL.md)***
4
+
5
+ ---
6
+
7
+ Based on the feature description, suggest a topic name:
8
+
9
+ > *Output the next fenced block as a code block:*
10
+
11
+ ```
12
+ Suggested topic name: {suggested-topic:(kebabcase)}
13
+
14
+ This will create: .workflows/discussion/{suggested-topic}.md
15
+ ```
16
+
17
+ > *Output the next fenced block as markdown (not a code block):*
18
+
19
+ ```
20
+ · · · · · · · · · · · ·
21
+ Is this name okay?
22
+
23
+ - **`y`/`yes`** — Use this name
24
+ - **`s`/`something else`** — Suggest a different name
25
+ · · · · · · · · · · · ·
26
+ ```
27
+
28
+ **STOP.** Wait for user response.
29
+
30
+ Once the topic name is confirmed, check for naming conflicts:
31
+
32
+ ```bash
33
+ ls .workflows/discussion/
34
+ ```
35
+
36
+ #### If a discussion with the same name exists
37
+
38
+ > *Output the next fenced block as markdown (not a code block):*
39
+
40
+ ```
41
+ · · · · · · · · · · · ·
42
+ A discussion named "{topic}" already exists.
43
+
44
+ - **`r`/`resume`** — Resume the existing discussion
45
+ - **`n`/`new`** — Choose a different name
46
+ · · · · · · · · · · · ·
47
+ ```
48
+
49
+ **STOP.** Wait for user response.
50
+
51
+ #### If resuming
52
+
53
+ Check the discussion status. If in-progress:
54
+
55
+ Set phase="discussion".
56
+
57
+ → Return to **[the skill](../SKILL.md)** for **Step 4**.
58
+
59
+ #### If no conflict
60
+
61
+ → Return to **[the skill](../SKILL.md)**.
@@ -1,8 +1,7 @@
1
1
  ---
2
2
  name: start-implementation
3
- description: "Start an implementation session from an existing plan. Discovers available plans, checks environment setup, and invokes the technical-implementation skill."
4
3
  disable-model-invocation: true
5
- allowed-tools: Bash(.claude/skills/start-implementation/scripts/discovery.sh), Bash(.claude/hooks/workflows/write-session-state.sh)
4
+ allowed-tools: Bash(.claude/skills/start-implementation/scripts/discovery.sh), Bash(.claude/hooks/workflows/write-session-state.sh), Bash(ls .workflows/planning/)
6
5
  hooks:
7
6
  PreToolUse:
8
7
  - hooks:
@@ -52,9 +51,13 @@ Follow these steps EXACTLY as written. Do not skip steps or combine them. Presen
52
51
 
53
52
  Invoke the `/migrate` skill and assess its output.
54
53
 
55
- **If files were updated**: STOP and wait for the user to review the changes (e.g., via `git diff`) and confirm before proceeding to Step 1. Do not continue automatically.
54
+ #### If files were updated
56
55
 
57
- **If no updates needed**: Proceed to Step 1.
56
+ **STOP.** Wait for the user to review the changes (e.g., via `git diff`) and confirm before proceeding.
57
+
58
+ #### If no updates needed
59
+
60
+ → Proceed to **Step 1**.
58
61
 
59
62
  ---
60
63
 
@@ -100,329 +103,72 @@ Parse the discovery output to understand:
100
103
  - `plans_in_progress_count` - implementations in progress
101
104
  - `plans_completed_count` - implementations completed
102
105
 
103
- **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.
106
+ **IMPORTANT**: Use ONLY this script for discovery. Do NOT run additional bash commands (ls, head, cat, etc.) to gather state.
104
107
 
105
108
  → Proceed to **Step 2**.
106
109
 
107
110
  ---
108
111
 
109
- ## Step 2: Route Based on Scenario
110
-
111
- Use `state.scenario` from the discovery output to determine the path:
112
-
113
- #### If scenario is "no_plans"
112
+ ## Step 2: Determine Mode
114
113
 
115
- No plans exist yet.
114
+ Check for arguments: work_type = `$0`, topic = `$1`
116
115
 
117
- > *Output the next fenced block as a code block:*
116
+ #### If work_type and topic are both provided
118
117
 
119
- ```
120
- Implementation Overview
121
-
122
- No plans found in .workflows/planning/
118
+ → Proceed to **Step 3**.
123
119
 
124
- The implementation phase requires a plan.
125
- Run /start-planning first to create a plan from a specification.
126
- ```
120
+ #### If work_type is provided without topic
127
121
 
128
- **STOP.** Do not proceed — terminal condition.
122
+ Store work_type for the handoff.
129
123
 
130
- #### If scenario is "single_plan" or "multiple_plans"
124
+ Proceed to **Step 4**.
131
125
 
132
- Plans exist.
126
+ #### If neither is provided
133
127
 
134
- → Proceed to **Step 3** to present options.
128
+ → Proceed to **Step 4**.
135
129
 
136
130
  ---
137
131
 
138
- ## Step 3: Present Plans and Select
139
-
140
- Present all discovered plans. Classify each plan into one of three categories based on its state.
141
-
142
- **Classification logic:**
143
-
144
- A plan is **Implementable** if:
145
- - It has `status: concluded` AND all deps are satisfied (`deps_satisfied: true` or no deps) AND no tracking file or tracking `status: not-started`, OR
146
- - It has an implementation tracking file with `status: in-progress`
147
-
148
- A plan is **Implemented** if:
149
- - It has an implementation tracking file with `status: completed`
150
-
151
- A plan is **Not implementable** if:
152
- - It has `status: concluded` but deps are NOT satisfied (blocking deps exist)
153
- - It has `status: planning` or other non-concluded status
154
- - It has unresolved deps (`has_unresolved_deps: true`)
155
-
156
- **Present the full state:**
157
-
158
- Show implementable and implemented plans as numbered tree items.
159
-
160
- > *Output the next fenced block as a code block:*
161
-
162
- ```
163
- Implementation Overview
164
-
165
- {N} plans found. {M} implementations in progress.
166
-
167
- 1. {topic:(titlecase)}
168
- └─ Plan: {plan_status:[concluded]} ({format})
169
- └─ Implementation: @if(has_implementation) {impl_status:[in-progress|completed]} @else (not started) @endif
170
-
171
- 2. ...
172
- ```
173
-
174
- **Tree rules:**
175
-
176
- Implementable:
177
- - Implementation `status: in-progress` → `Implementation: in-progress (Phase N, Task M)`
178
- - Concluded plan, deps met, not started → `Implementation: (not started)`
179
-
180
- Implemented:
181
- - Implementation `status: completed` → `Implementation: completed`
182
-
183
- **Ordering:**
184
- 1. Implementable first: in-progress, then new (foundational before dependent)
185
- 2. Implemented next: completed
186
- 3. Not implementable last (separate block below)
187
-
188
- Numbering is sequential across Implementable and Implemented. Omit any section entirely if it has no entries.
189
-
190
- **If non-implementable plans exist**, show them in a separate code block:
191
-
192
- > *Output the next fenced block as a code block:*
193
-
194
- ```
195
- Plans not ready for implementation:
196
- These plans are either still in progress or have unresolved
197
- dependencies that must be addressed first.
198
-
199
- • advanced-features (blocked by core-features:core-2-3)
200
- • reporting (in-progress)
201
- ```
202
-
203
- > *Output the next fenced block as a code block:*
204
-
205
- ```
206
- If a blocked dependency has been resolved outside this workflow,
207
- name the plan and the dependency to unblock it.
208
- ```
209
-
210
- **Key/Legend** — show only statuses that appear in the current display. No `---` separator before this section.
211
-
212
- > *Output the next fenced block as a code block:*
213
-
214
- ```
215
- Key:
216
-
217
- Implementation status:
218
- in-progress — work is ongoing
219
- completed — all tasks implemented
220
-
221
- Blocking reason:
222
- blocked — depends on another plan's task
223
- in-progress — plan not yet concluded
224
- ```
225
-
226
- **Then prompt based on what's actionable:**
227
-
228
- **If single implementable plan and no implemented plans (auto-select):**
229
-
230
- > *Output the next fenced block as a code block:*
231
-
232
- ```
233
- Automatically proceeding with "{topic:(titlecase)}".
234
- ```
235
-
236
- → Proceed directly to **Step 4**.
237
-
238
- **If nothing selectable (no implementable or implemented):**
239
-
240
- Show "not ready" block only (with unblock hint above).
241
-
242
- > *Output the next fenced block as a code block:*
243
-
244
- ```
245
- Implementation Overview
246
-
247
- No implementable plans found.
248
-
249
- Complete blocking dependencies first, or finish plans still
250
- in progress with /start-planning. Then re-run /start-implementation.
251
- ```
252
-
253
- **STOP.** Do not proceed — terminal condition.
254
-
255
- **Otherwise (multiple selectable plans, or implemented plans exist):**
256
-
257
- The verb in the menu depends on the implementation state:
258
- - Implementation in-progress → **Continue**
259
- - Not yet started → **Start**
260
- - Completed → **Re-review**
261
-
262
- > *Output the next fenced block as markdown (not a code block):*
132
+ ## Step 3: Validate Plan
263
133
 
264
- ```
265
- · · · · · · · · · · · ·
266
- 1. Continue "Billing" — in-progress (Phase 2, Task 3)
267
- 2. Start "Core Features" — not yet started
268
- 3. Re-review "User Auth" — completed
269
-
270
- Select an option (enter number):
271
- · · · · · · · · · · · ·
272
- ```
273
-
274
- Recreate with actual topics and states from discovery.
134
+ Load **[validate-plan.md](references/validate-plan.md)** and follow its instructions as written.
275
135
 
276
- **STOP.** Wait for user response.
277
-
278
- #### If the user requests an unblock
279
-
280
- 1. Identify the plan and the specific dependency
281
- 2. Confirm with the user which dependency to mark as satisfied
282
- 3. Update the plan's `external_dependencies` frontmatter: set `state` to `satisfied_externally`
283
- 4. Commit the change
284
- 5. Re-run classification and re-present Step 3
285
-
286
- → Based on user choice, proceed to **Step 4**.
136
+ Proceed to **Step 6**.
287
137
 
288
138
  ---
289
139
 
290
- ## Step 4: Check External Dependencies
291
-
292
- **This step is a confirmation gate.** Dependencies have been pre-analyzed by the discovery script.
293
-
294
- After the plan is selected:
295
-
296
- 1. **Check the plan's `external_deps` and `dependency_resolution`** from the discovery output
297
-
298
- #### If all deps satisfied (or no deps)
299
-
300
- > *Output the next fenced block as a code block:*
301
-
302
- ```
303
- External dependencies satisfied.
304
- ```
305
-
306
- → Proceed to **Step 5**.
307
-
308
- #### If any deps are blocking
309
-
310
- This should not normally happen for plans classified as "Implementable" in Step 3. However, as an escape hatch:
311
-
312
- > *Output the next fenced block as a code block:*
313
-
314
- ```
315
- Missing Dependencies
316
-
317
- Unresolved (not yet planned):
318
- • {topic}: {description}
319
- No plan exists. Create with /start-planning or mark as
320
- satisfied externally.
321
-
322
- Incomplete (planned but not implemented):
323
- • {topic}: {plan}:{task-id} not yet completed
324
- This task must be completed first.
325
- ```
326
-
327
- > *Output the next fenced block as markdown (not a code block):*
328
-
329
- ```
330
- · · · · · · · · · · · ·
331
- - **`i`/`implement`** — Implement the blocking dependencies first
332
- - **`l`/`link`** — Run /link-dependencies to wire up recently completed plans
333
- - **`s`/`satisfied`** — Mark a dependency as satisfied externally
334
- · · · · · · · · · · · ·
335
- ```
336
-
337
- **STOP.** Wait for user response.
140
+ ## Step 4: Route Based on Scenario
338
141
 
339
- #### Escape Hatch
340
-
341
- If the user says a dependency has been implemented outside the workflow:
342
-
343
- 1. Ask which dependency to mark as satisfied
344
- 2. Update the plan frontmatter: Change the dependency's `state` to `satisfied_externally`
345
- 3. Commit the change
346
- 4. Re-check dependencies
142
+ Load **[route-scenario.md](references/route-scenario.md)** and follow its instructions.
347
143
 
348
144
  → Proceed to **Step 5**.
349
145
 
350
146
  ---
351
147
 
352
- ## Step 5: Check Environment Setup
353
-
354
- > **IMPORTANT**: This step is for **information gathering only**. Do NOT execute any setup commands at this stage. The skill contains instructions for handling environment setup.
355
-
356
- Use the `environment` section from the discovery output:
357
-
358
- **If `setup_file_exists: true` and `requires_setup: false`:**
359
-
360
- > *Output the next fenced block as a code block:*
361
-
362
- ```
363
- Environment: No special setup required.
364
- ```
365
- → Proceed to **Step 6**.
366
-
367
- **If `setup_file_exists: true` and `requires_setup: true`:**
368
-
369
- > *Output the next fenced block as a code block:*
370
-
371
- ```
372
- Environment setup file found: .workflows/environment-setup.md
373
- ```
374
- → Proceed to **Step 6**.
148
+ ## Step 5: Present Plans and Select
375
149
 
376
- **If `setup_file_exists: false` or `requires_setup: unknown`:**
150
+ Load **[display-plans.md](references/display-plans.md)** and follow its instructions as written.
377
151
 
378
- > *Output the next fenced block as a code block:*
379
-
380
- ```
381
- Are there any environment setup instructions I should follow before implementation?
382
- (Or "none" if no special setup is needed)
383
- ```
384
-
385
- **STOP.** Wait for user response.
386
-
387
- - If the user provides instructions, save them to `.workflows/environment-setup.md`, commit and push
388
- - If the user says no/none, create `.workflows/environment-setup.md` with "No special setup required." and commit
389
-
390
- → Proceed to **Step 6**.
152
+ Proceed to **Step 6** with selected topic.
391
153
 
392
154
  ---
393
155
 
394
- ## Step 6: Invoke the Skill
156
+ ## Step 6: Check Dependencies
395
157
 
396
- Before invoking the processing skill, save a session bookmark.
158
+ Load **[check-dependencies.md](references/check-dependencies.md)** and follow its instructions as written.
397
159
 
398
- > *Output the next fenced block as a code block:*
160
+ Proceed to **Step 7**.
399
161
 
400
- ```
401
- Saving session state so Claude can pick up where it left off if the conversation is compacted.
402
- ```
162
+ ---
403
163
 
404
- ```bash
405
- .claude/hooks/workflows/write-session-state.sh \
406
- "{topic}" \
407
- "skills/technical-implementation/SKILL.md" \
408
- ".workflows/implementation/{topic}/tracking.md"
409
- ```
164
+ ## Step 7: Check Environment
410
165
 
411
- After completing the steps above, this skill's purpose is fulfilled.
166
+ Load **[environment-check.md](references/environment-check.md)** and follow its instructions as written.
412
167
 
413
- Invoke the [technical-implementation](../technical-implementation/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.
168
+ Proceed to **Step 8**.
414
169
 
415
- **Example handoff:**
416
- ```
417
- Implementation session for: {topic}
418
- Plan: .workflows/planning/{topic}/plan.md
419
- Format: {format}
420
- Plan ID: {plan_id} (if applicable)
421
- Specification: {specification} (exists: {true|false})
422
- Implementation tracking: {exists | new} (status: {in-progress | not-started | completed})
170
+ ---
423
171
 
424
- Dependencies: {All satisfied | List any notes}
425
- Environment: {Setup required | No special setup required}
172
+ ## Step 8: Invoke the Skill
426
173
 
427
- Invoke the technical-implementation skill.
428
- ```
174
+ Load **[invoke-skill.md](references/invoke-skill.md)** and follow its instructions as written.
@@ -0,0 +1,65 @@
1
+ # Check Dependencies
2
+
3
+ *Reference for **[start-implementation](../SKILL.md)***
4
+
5
+ ---
6
+
7
+ **This step is a confirmation gate.** Dependencies have been pre-analyzed by the discovery script.
8
+
9
+ After the plan is selected:
10
+
11
+ 1. **Check the plan's `external_deps` and `dependency_resolution`** from the discovery output
12
+
13
+ #### If all deps satisfied (or no deps)
14
+
15
+ > *Output the next fenced block as a code block:*
16
+
17
+ ```
18
+ External dependencies satisfied.
19
+ ```
20
+
21
+ → Return to **[the skill](../SKILL.md)**.
22
+
23
+ #### If any deps are blocking
24
+
25
+ This should not normally happen for plans classified as "Implementable" in display-plans.md. However, as an escape hatch:
26
+
27
+ > *Output the next fenced block as a code block:*
28
+
29
+ ```
30
+ Missing Dependencies
31
+
32
+ Unresolved (not yet planned):
33
+ • {topic}: {description}
34
+ No plan exists. Create with /start-planning or mark as
35
+ satisfied externally.
36
+
37
+ Incomplete (planned but not implemented):
38
+ • {topic}: {plan}:{task-id} not yet completed
39
+ This task must be completed first.
40
+ ```
41
+
42
+ > *Output the next fenced block as markdown (not a code block):*
43
+
44
+ ```
45
+ · · · · · · · · · · · ·
46
+ - **`i`/`implement`** — Implement the blocking dependencies first
47
+ - **`l`/`link`** — Run /link-dependencies to wire up recently completed plans
48
+ - **`s`/`satisfied`** — Mark a dependency as satisfied externally
49
+ · · · · · · · · · · · ·
50
+ ```
51
+
52
+ **STOP.** Wait for user response.
53
+
54
+ ---
55
+
56
+ ## Escape Hatch
57
+
58
+ If the user says a dependency has been implemented outside the workflow:
59
+
60
+ 1. Ask which dependency to mark as satisfied
61
+ 2. Update the plan frontmatter: Change the dependency's `state` to `satisfied_externally`
62
+ 3. Commit the change
63
+ 4. Re-check dependencies
64
+
65
+ → Return to **[the skill](../SKILL.md)**.