@leeovery/claude-technical-workflows 2.0.45 → 2.0.47
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/commands/link-dependencies.md +2 -2
- package/commands/workflow/start-discussion.md +5 -1
- package/commands/workflow/start-implementation.md +5 -1
- package/commands/workflow/start-planning.md +12 -21
- package/commands/workflow/start-research.md +5 -1
- package/commands/workflow/start-review.md +5 -1
- package/commands/workflow/start-specification.md +11 -2
- package/commands/workflow/status.md +5 -1
- package/commands/workflow/view-plan.md +1 -9
- package/package.json +1 -1
- package/skills/technical-discussion/SKILL.md +7 -1
- package/skills/technical-implementation/SKILL.md +13 -2
- package/skills/technical-implementation/references/environment-setup.md +1 -1
- package/skills/technical-planning/SKILL.md +83 -20
- package/skills/technical-planning/references/{output-backlog-md.md → output-formats/output-backlog-md.md} +4 -4
- package/skills/technical-planning/references/{output-beads.md → output-formats/output-beads.md} +4 -4
- package/skills/technical-planning/references/{output-linear.md → output-formats/output-linear.md} +4 -4
- package/skills/technical-planning/references/{output-local-markdown.md → output-formats/output-local-markdown.md} +3 -3
- package/skills/technical-planning/references/output-formats.md +33 -6
- package/skills/technical-planning/references/phase-design.md +146 -0
- package/skills/technical-planning/references/planning-principles.md +44 -0
- package/skills/technical-planning/references/steps/author-tasks.md +63 -0
- package/skills/technical-planning/references/steps/define-phases.md +40 -0
- package/skills/technical-planning/references/steps/define-tasks.md +43 -0
- package/skills/technical-planning/references/steps/plan-review.md +96 -0
- package/skills/technical-planning/references/steps/resolve-dependencies.md +56 -0
- package/skills/technical-planning/references/steps/review-integrity.md +217 -0
- package/skills/technical-planning/references/steps/review-traceability.md +194 -0
- package/skills/technical-planning/references/task-design.md +158 -0
- package/skills/technical-research/SKILL.md +9 -1
- package/skills/technical-research/references/template.md +1 -0
- package/skills/technical-review/SKILL.md +9 -1
- package/skills/technical-specification/SKILL.md +10 -1
- package/skills/technical-planning/references/formal-planning.md +0 -235
|
@@ -1,235 +0,0 @@
|
|
|
1
|
-
# Formal Planning
|
|
2
|
-
|
|
3
|
-
*Reference for **[technical-planning](../SKILL.md)***
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
You are creating the formal implementation plan from the specification.
|
|
8
|
-
|
|
9
|
-
## Before You Begin
|
|
10
|
-
|
|
11
|
-
**Confirm output format with user.** Ask which format they want, then load the appropriate output adapter from the main skill file. If you don't know which format, ask.
|
|
12
|
-
|
|
13
|
-
## Planning is Collaborative
|
|
14
|
-
|
|
15
|
-
Planning is an iterative process between you and the user. The specification contains validated, considered decisions - planning translates that work into actionable structure. But translation still requires judgment, and the user should guide that judgment.
|
|
16
|
-
|
|
17
|
-
**Stop, reflect, and ask** when:
|
|
18
|
-
- The specification is ambiguous about implementation approach
|
|
19
|
-
- Multiple valid ways to structure phases or tasks exist
|
|
20
|
-
- You're uncertain whether a task is appropriately scoped
|
|
21
|
-
- Edge cases aren't fully addressed in the specification
|
|
22
|
-
|
|
23
|
-
**Never invent to fill gaps.** If the specification doesn't address something, use `[needs-info]` and ask the user. The specification is the golden document - everything in the plan must trace back to it.
|
|
24
|
-
|
|
25
|
-
**The user expects collaboration.** Planning doesn't have to be done by the agent alone. It's normal and encouraged to pause for guidance rather than guess.
|
|
26
|
-
|
|
27
|
-
## The Planning Process
|
|
28
|
-
|
|
29
|
-
### 1. Read Specification
|
|
30
|
-
|
|
31
|
-
From the specification (`docs/workflow/specification/{topic}.md`), extract:
|
|
32
|
-
- Key decisions and rationale
|
|
33
|
-
- Architectural choices
|
|
34
|
-
- Edge cases identified
|
|
35
|
-
- Constraints and requirements
|
|
36
|
-
- **External dependencies** (from the Dependencies section)
|
|
37
|
-
|
|
38
|
-
**The specification is your sole input.** Prior source materials have already been validated, filtered, and enriched into the specification. Everything you need is in the specification - do not reference other documents.
|
|
39
|
-
|
|
40
|
-
#### Extract External Dependencies
|
|
41
|
-
|
|
42
|
-
The specification's Dependencies section lists things this feature needs from other topics/systems. These are **external dependencies** - things outside this plan's scope that must exist for implementation to proceed.
|
|
43
|
-
|
|
44
|
-
Copy these into the plan index file (see "External Dependencies Section" below). During planning:
|
|
45
|
-
|
|
46
|
-
1. **Check for existing plans**: For each dependency, search `docs/workflow/planning/` for a matching topic
|
|
47
|
-
2. **If plan exists**: Try to identify specific tasks that satisfy the dependency. Query the output format to find relevant tasks. If ambiguous, ask the user which tasks apply.
|
|
48
|
-
3. **If no plan exists**: Record the dependency in natural language - it will be linked later via `/link-dependencies` or when that topic is planned.
|
|
49
|
-
|
|
50
|
-
**Optional reverse check**: Ask the user: "Would you like me to check if any existing plans depend on this topic?"
|
|
51
|
-
|
|
52
|
-
If yes:
|
|
53
|
-
1. Scan other plan indexes for External Dependencies that reference this topic
|
|
54
|
-
2. For each match, identify which task(s) in the current plan satisfy that dependency
|
|
55
|
-
3. Update the other plan's dependency entry with the task ID (unresolved → resolved)
|
|
56
|
-
|
|
57
|
-
Alternatively, the user can run `/link-dependencies` later to resolve dependencies across all plans in bulk.
|
|
58
|
-
|
|
59
|
-
### 2. Define Phases
|
|
60
|
-
|
|
61
|
-
Break into logical phases:
|
|
62
|
-
- Each independently testable
|
|
63
|
-
- Each has acceptance criteria
|
|
64
|
-
- Progression: Foundation → Core → Edge cases → Refinement
|
|
65
|
-
|
|
66
|
-
### 3. Break Phases into Tasks
|
|
67
|
-
|
|
68
|
-
Each task is one TDD cycle:
|
|
69
|
-
- One clear thing to build
|
|
70
|
-
- One test to prove it works
|
|
71
|
-
|
|
72
|
-
### 4. Write Micro Acceptance
|
|
73
|
-
|
|
74
|
-
For each task, name the test that proves completion. Implementation writes this test first.
|
|
75
|
-
|
|
76
|
-
### 5. Address Every Edge Case
|
|
77
|
-
|
|
78
|
-
Extract each edge case, create a task with micro acceptance.
|
|
79
|
-
|
|
80
|
-
### 6. Add Code Examples (if needed)
|
|
81
|
-
|
|
82
|
-
Only for novel patterns not obvious to implement.
|
|
83
|
-
|
|
84
|
-
### 7. Review Against Specification
|
|
85
|
-
|
|
86
|
-
Verify:
|
|
87
|
-
- All decisions referenced
|
|
88
|
-
- All edge cases have tasks
|
|
89
|
-
- Each phase has acceptance criteria
|
|
90
|
-
- Each task has micro acceptance
|
|
91
|
-
|
|
92
|
-
## Phase Design
|
|
93
|
-
|
|
94
|
-
**Each phase should**:
|
|
95
|
-
- Be independently testable
|
|
96
|
-
- Have clear acceptance criteria (checkboxes)
|
|
97
|
-
- Provide incremental value
|
|
98
|
-
|
|
99
|
-
**Progression**: Foundation → Core functionality → Edge cases → Refinement
|
|
100
|
-
|
|
101
|
-
## Task Design
|
|
102
|
-
|
|
103
|
-
**One task = One TDD cycle**: write test → implement → pass → commit
|
|
104
|
-
|
|
105
|
-
### Task Structure
|
|
106
|
-
|
|
107
|
-
Every task should follow this structure:
|
|
108
|
-
|
|
109
|
-
```markdown
|
|
110
|
-
### Task N: [Clear action statement]
|
|
111
|
-
|
|
112
|
-
**Problem**: Why this task exists - what issue or gap it addresses.
|
|
113
|
-
|
|
114
|
-
**Solution**: What we're building - the high-level approach.
|
|
115
|
-
|
|
116
|
-
**Outcome**: What success looks like - the verifiable end state.
|
|
117
|
-
|
|
118
|
-
**Do**:
|
|
119
|
-
- Specific implementation steps
|
|
120
|
-
- File locations and method names where helpful
|
|
121
|
-
- Concrete guidance, not vague directions
|
|
122
|
-
|
|
123
|
-
**Acceptance Criteria**:
|
|
124
|
-
- [ ] First verifiable criterion
|
|
125
|
-
- [ ] Second verifiable criterion
|
|
126
|
-
- [ ] Edge case handling criterion
|
|
127
|
-
|
|
128
|
-
**Tests**:
|
|
129
|
-
- `"it does the primary expected behavior"`
|
|
130
|
-
- `"it handles edge case correctly"`
|
|
131
|
-
- `"it fails appropriately for invalid input"`
|
|
132
|
-
|
|
133
|
-
**Context**: (when relevant)
|
|
134
|
-
> Relevant details from specification: code examples, architectural decisions,
|
|
135
|
-
> data models, or constraints that inform implementation.
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
### Field Requirements
|
|
139
|
-
|
|
140
|
-
| Field | Required | Notes |
|
|
141
|
-
|-------|----------|-------|
|
|
142
|
-
| Problem | Yes | One sentence minimum - why this task exists |
|
|
143
|
-
| Solution | Yes | One sentence minimum - what we're building |
|
|
144
|
-
| Outcome | Yes | One sentence minimum - what success looks like |
|
|
145
|
-
| Do | Yes | At least one concrete action |
|
|
146
|
-
| Acceptance Criteria | Yes | At least one pass/fail criterion |
|
|
147
|
-
| Tests | Yes | At least one test name; include edge cases, not just happy path |
|
|
148
|
-
| Context | When relevant | Only include when spec has details worth pulling forward |
|
|
149
|
-
|
|
150
|
-
### The Template as Quality Gate
|
|
151
|
-
|
|
152
|
-
If you struggle to articulate a clear Problem for a task, this signals the task may be:
|
|
153
|
-
|
|
154
|
-
- **Too granular**: Merge with a related task
|
|
155
|
-
- **Mechanical housekeeping**: Include as a step within another task
|
|
156
|
-
- **Poorly understood**: Revisit the specification
|
|
157
|
-
|
|
158
|
-
Every standalone task should have a reason to exist that can be stated simply. The template enforces this - difficulty completing it is diagnostic information, not a problem to work around.
|
|
159
|
-
|
|
160
|
-
### Vertical Slicing
|
|
161
|
-
|
|
162
|
-
Prefer **vertical slices** that deliver complete, testable functionality over horizontal slices that separate by technical layer.
|
|
163
|
-
|
|
164
|
-
**Horizontal (avoid)**:
|
|
165
|
-
```
|
|
166
|
-
Task 1: Create all database models
|
|
167
|
-
Task 2: Create all service classes
|
|
168
|
-
Task 3: Wire up integrations
|
|
169
|
-
Task 4: Add error handling
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
Nothing works until Task 4. No task is independently verifiable.
|
|
173
|
-
|
|
174
|
-
**Vertical (prefer)**:
|
|
175
|
-
```
|
|
176
|
-
Task 1: Fetch and store events from provider (happy path)
|
|
177
|
-
Task 2: Handle pagination for large result sets
|
|
178
|
-
Task 3: Handle authentication token refresh
|
|
179
|
-
Task 4: Handle rate limiting
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
Each task delivers a complete slice of functionality that can be tested in isolation.
|
|
183
|
-
|
|
184
|
-
Within a bounded feature, vertical slicing means each task completes a coherent unit of that feature's functionality - not that it must touch UI/API/database layers. The test is: *can this task be verified independently?*
|
|
185
|
-
|
|
186
|
-
TDD naturally encourages vertical slicing - when you think "what test can I write?", you frame work as complete, verifiable behavior rather than technical layers
|
|
187
|
-
|
|
188
|
-
## Plan as Source of Truth
|
|
189
|
-
|
|
190
|
-
The plan IS the source of truth. Every phase, every task must contain all information needed to execute it.
|
|
191
|
-
|
|
192
|
-
- **Self-contained**: Each task executable without external context
|
|
193
|
-
- **No assumptions**: Spell out the context, don't assume implementer knows it
|
|
194
|
-
|
|
195
|
-
## Flagging Incomplete Tasks
|
|
196
|
-
|
|
197
|
-
When information is missing, mark it clearly with `[needs-info]`:
|
|
198
|
-
|
|
199
|
-
```markdown
|
|
200
|
-
### Task 3: Configure rate limiting [needs-info]
|
|
201
|
-
|
|
202
|
-
**Do**: Set up rate limiting for the API endpoint
|
|
203
|
-
**Test**: `it throttles requests exceeding limit`
|
|
204
|
-
|
|
205
|
-
**Needs clarification**:
|
|
206
|
-
- What's the rate limit threshold?
|
|
207
|
-
- Per-user or per-IP?
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
Planning is iterative. Create structure, flag gaps, refine.
|
|
211
|
-
|
|
212
|
-
## Quality Checklist
|
|
213
|
-
|
|
214
|
-
Before handing off to implementation:
|
|
215
|
-
|
|
216
|
-
- [ ] Clear phases with acceptance criteria
|
|
217
|
-
- [ ] Each phase has TDD-sized tasks
|
|
218
|
-
- [ ] Each task has micro acceptance (test name)
|
|
219
|
-
- [ ] All edge cases mapped to tasks
|
|
220
|
-
- [ ] Gaps flagged with `[needs-info]`
|
|
221
|
-
- [ ] External dependencies documented in plan index
|
|
222
|
-
|
|
223
|
-
## External Dependencies Section
|
|
224
|
-
|
|
225
|
-
The plan index file must include an External Dependencies section. See **[dependencies.md](dependencies.md)** for the format, states, and how they affect implementation.
|
|
226
|
-
|
|
227
|
-
## Commit Frequently
|
|
228
|
-
|
|
229
|
-
Commit planning docs at natural breaks, after significant progress, and before any context refresh.
|
|
230
|
-
|
|
231
|
-
Context refresh = memory loss. Uncommitted work = lost work.
|
|
232
|
-
|
|
233
|
-
## Output
|
|
234
|
-
|
|
235
|
-
Load the appropriate output adapter (linked from the main skill file) for format-specific structure and templates.
|