@leeovery/claude-technical-workflows 2.1.42 → 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/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/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
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
# Analysis Patterns
|
|
2
|
+
|
|
3
|
+
*Reference for **[technical-investigation](../SKILL.md)***
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Techniques for tracing bugs through code.
|
|
8
|
+
|
|
9
|
+
## Code Tracing Techniques
|
|
10
|
+
|
|
11
|
+
### 1. Entry Point Identification
|
|
12
|
+
|
|
13
|
+
Start from where the user sees the problem:
|
|
14
|
+
- UI component that displays the error
|
|
15
|
+
- API endpoint that returns wrong data
|
|
16
|
+
- Background job that fails
|
|
17
|
+
- Event handler that misbehaves
|
|
18
|
+
|
|
19
|
+
Work backwards from the symptom to the source.
|
|
20
|
+
|
|
21
|
+
### 2. Data Flow Analysis
|
|
22
|
+
|
|
23
|
+
Follow the data through the system:
|
|
24
|
+
- Where does the data originate?
|
|
25
|
+
- What transformations does it undergo?
|
|
26
|
+
- Where is it stored/retrieved?
|
|
27
|
+
- What validations exist?
|
|
28
|
+
- Where does corruption or loss occur?
|
|
29
|
+
|
|
30
|
+
### 3. Control Flow Analysis
|
|
31
|
+
|
|
32
|
+
Trace the execution path:
|
|
33
|
+
- What conditions must be true to reach the bug?
|
|
34
|
+
- Are there early returns or exceptions?
|
|
35
|
+
- What state affects the flow?
|
|
36
|
+
- Are there race conditions?
|
|
37
|
+
|
|
38
|
+
### 4. Dependency Mapping
|
|
39
|
+
|
|
40
|
+
Understand what the buggy code depends on:
|
|
41
|
+
- External services (APIs, databases)
|
|
42
|
+
- Shared state (caches, session)
|
|
43
|
+
- Configuration values
|
|
44
|
+
- Other modules/components
|
|
45
|
+
|
|
46
|
+
### 5. Change Analysis
|
|
47
|
+
|
|
48
|
+
If the bug is recent:
|
|
49
|
+
- What changed recently? (git log, PRs)
|
|
50
|
+
- What was the last working version?
|
|
51
|
+
- Can you bisect to find the introducing commit?
|
|
52
|
+
|
|
53
|
+
## Common Bug Patterns
|
|
54
|
+
|
|
55
|
+
### Race Conditions
|
|
56
|
+
|
|
57
|
+
**Symptoms:**
|
|
58
|
+
- Intermittent failures
|
|
59
|
+
- Works in dev, fails in prod
|
|
60
|
+
- Related to timing or load
|
|
61
|
+
|
|
62
|
+
**Investigation:**
|
|
63
|
+
- Look for shared mutable state
|
|
64
|
+
- Check async operations
|
|
65
|
+
- Examine lock/synchronization
|
|
66
|
+
- Review concurrent access patterns
|
|
67
|
+
|
|
68
|
+
### Off-by-One Errors
|
|
69
|
+
|
|
70
|
+
**Symptoms:**
|
|
71
|
+
- Boundary cases fail
|
|
72
|
+
- Works for most inputs, fails for edge cases
|
|
73
|
+
- Array index out of bounds
|
|
74
|
+
|
|
75
|
+
**Investigation:**
|
|
76
|
+
- Check loop boundaries
|
|
77
|
+
- Examine array/string indexing
|
|
78
|
+
- Review length calculations
|
|
79
|
+
- Test boundary values explicitly
|
|
80
|
+
|
|
81
|
+
### Null/Undefined References
|
|
82
|
+
|
|
83
|
+
**Symptoms:**
|
|
84
|
+
- TypeError or NullPointerException
|
|
85
|
+
- Fails on specific data combinations
|
|
86
|
+
- Works when optional fields are present
|
|
87
|
+
|
|
88
|
+
**Investigation:**
|
|
89
|
+
- Trace where null can originate
|
|
90
|
+
- Check optional field handling
|
|
91
|
+
- Review default value assignments
|
|
92
|
+
- Examine null propagation paths
|
|
93
|
+
|
|
94
|
+
### State Corruption
|
|
95
|
+
|
|
96
|
+
**Symptoms:**
|
|
97
|
+
- Wrong values appear unexpectedly
|
|
98
|
+
- State doesn't match expectations
|
|
99
|
+
- Problem persists across sessions
|
|
100
|
+
|
|
101
|
+
**Investigation:**
|
|
102
|
+
- Map all mutation points
|
|
103
|
+
- Check for unintended side effects
|
|
104
|
+
- Review state initialization
|
|
105
|
+
- Examine persistence/hydration
|
|
106
|
+
|
|
107
|
+
### Memory/Resource Leaks
|
|
108
|
+
|
|
109
|
+
**Symptoms:**
|
|
110
|
+
- Gradual degradation over time
|
|
111
|
+
- OOM errors after extended use
|
|
112
|
+
- Performance slowdown
|
|
113
|
+
|
|
114
|
+
**Investigation:**
|
|
115
|
+
- Check cleanup/disposal code
|
|
116
|
+
- Review subscription/listener patterns
|
|
117
|
+
- Examine caching behavior
|
|
118
|
+
- Profile memory over time
|
|
119
|
+
|
|
120
|
+
## Investigation Commands
|
|
121
|
+
|
|
122
|
+
### Finding Related Code
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
# Find all references to a function
|
|
126
|
+
grep -r "functionName" --include="*.ts"
|
|
127
|
+
|
|
128
|
+
# Find recent changes to a file
|
|
129
|
+
git log -p --follow -- path/to/file.ts
|
|
130
|
+
|
|
131
|
+
# Find commits mentioning a pattern
|
|
132
|
+
git log --all --grep="pattern"
|
|
133
|
+
|
|
134
|
+
# Find who changed a line
|
|
135
|
+
git blame path/to/file.ts
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Comparing States
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
# Diff between working and broken
|
|
142
|
+
git diff good-commit bad-commit -- path/
|
|
143
|
+
|
|
144
|
+
# Find introducing commit
|
|
145
|
+
git bisect start
|
|
146
|
+
git bisect bad HEAD
|
|
147
|
+
git bisect good known-good-commit
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## Documentation Tips
|
|
151
|
+
|
|
152
|
+
### Recording Code Traces
|
|
153
|
+
|
|
154
|
+
Format traces clearly:
|
|
155
|
+
```
|
|
156
|
+
src/auth/login.ts:45 - validateCredentials() called
|
|
157
|
+
→ src/auth/validate.ts:12 - checks password hash
|
|
158
|
+
→ src/db/users.ts:78 - queries user record
|
|
159
|
+
→ BUG: returns null when user.status is 'pending'
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### Capturing Dead Ends
|
|
163
|
+
|
|
164
|
+
Dead ends are valuable. Document them:
|
|
165
|
+
```
|
|
166
|
+
### Hypothesis: Cache invalidation issue
|
|
167
|
+
Investigated: src/cache/userCache.ts
|
|
168
|
+
Finding: Cache is correctly invalidated on user update
|
|
169
|
+
Ruled out: Caching is not the cause
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### Noting Environmental Factors
|
|
173
|
+
|
|
174
|
+
Record environment-specific findings:
|
|
175
|
+
```
|
|
176
|
+
### Environment Observations
|
|
177
|
+
- Bug occurs in production but not staging
|
|
178
|
+
- Difference: Production uses connection pooling
|
|
179
|
+
- Staging: Single connection per request
|
|
180
|
+
- This affects transaction isolation
|
|
181
|
+
```
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# Symptom Gathering
|
|
2
|
+
|
|
3
|
+
*Reference for **[technical-investigation](../SKILL.md)***
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Questions to ask when gathering bug symptoms.
|
|
8
|
+
|
|
9
|
+
## Core Questions
|
|
10
|
+
|
|
11
|
+
### What's broken?
|
|
12
|
+
|
|
13
|
+
- What is the expected behavior?
|
|
14
|
+
- What is the actual behavior?
|
|
15
|
+
- How significant is the gap?
|
|
16
|
+
|
|
17
|
+
### How is it manifesting?
|
|
18
|
+
|
|
19
|
+
- What error messages appear?
|
|
20
|
+
- What UI/UX issues are visible?
|
|
21
|
+
- Are there performance symptoms?
|
|
22
|
+
- Is data affected (corrupted, lost, wrong)?
|
|
23
|
+
|
|
24
|
+
### When did it start?
|
|
25
|
+
|
|
26
|
+
- When was the bug first noticed?
|
|
27
|
+
- Was there a recent deployment or change?
|
|
28
|
+
- Did something trigger it (load spike, new feature)?
|
|
29
|
+
|
|
30
|
+
### Who is affected?
|
|
31
|
+
|
|
32
|
+
- All users or a subset?
|
|
33
|
+
- Specific user types/roles?
|
|
34
|
+
- Specific regions or environments?
|
|
35
|
+
|
|
36
|
+
## Reproduction Questions
|
|
37
|
+
|
|
38
|
+
### Can you reproduce it?
|
|
39
|
+
|
|
40
|
+
- Always, sometimes, or rarely?
|
|
41
|
+
- Are there specific conditions required?
|
|
42
|
+
- Does reproduction require specific data?
|
|
43
|
+
|
|
44
|
+
### What are the exact steps?
|
|
45
|
+
|
|
46
|
+
1. What is the starting state?
|
|
47
|
+
2. What action triggers the bug?
|
|
48
|
+
3. What happens immediately after?
|
|
49
|
+
4. How does the user know it's wrong?
|
|
50
|
+
|
|
51
|
+
### What are the preconditions?
|
|
52
|
+
|
|
53
|
+
- User state (logged in, permissions)
|
|
54
|
+
- Data state (specific records, configurations)
|
|
55
|
+
- Application state (cached data, session)
|
|
56
|
+
- Time-based (time of day, day of week)
|
|
57
|
+
|
|
58
|
+
## Environment Questions
|
|
59
|
+
|
|
60
|
+
### Where does it occur?
|
|
61
|
+
|
|
62
|
+
- Production, staging, development?
|
|
63
|
+
- Specific servers or regions?
|
|
64
|
+
- All instances or specific ones?
|
|
65
|
+
|
|
66
|
+
### What platform?
|
|
67
|
+
|
|
68
|
+
- Browser type and version
|
|
69
|
+
- Operating system
|
|
70
|
+
- Mobile vs desktop
|
|
71
|
+
- App version (if applicable)
|
|
72
|
+
|
|
73
|
+
### What are the external factors?
|
|
74
|
+
|
|
75
|
+
- Network conditions
|
|
76
|
+
- Third-party service status
|
|
77
|
+
- Database load
|
|
78
|
+
- Recent infrastructure changes
|
|
79
|
+
|
|
80
|
+
## Impact Questions
|
|
81
|
+
|
|
82
|
+
### How severe is this?
|
|
83
|
+
|
|
84
|
+
- **Critical**: System down, data loss, security breach
|
|
85
|
+
- **High**: Major feature broken, many users affected
|
|
86
|
+
- **Medium**: Feature degraded, workaround exists
|
|
87
|
+
- **Low**: Minor issue, few users affected
|
|
88
|
+
|
|
89
|
+
### What is the business impact?
|
|
90
|
+
|
|
91
|
+
- Revenue affected?
|
|
92
|
+
- Customer trust impacted?
|
|
93
|
+
- Compliance implications?
|
|
94
|
+
- Support ticket volume?
|
|
95
|
+
|
|
96
|
+
### What is the scope?
|
|
97
|
+
|
|
98
|
+
- How many users affected?
|
|
99
|
+
- How often does it occur?
|
|
100
|
+
- Is it getting worse?
|
|
101
|
+
|
|
102
|
+
## Reference Gathering
|
|
103
|
+
|
|
104
|
+
### Do you have error logs?
|
|
105
|
+
|
|
106
|
+
- Application logs
|
|
107
|
+
- Server logs
|
|
108
|
+
- Browser console
|
|
109
|
+
- Network requests
|
|
110
|
+
|
|
111
|
+
### Are there error tracking entries?
|
|
112
|
+
|
|
113
|
+
- Sentry or similar
|
|
114
|
+
- Stack traces
|
|
115
|
+
- Frequency data
|
|
116
|
+
- User sessions
|
|
117
|
+
|
|
118
|
+
### Any relevant support tickets?
|
|
119
|
+
|
|
120
|
+
- Customer reports
|
|
121
|
+
- Internal reports
|
|
122
|
+
- Related issues
|
|
123
|
+
- Historical context
|
|
124
|
+
|
|
125
|
+
### Screenshots or recordings?
|
|
126
|
+
|
|
127
|
+
- Visual of the bug
|
|
128
|
+
- Steps leading to it
|
|
129
|
+
- Error states
|
|
130
|
+
- Expected vs actual comparison
|
|
131
|
+
|
|
132
|
+
## Follow-up Questions
|
|
133
|
+
|
|
134
|
+
### What have you already tried?
|
|
135
|
+
|
|
136
|
+
- Debugging attempts
|
|
137
|
+
- Hypotheses tested
|
|
138
|
+
- Workarounds attempted
|
|
139
|
+
|
|
140
|
+
### What does your team suspect?
|
|
141
|
+
|
|
142
|
+
- Initial hypotheses
|
|
143
|
+
- Areas of concern
|
|
144
|
+
- Recent changes that might be related
|
|
145
|
+
|
|
146
|
+
### Any time sensitivity?
|
|
147
|
+
|
|
148
|
+
- Is there a deadline?
|
|
149
|
+
- Is there a workaround for now?
|
|
150
|
+
- How urgent is the fix?
|
|
151
|
+
|
|
152
|
+
## Question Order
|
|
153
|
+
|
|
154
|
+
Start broad, then narrow:
|
|
155
|
+
|
|
156
|
+
1. **Problem description** - What's wrong?
|
|
157
|
+
2. **Impact assessment** - How bad is it?
|
|
158
|
+
3. **Reproduction** - Can we trigger it?
|
|
159
|
+
4. **Environment** - Where does it happen?
|
|
160
|
+
5. **History** - When did it start?
|
|
161
|
+
6. **References** - What do we have to work with?
|
|
162
|
+
7. **Hypotheses** - What do you suspect?
|
|
163
|
+
|
|
164
|
+
Don't ask all questions upfront. Start with the most important, gather initial context, then drill down based on responses.
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# Investigation Template
|
|
2
|
+
|
|
3
|
+
*Reference for **[technical-investigation](../SKILL.md)***
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Use this structure for investigation documents.
|
|
8
|
+
|
|
9
|
+
```markdown
|
|
10
|
+
---
|
|
11
|
+
topic: {topic}
|
|
12
|
+
status: in-progress
|
|
13
|
+
work_type: bugfix
|
|
14
|
+
date: {YYYY-MM-DD}
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Investigation: {Topic Title}
|
|
18
|
+
|
|
19
|
+
## Symptoms
|
|
20
|
+
|
|
21
|
+
### Problem Description
|
|
22
|
+
|
|
23
|
+
**Expected behavior:**
|
|
24
|
+
{What should happen}
|
|
25
|
+
|
|
26
|
+
**Actual behavior:**
|
|
27
|
+
{What actually happens}
|
|
28
|
+
|
|
29
|
+
### Manifestation
|
|
30
|
+
|
|
31
|
+
{How the bug surfaces:}
|
|
32
|
+
- Error messages
|
|
33
|
+
- UI glitches
|
|
34
|
+
- Data corruption
|
|
35
|
+
- Performance issues
|
|
36
|
+
- etc.
|
|
37
|
+
|
|
38
|
+
### Reproduction Steps
|
|
39
|
+
|
|
40
|
+
1. {Precondition or setup}
|
|
41
|
+
2. {Action that triggers the bug}
|
|
42
|
+
3. {Observe the result}
|
|
43
|
+
|
|
44
|
+
**Reproducibility:** {Always / Sometimes / Intermittent}
|
|
45
|
+
|
|
46
|
+
### Environment
|
|
47
|
+
|
|
48
|
+
- **Affected environments:** {Production, staging, local}
|
|
49
|
+
- **Browser/platform:** {If relevant}
|
|
50
|
+
- **User conditions:** {Specific user states, permissions, data}
|
|
51
|
+
|
|
52
|
+
### Impact
|
|
53
|
+
|
|
54
|
+
- **Severity:** {Critical / High / Medium / Low}
|
|
55
|
+
- **Scope:** {Number of users affected}
|
|
56
|
+
- **Business impact:** {Revenue, trust, compliance}
|
|
57
|
+
|
|
58
|
+
### References
|
|
59
|
+
|
|
60
|
+
- {Link to error tracking (Sentry, etc.)}
|
|
61
|
+
- {Link to support tickets}
|
|
62
|
+
- {Link to relevant logs}
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Analysis
|
|
67
|
+
|
|
68
|
+
### Initial Hypotheses
|
|
69
|
+
|
|
70
|
+
{What the user or team initially suspected}
|
|
71
|
+
|
|
72
|
+
### Code Trace
|
|
73
|
+
|
|
74
|
+
**Entry point:**
|
|
75
|
+
{Where the problematic flow starts}
|
|
76
|
+
|
|
77
|
+
**Execution path:**
|
|
78
|
+
1. {file:line - description}
|
|
79
|
+
2. {file:line - description}
|
|
80
|
+
3. {file:line - description}
|
|
81
|
+
|
|
82
|
+
**Key files involved:**
|
|
83
|
+
- {file} - {role in the bug}
|
|
84
|
+
- {file} - {role in the bug}
|
|
85
|
+
|
|
86
|
+
### Root Cause
|
|
87
|
+
|
|
88
|
+
{Clear, precise statement of what causes the bug}
|
|
89
|
+
|
|
90
|
+
**Why this happens:**
|
|
91
|
+
{Explanation of the underlying issue}
|
|
92
|
+
|
|
93
|
+
### Contributing Factors
|
|
94
|
+
|
|
95
|
+
- {Factor 1 - why it enables the bug}
|
|
96
|
+
- {Factor 2 - why it enables the bug}
|
|
97
|
+
|
|
98
|
+
### Why It Wasn't Caught
|
|
99
|
+
|
|
100
|
+
- {Testing gap}
|
|
101
|
+
- {Edge case not considered}
|
|
102
|
+
- {Recent change that introduced it}
|
|
103
|
+
|
|
104
|
+
### Blast Radius
|
|
105
|
+
|
|
106
|
+
**Directly affected:**
|
|
107
|
+
- {Component/feature}
|
|
108
|
+
- {Component/feature}
|
|
109
|
+
|
|
110
|
+
**Potentially affected:**
|
|
111
|
+
- {Component/feature that shares code/patterns}
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Fix Direction
|
|
116
|
+
|
|
117
|
+
### Proposed Approach
|
|
118
|
+
|
|
119
|
+
{High-level description of the fix direction}
|
|
120
|
+
|
|
121
|
+
### Alternatives Considered
|
|
122
|
+
|
|
123
|
+
**Alternative 1:** {Approach}
|
|
124
|
+
- Pros: {benefits}
|
|
125
|
+
- Cons: {drawbacks}
|
|
126
|
+
- Why not: {reason}
|
|
127
|
+
|
|
128
|
+
**Alternative 2:** {Approach}
|
|
129
|
+
- Pros: {benefits}
|
|
130
|
+
- Cons: {drawbacks}
|
|
131
|
+
- Why not: {reason}
|
|
132
|
+
|
|
133
|
+
### Testing Recommendations
|
|
134
|
+
|
|
135
|
+
- {Test that should be added}
|
|
136
|
+
- {Test that should be added}
|
|
137
|
+
- {Existing test that should be modified}
|
|
138
|
+
|
|
139
|
+
### Risk Assessment
|
|
140
|
+
|
|
141
|
+
- **Fix complexity:** {Low / Medium / High}
|
|
142
|
+
- **Regression risk:** {Low / Medium / High}
|
|
143
|
+
- **Recommended approach:** {Hotfix / Regular release / Feature flag}
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Notes
|
|
148
|
+
|
|
149
|
+
{Any additional observations, questions for later, or context}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## Section Guidelines
|
|
153
|
+
|
|
154
|
+
### Symptoms Section
|
|
155
|
+
|
|
156
|
+
Gather all observable information about the bug before analyzing code. This creates a clear target for analysis and helps validate the fix.
|
|
157
|
+
|
|
158
|
+
### Analysis Section
|
|
159
|
+
|
|
160
|
+
Document your investigation journey. Even dead ends are valuable — they show what's NOT the cause and help others avoid the same paths.
|
|
161
|
+
|
|
162
|
+
### Fix Direction Section
|
|
163
|
+
|
|
164
|
+
Don't detail the implementation here — that's for the specification. Focus on high-level direction, alternatives, and risk assessment.
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: technical-planning
|
|
3
|
-
description: "Transform specifications into actionable implementation plans with phases, tasks, and acceptance criteria. Use when: (1) User asks to create/write an implementation plan, (2) User asks to plan implementation from a specification, (3) Converting specifications from .workflows/specification/{topic}/specification.md into implementation plans, (4) User says 'plan this' or 'create a plan', (5) Need to structure how to build something with phases and concrete steps. Creates plans in .workflows/planning/{topic}/plan.md that can be executed via strict TDD."
|
|
4
3
|
user-invocable: false
|
|
5
4
|
---
|
|
6
5
|
|
|
@@ -264,3 +263,27 @@ The plan contains **{N} phases** with **{M} tasks** total, reviewed for traceabi
|
|
|
264
263
|
|
|
265
264
|
Status has been marked as `concluded`. The plan is ready for implementation.
|
|
266
265
|
```
|
|
266
|
+
|
|
267
|
+
4. **Check for pipeline continuation** — Check the plan frontmatter for `work_type`
|
|
268
|
+
|
|
269
|
+
**If work_type is set** (feature, bugfix, or greenfield):
|
|
270
|
+
|
|
271
|
+
This plan is part of a pipeline. Invoke the `/workflow:bridge` skill:
|
|
272
|
+
|
|
273
|
+
```
|
|
274
|
+
Pipeline bridge for: {topic}
|
|
275
|
+
Work type: {work_type from artifact frontmatter}
|
|
276
|
+
Completed phase: planning
|
|
277
|
+
|
|
278
|
+
Invoke the workflow:bridge skill to enter plan mode with continuation instructions.
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
**If work_type is not set:**
|
|
282
|
+
|
|
283
|
+
> *Output the next fenced block as a code block:*
|
|
284
|
+
|
|
285
|
+
```
|
|
286
|
+
Plan concluded: {topic}
|
|
287
|
+
|
|
288
|
+
The plan is ready for implementation. Run /start-implementation to begin.
|
|
289
|
+
```
|
|
@@ -8,7 +8,7 @@ This step uses the `planning-task-author` agent (`../../../agents/planning-task-
|
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## A. Prepare the Scratch File
|
|
12
12
|
|
|
13
13
|
Scratch file path: `.workflows/.cache/planning/{topic}/phase-{N}.md`
|
|
14
14
|
|
|
@@ -16,7 +16,7 @@ Create the `.workflows/.cache/planning/{topic}/` directory if it does not exist.
|
|
|
16
16
|
|
|
17
17
|
---
|
|
18
18
|
|
|
19
|
-
##
|
|
19
|
+
## B. Invoke the Agent (Batch)
|
|
20
20
|
|
|
21
21
|
> *Output the next fenced block as a code block:*
|
|
22
22
|
|
|
@@ -38,7 +38,7 @@ The agent writes all tasks to the scratch file and returns.
|
|
|
38
38
|
|
|
39
39
|
---
|
|
40
40
|
|
|
41
|
-
##
|
|
41
|
+
## C. Validate Scratch File
|
|
42
42
|
|
|
43
43
|
Read the scratch file and count tasks. Verify task count matches the task table in the Plan Index File for this phase.
|
|
44
44
|
|
|
@@ -48,11 +48,11 @@ Re-invoke the agent with the same inputs.
|
|
|
48
48
|
|
|
49
49
|
#### If valid
|
|
50
50
|
|
|
51
|
-
→ Proceed to **
|
|
51
|
+
→ Proceed to **D. Check Gate Mode**.
|
|
52
52
|
|
|
53
53
|
---
|
|
54
54
|
|
|
55
|
-
##
|
|
55
|
+
## D. Check Gate Mode
|
|
56
56
|
|
|
57
57
|
Check `author_gate_mode` in the Plan Index File frontmatter.
|
|
58
58
|
|
|
@@ -64,15 +64,15 @@ Check `author_gate_mode` in the Plan Index File frontmatter.
|
|
|
64
64
|
Phase {N}: {count} tasks authored. Auto-approved. Writing to plan.
|
|
65
65
|
```
|
|
66
66
|
|
|
67
|
-
→
|
|
67
|
+
→ Proceed to **F. Write to Plan**.
|
|
68
68
|
|
|
69
69
|
#### If `author_gate_mode: gated`
|
|
70
70
|
|
|
71
|
-
→
|
|
71
|
+
→ Proceed to **E. Approval Loop**.
|
|
72
72
|
|
|
73
73
|
---
|
|
74
74
|
|
|
75
|
-
##
|
|
75
|
+
## E. Approval Loop
|
|
76
76
|
|
|
77
77
|
For each task in the scratch file, in order:
|
|
78
78
|
|
|
@@ -114,7 +114,7 @@ Mark the task `approved` in the scratch file. Continue to the next task.
|
|
|
114
114
|
|
|
115
115
|
Mark the task `approved` in the scratch file. Set all remaining `pending` tasks to `approved`. Update `author_gate_mode: auto` in the Plan Index File frontmatter.
|
|
116
116
|
|
|
117
|
-
→
|
|
117
|
+
→ Proceed to **F. Write to Plan**.
|
|
118
118
|
|
|
119
119
|
#### If the user provides feedback
|
|
120
120
|
|
|
@@ -133,17 +133,17 @@ Continue to the next task.
|
|
|
133
133
|
|
|
134
134
|
#### If the user navigates
|
|
135
135
|
|
|
136
|
-
→ Return to **
|
|
136
|
+
→ Return to **[plan-construction.md](plan-construction.md)**. The scratch file preserves approval state.
|
|
137
137
|
|
|
138
138
|
---
|
|
139
139
|
|
|
140
|
-
###
|
|
140
|
+
### Revision
|
|
141
141
|
|
|
142
142
|
After completing the approval loop, check for rejected tasks.
|
|
143
143
|
|
|
144
144
|
#### If no rejected tasks
|
|
145
145
|
|
|
146
|
-
→ Proceed to **
|
|
146
|
+
→ Proceed to **F. Write to Plan**.
|
|
147
147
|
|
|
148
148
|
#### If rejected tasks exist
|
|
149
149
|
|
|
@@ -153,11 +153,11 @@ After completing the approval loop, check for rejected tasks.
|
|
|
153
153
|
{N} tasks need revision. Re-invoking author agent...
|
|
154
154
|
```
|
|
155
155
|
|
|
156
|
-
→ Return to **
|
|
156
|
+
→ Return to **B. Invoke the Agent (Batch)**. The agent receives the scratch file with rejected tasks and feedback, rewrites only those, and the flow continues through validation, gate check, and approval as normal.
|
|
157
157
|
|
|
158
158
|
---
|
|
159
159
|
|
|
160
|
-
##
|
|
160
|
+
## F. Write to Plan
|
|
161
161
|
|
|
162
162
|
> **CHECKPOINT**: If `author_gate_mode: gated`, verify all tasks in the scratch file are marked `approved` before writing.
|
|
163
163
|
|
|
@@ -181,10 +181,10 @@ Repeat for each task.
|
|
|
181
181
|
|
|
182
182
|
---
|
|
183
183
|
|
|
184
|
-
##
|
|
184
|
+
## G. Cleanup
|
|
185
185
|
|
|
186
186
|
Delete the scratch file: `rm .workflows/.cache/planning/{topic}/phase-{N}.md`
|
|
187
187
|
|
|
188
188
|
Remove the `.workflows/.cache/planning/{topic}/` directory if empty.
|
|
189
189
|
|
|
190
|
-
→ Return to **
|
|
190
|
+
→ Return to **[plan-construction.md](plan-construction.md)**.
|
|
@@ -68,7 +68,7 @@ Check `task_list_gate_mode` in the Plan Index File frontmatter.
|
|
|
68
68
|
Phase {N}: {Phase Name} — task list approved. Proceeding to authoring.
|
|
69
69
|
```
|
|
70
70
|
|
|
71
|
-
→
|
|
71
|
+
→ Proceed to **If approved** below.
|
|
72
72
|
|
|
73
73
|
#### If `task_list_gate_mode: gated`
|
|
74
74
|
|
|
@@ -110,4 +110,4 @@ Note that `task_list_gate_mode` should be updated to `auto` during the commit st
|
|
|
110
110
|
|
|
111
111
|
**If the task list was already approved and unchanged:** No updates needed.
|
|
112
112
|
|
|
113
|
-
→ Return to **
|
|
113
|
+
→ Return to **[plan-construction.md](plan-construction.md)**.
|