@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.
- package/README.md +5 -20
- package/hooks/workflows/compact-recovery.sh +3 -23
- package/hooks/workflows/write-session-state.sh +2 -26
- package/package.json +1 -1
- package/skills/link-dependencies/SKILL.md +0 -1
- package/skills/migrate/SKILL.md +0 -1
- package/skills/migrate/scripts/migrations/013-discussion-work-type.sh +76 -0
- package/skills/migrate/scripts/migrations/014-specification-work-type.sh +76 -0
- package/skills/migrate/scripts/migrations/015-plan-work-type.sh +76 -0
- package/skills/start-bugfix/SKILL.md +80 -0
- package/skills/start-bugfix/references/gather-bug-context.md +75 -0
- package/skills/start-bugfix/references/invoke-investigation.md +46 -0
- package/skills/start-bugfix/references/topic-name-check.md +59 -0
- package/skills/start-discussion/SKILL.md +51 -46
- package/skills/start-discussion/references/gather-context.md +54 -10
- package/skills/start-discussion/references/handle-selection.md +14 -4
- package/skills/start-discussion/references/invoke-skill.md +71 -3
- package/skills/start-discussion/references/research-analysis.md +2 -0
- package/skills/start-discussion/references/route-scenario.md +39 -0
- package/skills/start-discussion/references/validate-topic.md +46 -0
- package/skills/start-discussion/scripts/discovery.sh +3 -0
- package/skills/start-feature/SKILL.md +28 -84
- package/skills/start-feature/references/invoke-discussion.md +8 -4
- package/skills/start-feature/references/invoke-research.md +29 -0
- package/skills/start-feature/references/invoke-skill.md +35 -0
- package/skills/start-feature/references/research-gating.md +65 -0
- package/skills/start-feature/references/topic-name-check.md +61 -0
- package/skills/start-implementation/SKILL.md +35 -289
- package/skills/start-implementation/references/check-dependencies.md +65 -0
- package/skills/start-implementation/references/display-plans.md +159 -0
- package/skills/start-implementation/references/environment-check.md +45 -0
- package/skills/start-implementation/references/invoke-skill.md +42 -0
- package/skills/start-implementation/references/route-scenario.md +32 -0
- package/skills/start-implementation/references/validate-plan.md +45 -0
- package/skills/start-implementation/scripts/discovery.sh +3 -0
- package/skills/start-investigation/SKILL.md +145 -0
- package/skills/start-investigation/references/gather-context-fresh.md +72 -0
- package/skills/start-investigation/references/gather-context.md +31 -0
- package/skills/start-investigation/references/invoke-skill.md +54 -0
- package/skills/start-investigation/references/route-scenario.md +69 -0
- package/skills/start-investigation/references/validate-investigation.md +46 -0
- package/skills/start-investigation/scripts/discovery.sh +92 -0
- package/skills/start-planning/SKILL.md +32 -72
- package/skills/start-planning/references/cross-cutting-context.md +5 -5
- package/skills/start-planning/references/invoke-skill.md +27 -4
- package/skills/start-planning/references/route-plan-state.md +30 -0
- package/skills/start-planning/references/route-scenario.md +38 -0
- package/skills/start-planning/references/validate-spec.md +47 -0
- package/skills/start-planning/scripts/discovery.sh +7 -0
- package/skills/start-research/SKILL.md +17 -6
- package/skills/start-research/references/invoke-skill.md +3 -0
- package/skills/start-review/SKILL.md +32 -60
- package/skills/start-review/references/determine-review-version.md +24 -0
- package/skills/start-review/references/display-plans.md +2 -2
- package/skills/start-review/references/route-scenario.md +74 -0
- package/skills/start-review/references/select-plans.md +8 -6
- package/skills/start-review/references/validate-artifacts.md +63 -0
- package/skills/start-review/scripts/discovery.sh +3 -0
- package/skills/start-specification/SKILL.md +44 -20
- package/skills/start-specification/references/check-existing-spec.md +57 -0
- package/skills/start-specification/references/check-prerequisites.md +15 -0
- package/skills/start-specification/references/handoffs/continue-concluded.md +3 -0
- package/skills/start-specification/references/handoffs/continue.md +3 -0
- package/skills/start-specification/references/handoffs/create-with-incorporation.md +3 -0
- package/skills/start-specification/references/handoffs/create.md +3 -0
- package/skills/start-specification/references/handoffs/unify-with-incorporation.md +3 -0
- package/skills/start-specification/references/handoffs/unify.md +3 -0
- package/skills/start-specification/references/invoke-skill-bridge.md +74 -0
- package/skills/start-specification/references/route-scenario.md +23 -0
- package/skills/start-specification/references/validate-source.md +91 -0
- package/skills/start-specification/scripts/discovery.sh +6 -0
- package/skills/status/SKILL.md +6 -3
- package/skills/status/scripts/discovery.sh +9 -0
- package/skills/technical-discussion/SKILL.md +15 -4
- package/skills/technical-discussion/references/template.md +9 -1
- package/skills/technical-implementation/SKILL.md +24 -1
- package/skills/technical-implementation/references/analysis-loop.md +4 -4
- package/skills/technical-implementation/references/task-loop.md +2 -2
- package/skills/technical-investigation/SKILL.md +239 -0
- package/skills/technical-investigation/references/analysis-patterns.md +181 -0
- package/skills/technical-investigation/references/symptom-gathering.md +164 -0
- package/skills/technical-investigation/references/template.md +164 -0
- package/skills/technical-planning/SKILL.md +24 -1
- package/skills/technical-planning/references/author-tasks.md +16 -16
- package/skills/technical-planning/references/define-tasks.md +2 -2
- package/skills/technical-planning/references/output-formats/tick/authoring.md +3 -15
- package/skills/technical-planning/references/plan-construction.md +11 -30
- package/skills/technical-planning/references/plan-review.md +3 -3
- package/skills/technical-research/SKILL.md +38 -2
- package/skills/technical-review/SKILL.md +1 -2
- package/skills/technical-review/references/review-actions-loop.md +43 -1
- package/skills/technical-specification/SKILL.md +1 -2
- package/skills/technical-specification/references/spec-completion.md +34 -6
- package/skills/technical-specification/references/spec-construction.md +1 -1
- package/skills/technical-specification/references/spec-review.md +5 -5
- package/skills/view-plan/SKILL.md +0 -1
- package/skills/workflow/bridge/SKILL.md +82 -0
- package/skills/workflow/bridge/references/bugfix-continuation.md +59 -0
- package/skills/workflow/bridge/references/feature-continuation.md +60 -0
- package/skills/workflow/bridge/references/greenfield-continuation.md +224 -0
- package/skills/workflow/bridge/scripts/discovery.sh +512 -0
- package/skills/workflow/start/SKILL.md +97 -0
- package/skills/workflow/start/references/bugfix-routing.md +117 -0
- package/skills/workflow/start/references/feature-routing.md +117 -0
- package/skills/workflow/start/references/greenfield-routing.md +140 -0
- package/skills/workflow/start/references/work-type-selection.md +83 -0
- package/skills/workflow/start/scripts/discovery.sh +577 -0
- package/skills/begin-implementation/SKILL.md +0 -162
- package/skills/begin-planning/SKILL.md +0 -92
- package/skills/begin-review/SKILL.md +0 -90
- package/skills/continue-feature/SKILL.md +0 -186
- package/skills/continue-feature/references/detect-phase.md +0 -99
- package/skills/continue-feature/references/invoke-implementation.md +0 -43
- package/skills/continue-feature/references/invoke-planning.md +0 -43
- package/skills/continue-feature/references/invoke-review.md +0 -43
- package/skills/continue-feature/references/invoke-specification.md +0 -55
- package/skills/continue-feature/references/phase-bridge.md +0 -57
- package/skills/continue-feature/scripts/discovery.sh +0 -233
- 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
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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
|
-
|
|
54
|
+
#### If files were updated
|
|
56
55
|
|
|
57
|
-
**
|
|
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
|
|
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:
|
|
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
|
-
|
|
114
|
+
Check for arguments: work_type = `$0`, topic = `$1`
|
|
116
115
|
|
|
117
|
-
|
|
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
|
-
|
|
125
|
-
Run /start-planning first to create a plan from a specification.
|
|
126
|
-
```
|
|
120
|
+
#### If work_type is provided without topic
|
|
127
121
|
|
|
128
|
-
|
|
122
|
+
Store work_type for the handoff.
|
|
129
123
|
|
|
130
|
-
|
|
124
|
+
→ Proceed to **Step 4**.
|
|
131
125
|
|
|
132
|
-
|
|
126
|
+
#### If neither is provided
|
|
133
127
|
|
|
134
|
-
→ Proceed to **Step
|
|
128
|
+
→ Proceed to **Step 4**.
|
|
135
129
|
|
|
136
130
|
---
|
|
137
131
|
|
|
138
|
-
## Step 3:
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
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:
|
|
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
|
-
**
|
|
150
|
+
Load **[display-plans.md](references/display-plans.md)** and follow its instructions as written.
|
|
377
151
|
|
|
378
|
-
|
|
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:
|
|
156
|
+
## Step 6: Check Dependencies
|
|
395
157
|
|
|
396
|
-
|
|
158
|
+
Load **[check-dependencies.md](references/check-dependencies.md)** and follow its instructions as written.
|
|
397
159
|
|
|
398
|
-
|
|
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
|
-
|
|
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
|
-
|
|
166
|
+
Load **[environment-check.md](references/environment-check.md)** and follow its instructions as written.
|
|
412
167
|
|
|
413
|
-
|
|
168
|
+
→ Proceed to **Step 8**.
|
|
414
169
|
|
|
415
|
-
|
|
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
|
-
|
|
425
|
-
Environment: {Setup required | No special setup required}
|
|
172
|
+
## Step 8: Invoke the Skill
|
|
426
173
|
|
|
427
|
-
|
|
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)**.
|