@leeovery/claude-technical-workflows 2.0.47 → 2.0.48
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/agents/planning-phase-designer.md +88 -0
- package/agents/planning-task-author.md +67 -0
- package/agents/planning-task-designer.md +75 -0
- package/package.json +1 -1
- package/skills/technical-planning/SKILL.md +91 -22
- package/skills/technical-planning/references/dependencies.md +3 -3
- package/skills/technical-planning/references/output-formats/output-backlog-md.md +71 -11
- package/skills/technical-planning/references/output-formats/output-beads.md +63 -11
- package/skills/technical-planning/references/output-formats/output-linear.md +59 -6
- package/skills/technical-planning/references/output-formats/output-local-markdown.md +138 -96
- package/skills/technical-planning/references/output-formats.md +21 -5
- package/skills/technical-planning/references/planning-principles.md +35 -3
- package/skills/technical-planning/references/read-specification.md +47 -0
- package/skills/technical-planning/references/spec-change-detection.md +35 -0
- package/skills/technical-planning/references/steps/author-tasks.md +56 -23
- package/skills/technical-planning/references/steps/define-phases.md +59 -18
- package/skills/technical-planning/references/steps/define-tasks.md +54 -18
- package/skills/technical-planning/references/steps/plan-review.md +2 -2
- package/skills/technical-planning/references/steps/resolve-dependencies.md +5 -5
- package/skills/technical-planning/references/steps/review-integrity.md +5 -5
- package/skills/technical-planning/references/steps/review-traceability.md +5 -5
- package/skills/technical-planning/references/steps/verify-source-material.md +22 -0
- package/skills/technical-specification/SKILL.md +3 -3
- package/skills/technical-specification/references/specification-guide.md +15 -15
|
@@ -141,22 +141,30 @@ When creating issues, if something is unclear or missing from the specification:
|
|
|
141
141
|
|
|
142
142
|
This allows iterative refinement. Create all issues, identify gaps, circle back to specification if needed, then update issues with missing detail. Plans don't have to be perfect on first pass.
|
|
143
143
|
|
|
144
|
-
### 4. Create
|
|
144
|
+
### 4. Create Plan Index File
|
|
145
145
|
|
|
146
146
|
Create `docs/workflow/planning/{topic}.md`:
|
|
147
147
|
|
|
148
148
|
```markdown
|
|
149
149
|
---
|
|
150
|
+
topic: {topic-name}
|
|
151
|
+
status: planning
|
|
150
152
|
format: linear
|
|
153
|
+
specification: ../specification/{topic}.md
|
|
154
|
+
cross_cutting_specs: # Omit if none
|
|
155
|
+
- ../specification/{spec}.md
|
|
156
|
+
spec_commit: {git-commit-hash}
|
|
151
157
|
plan_id: {PROJECT_NAME}
|
|
152
158
|
project_id: {ID from MCP response}
|
|
153
159
|
team: {TEAM_NAME}
|
|
160
|
+
created: YYYY-MM-DD # Use today's actual date
|
|
161
|
+
updated: YYYY-MM-DD # Use today's actual date
|
|
162
|
+
planning:
|
|
163
|
+
phase: 1
|
|
164
|
+
task: ~
|
|
154
165
|
---
|
|
155
166
|
|
|
156
|
-
# Plan
|
|
157
|
-
|
|
158
|
-
**Specification**: `docs/workflow/specification/{topic}.md`
|
|
159
|
-
**Created**: YYYY-MM-DD *(use today's actual date)*
|
|
167
|
+
# Plan: {Topic Name}
|
|
160
168
|
|
|
161
169
|
## About This Plan
|
|
162
170
|
|
|
@@ -190,6 +198,32 @@ Architectural decisions from cross-cutting specifications that inform this plan:
|
|
|
190
198
|
|
|
191
199
|
*Remove this section if no cross-cutting specifications apply.*
|
|
192
200
|
|
|
201
|
+
## Phases
|
|
202
|
+
|
|
203
|
+
### Phase 1: {Name}
|
|
204
|
+
status: draft
|
|
205
|
+
label: phase-1
|
|
206
|
+
|
|
207
|
+
**Goal**: {What this phase accomplishes}
|
|
208
|
+
**Why this order**: {Why this comes at this position}
|
|
209
|
+
|
|
210
|
+
**Acceptance**:
|
|
211
|
+
- [ ] Criterion 1
|
|
212
|
+
- [ ] Criterion 2
|
|
213
|
+
|
|
214
|
+
#### Tasks
|
|
215
|
+
| ID | Name | Edge Cases | Status |
|
|
216
|
+
|----|------|------------|--------|
|
|
217
|
+
| {issue-id} | {Task Name} | {list} | pending |
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
### Phase 2: {Name}
|
|
222
|
+
status: draft
|
|
223
|
+
label: phase-2
|
|
224
|
+
|
|
225
|
+
...
|
|
226
|
+
|
|
193
227
|
## External Dependencies
|
|
194
228
|
|
|
195
229
|
[Dependencies on other topics - copy from specification's Dependencies section]
|
|
@@ -202,14 +236,25 @@ The External Dependencies section tracks what this plan needs from other topics.
|
|
|
202
236
|
|
|
203
237
|
## Frontmatter
|
|
204
238
|
|
|
205
|
-
The frontmatter contains all information needed to query Linear:
|
|
239
|
+
The frontmatter contains all information needed to query Linear and tracks planning progress:
|
|
206
240
|
|
|
207
241
|
```yaml
|
|
208
242
|
---
|
|
243
|
+
topic: {topic-name}
|
|
244
|
+
status: planning | concluded
|
|
209
245
|
format: linear
|
|
246
|
+
specification: ../specification/{topic}.md
|
|
247
|
+
cross_cutting_specs: # Omit if none
|
|
248
|
+
- ../specification/{spec}.md
|
|
249
|
+
spec_commit: {git-commit-hash}
|
|
210
250
|
plan_id: USER-AUTH-FEATURE
|
|
211
251
|
project_id: abc123-def456
|
|
212
252
|
team: Engineering
|
|
253
|
+
created: YYYY-MM-DD # Use today's actual date
|
|
254
|
+
updated: YYYY-MM-DD # Use today's actual date
|
|
255
|
+
planning:
|
|
256
|
+
phase: 2
|
|
257
|
+
task: 3
|
|
213
258
|
---
|
|
214
259
|
```
|
|
215
260
|
|
|
@@ -267,6 +312,14 @@ Linear:
|
|
|
267
312
|
- Update issue status in Linear via MCP after each task
|
|
268
313
|
- User sees real-time progress in Linear UI
|
|
269
314
|
|
|
315
|
+
### Cleanup (Restart)
|
|
316
|
+
|
|
317
|
+
The official Linear MCP server does not support deletion. Ask the user to delete the Linear project manually via the Linear UI.
|
|
318
|
+
|
|
319
|
+
> "The Linear project **{project name}** needs to be deleted before restarting. Please delete it in the Linear UI (Project Settings → Delete project), then confirm so I can proceed."
|
|
320
|
+
|
|
321
|
+
**STOP.** Wait for the user to confirm.
|
|
322
|
+
|
|
270
323
|
### Fallback
|
|
271
324
|
|
|
272
325
|
If Linear MCP is unavailable:
|
|
@@ -4,15 +4,15 @@
|
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
Use this format for simple features or when you want everything in a single version-controlled file.
|
|
7
|
+
Use this format for simple features or when you want everything in a single version-controlled file with detailed task files.
|
|
8
8
|
|
|
9
9
|
## Benefits
|
|
10
10
|
|
|
11
11
|
- No external tools or dependencies required
|
|
12
|
-
-
|
|
12
|
+
- Plan Index File provides overview; task files provide detail
|
|
13
13
|
- Human-readable and easy to edit
|
|
14
14
|
- Works offline with any text editor
|
|
15
|
-
- Simplest setup - just create
|
|
15
|
+
- Simplest setup - just create markdown files
|
|
16
16
|
|
|
17
17
|
## Setup
|
|
18
18
|
|
|
@@ -22,25 +22,34 @@ No external tools required. This format uses plain markdown files stored in the
|
|
|
22
22
|
|
|
23
23
|
```
|
|
24
24
|
docs/workflow/planning/
|
|
25
|
-
|
|
25
|
+
├── {topic}.md # Plan Index File
|
|
26
|
+
└── {topic}/
|
|
27
|
+
└── {task-id}.md # Task detail files
|
|
26
28
|
```
|
|
27
29
|
|
|
28
|
-
|
|
30
|
+
The Plan Index File contains phases and task tables. Each authored task gets its own file in the `{topic}/` directory. Task filename = task ID for easy lookup.
|
|
29
31
|
|
|
30
|
-
## Template
|
|
32
|
+
## Plan Index Template
|
|
31
33
|
|
|
32
34
|
Create `{topic}.md` with this structure:
|
|
33
35
|
|
|
34
36
|
```markdown
|
|
35
37
|
---
|
|
36
38
|
topic: {feature-name}
|
|
37
|
-
status:
|
|
38
|
-
date: YYYY-MM-DD
|
|
39
|
+
status: planning
|
|
39
40
|
format: local-markdown
|
|
40
|
-
specification: {topic}.md
|
|
41
|
+
specification: ../specification/{topic}.md
|
|
42
|
+
cross_cutting_specs: # Omit if none
|
|
43
|
+
- ../specification/{spec}.md
|
|
44
|
+
spec_commit: {git-commit-hash}
|
|
45
|
+
created: YYYY-MM-DD # Use today's actual date
|
|
46
|
+
updated: YYYY-MM-DD # Use today's actual date
|
|
47
|
+
planning:
|
|
48
|
+
phase: 1
|
|
49
|
+
task: ~
|
|
41
50
|
---
|
|
42
51
|
|
|
43
|
-
#
|
|
52
|
+
# Plan: {Feature/Project Name}
|
|
44
53
|
|
|
45
54
|
## Overview
|
|
46
55
|
|
|
@@ -65,98 +74,102 @@ Architectural decisions from cross-cutting specifications that inform this plan:
|
|
|
65
74
|
|
|
66
75
|
*Remove this section if no cross-cutting specifications apply.*
|
|
67
76
|
|
|
68
|
-
## Architecture
|
|
69
|
-
|
|
70
|
-
- Components
|
|
71
|
-
- Data flow
|
|
72
|
-
- Integration points
|
|
73
|
-
|
|
74
77
|
## Phases
|
|
75
78
|
|
|
76
|
-
Each phase is independently testable with clear acceptance criteria.
|
|
77
|
-
Each task is a single TDD cycle: write test → implement → commit.
|
|
78
|
-
|
|
79
|
-
---
|
|
80
|
-
|
|
81
79
|
### Phase 1: {Name}
|
|
80
|
+
status: draft
|
|
82
81
|
|
|
83
82
|
**Goal**: What this phase accomplishes
|
|
83
|
+
**Why this order**: Why this comes at this position
|
|
84
84
|
|
|
85
85
|
**Acceptance**:
|
|
86
86
|
- [ ] Criterion 1
|
|
87
87
|
- [ ] Criterion 2
|
|
88
88
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
- **Edge cases**: (if any)
|
|
95
|
-
|
|
96
|
-
2. **{Task Name}**
|
|
97
|
-
- **Do**: What to implement
|
|
98
|
-
- **Test**: `"it does expected behavior"`
|
|
89
|
+
#### Tasks
|
|
90
|
+
| ID | Name | Edge Cases | Status |
|
|
91
|
+
|----|------|------------|--------|
|
|
92
|
+
| {topic}-1-1 | {Task Name} | {list} | pending |
|
|
93
|
+
| {topic}-1-2 | {Task Name} | {list} | pending |
|
|
99
94
|
|
|
100
95
|
---
|
|
101
96
|
|
|
102
97
|
### Phase 2: {Name}
|
|
98
|
+
status: draft
|
|
103
99
|
|
|
104
100
|
**Goal**: What this phase accomplishes
|
|
101
|
+
**Why this order**: Why this comes at this position
|
|
105
102
|
|
|
106
103
|
**Acceptance**:
|
|
107
104
|
- [ ] Criterion 1
|
|
108
105
|
- [ ] Criterion 2
|
|
109
106
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
- **Do**: What to implement
|
|
114
|
-
- **Test**: `"it does expected behavior"`
|
|
107
|
+
#### Tasks
|
|
108
|
+
| ID | Name | Edge Cases | Status |
|
|
109
|
+
|----|------|------------|--------|
|
|
115
110
|
|
|
116
111
|
(Continue pattern for remaining phases)
|
|
117
112
|
|
|
118
113
|
---
|
|
119
114
|
|
|
120
|
-
##
|
|
115
|
+
## External Dependencies
|
|
121
116
|
|
|
122
|
-
|
|
117
|
+
[Dependencies on other topics - copy from specification's Dependencies section]
|
|
123
118
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
119
|
+
- {topic}: {description}
|
|
120
|
+
- {topic}: {description} → {task-reference} (resolved)
|
|
121
|
+
- ~~{topic}: {description}~~ → satisfied externally
|
|
127
122
|
|
|
128
|
-
##
|
|
123
|
+
## Log
|
|
129
124
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
125
|
+
| Date | Change |
|
|
126
|
+
|------|--------|
|
|
127
|
+
| YYYY-MM-DD *(use today's actual date)* | Created from specification |
|
|
128
|
+
```
|
|
133
129
|
|
|
134
|
-
##
|
|
130
|
+
## Task File Template
|
|
135
131
|
|
|
136
|
-
|
|
132
|
+
Each authored task is written to `{topic}/{task-id}.md`:
|
|
137
133
|
|
|
138
|
-
|
|
134
|
+
```markdown
|
|
135
|
+
---
|
|
136
|
+
id: {topic}-{phase}-{seq}
|
|
137
|
+
phase: {phase-number}
|
|
138
|
+
status: pending
|
|
139
|
+
created: YYYY-MM-DD # Use today's actual date
|
|
140
|
+
---
|
|
139
141
|
|
|
140
|
-
|
|
141
|
-
- Phase dependencies (Phase 2 depends on Phase 1, etc.)
|
|
142
|
+
# {Task Name}
|
|
142
143
|
|
|
143
|
-
##
|
|
144
|
+
## Goal
|
|
144
145
|
|
|
145
|
-
|
|
146
|
+
{What this task accomplishes and why — include rationale from specification}
|
|
146
147
|
|
|
147
|
-
|
|
148
|
-
- {topic}: {description} → {task-reference} (resolved)
|
|
149
|
-
- ~~{topic}: {description}~~ → satisfied externally
|
|
148
|
+
## Implementation
|
|
150
149
|
|
|
151
|
-
|
|
150
|
+
{The "Do" — specific files, methods, approach}
|
|
152
151
|
|
|
153
|
-
|
|
152
|
+
## Tests
|
|
154
153
|
|
|
155
|
-
|
|
154
|
+
- `it does expected behavior`
|
|
155
|
+
- `it handles edge case`
|
|
156
156
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
157
|
+
## Edge Cases
|
|
158
|
+
|
|
159
|
+
{Specific edge cases for this task}
|
|
160
|
+
|
|
161
|
+
## Acceptance Criteria
|
|
162
|
+
|
|
163
|
+
- [ ] Test written and failing
|
|
164
|
+
- [ ] Implementation complete
|
|
165
|
+
- [ ] Tests passing
|
|
166
|
+
- [ ] Committed
|
|
167
|
+
|
|
168
|
+
## Context
|
|
169
|
+
|
|
170
|
+
{Relevant decisions and constraints from specification}
|
|
171
|
+
|
|
172
|
+
Specification reference: `docs/workflow/specification/{topic}.md` (for ambiguity resolution)
|
|
160
173
|
```
|
|
161
174
|
|
|
162
175
|
## Cross-Topic Dependencies
|
|
@@ -165,21 +178,19 @@ Cross-topic dependencies link tasks between different plan files. This is how yo
|
|
|
165
178
|
|
|
166
179
|
### In the External Dependencies Section
|
|
167
180
|
|
|
168
|
-
Use the format `{topic}: {description} → {task-
|
|
181
|
+
Use the format `{topic}: {description} → {task-id}` where task-id points to a specific task:
|
|
169
182
|
|
|
170
183
|
```markdown
|
|
171
184
|
## External Dependencies
|
|
172
185
|
|
|
173
|
-
- billing-system: Invoice generation → billing-
|
|
174
|
-
- authentication: User context →
|
|
186
|
+
- billing-system: Invoice generation → billing-1-2 (resolved)
|
|
187
|
+
- authentication: User context → auth-2-1 (resolved)
|
|
175
188
|
- payment-gateway: Payment processing (unresolved - not yet planned)
|
|
176
189
|
```
|
|
177
190
|
|
|
178
191
|
### Task References
|
|
179
192
|
|
|
180
|
-
For local markdown plans, reference tasks using
|
|
181
|
-
- `{topic}.md#phase-{n}-task-{m}` - references a specific task by phase and number
|
|
182
|
-
- Consider adding nano IDs to task headers for more stable references
|
|
193
|
+
For local markdown plans, reference tasks using the task ID (e.g., `billing-1-2`). The task file is at `{topic}/{task-id}.md`.
|
|
183
194
|
|
|
184
195
|
## Querying Dependencies
|
|
185
196
|
|
|
@@ -202,51 +213,60 @@ grep -A 10 "## External Dependencies" docs/workflow/planning/*.md | grep "^- " |
|
|
|
202
213
|
grep -l "billing-system:" docs/workflow/planning/*.md
|
|
203
214
|
```
|
|
204
215
|
|
|
205
|
-
### Check if a
|
|
206
|
-
|
|
207
|
-
Read the referenced plan file and verify the task exists:
|
|
216
|
+
### Check if a Task Exists
|
|
208
217
|
|
|
209
218
|
```bash
|
|
210
|
-
# Check if
|
|
211
|
-
|
|
219
|
+
# Check if task file exists
|
|
220
|
+
ls docs/workflow/planning/billing-system/billing-1-2.md
|
|
212
221
|
```
|
|
213
222
|
|
|
214
|
-
### Check if a
|
|
223
|
+
### Check if a Task is Complete
|
|
215
224
|
|
|
216
|
-
|
|
225
|
+
Read the task file and check the status in frontmatter:
|
|
217
226
|
|
|
218
227
|
```bash
|
|
219
|
-
#
|
|
220
|
-
grep
|
|
228
|
+
# Check task status
|
|
229
|
+
grep "status:" docs/workflow/planning/billing-system/billing-1-2.md
|
|
221
230
|
```
|
|
222
231
|
|
|
223
232
|
## Frontmatter
|
|
224
233
|
|
|
225
|
-
Plan
|
|
234
|
+
Plan Index Files use YAML frontmatter for metadata:
|
|
226
235
|
|
|
227
236
|
```yaml
|
|
228
237
|
---
|
|
229
|
-
topic: {feature-name}
|
|
230
|
-
status:
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
238
|
+
topic: {feature-name} # Matches filename (without .md)
|
|
239
|
+
status: planning | concluded # Planning status
|
|
240
|
+
format: local-markdown # Output format used
|
|
241
|
+
specification: ../specification/{topic}.md
|
|
242
|
+
cross_cutting_specs: # Omit if none
|
|
243
|
+
- ../specification/{spec}.md
|
|
244
|
+
spec_commit: {git-commit-hash} # Git commit when planning started
|
|
245
|
+
created: YYYY-MM-DD # Use today's actual date
|
|
246
|
+
updated: YYYY-MM-DD # Use today's actual date
|
|
247
|
+
planning:
|
|
248
|
+
phase: 2
|
|
249
|
+
task: 3
|
|
234
250
|
---
|
|
235
251
|
```
|
|
236
252
|
|
|
237
|
-
The `
|
|
253
|
+
The `planning:` block tracks current progress position. It persists after the plan is concluded — `status:` indicates whether the plan is active or concluded.
|
|
238
254
|
|
|
239
255
|
## Flagging Incomplete Tasks
|
|
240
256
|
|
|
241
|
-
When information is missing, mark
|
|
257
|
+
When information is missing, mark in the task table:
|
|
242
258
|
|
|
243
259
|
```markdown
|
|
244
|
-
|
|
260
|
+
| ID | Name | Edge Cases | Status |
|
|
261
|
+
|----|------|------------|--------|
|
|
262
|
+
| auth-1-3 | Configure rate limiting | [needs-info] threshold, per-user vs per-IP | pending |
|
|
263
|
+
```
|
|
245
264
|
|
|
246
|
-
|
|
247
|
-
|
|
265
|
+
And in the task file, add a "Needs Clarification" section:
|
|
266
|
+
|
|
267
|
+
```markdown
|
|
268
|
+
## Needs Clarification
|
|
248
269
|
|
|
249
|
-
**Needs clarification**:
|
|
250
270
|
- What's the rate limit threshold?
|
|
251
271
|
- Per-user or per-IP?
|
|
252
272
|
```
|
|
@@ -257,20 +277,42 @@ After planning:
|
|
|
257
277
|
|
|
258
278
|
```
|
|
259
279
|
docs/workflow/
|
|
260
|
-
├── discussion/{topic}.md
|
|
261
|
-
├── specification/{topic}.md
|
|
262
|
-
└── planning/
|
|
280
|
+
├── discussion/{topic}.md # Discussion output
|
|
281
|
+
├── specification/{topic}.md # Specification output
|
|
282
|
+
└── planning/
|
|
283
|
+
├── {topic}.md # Plan Index File (format: local-markdown)
|
|
284
|
+
└── {topic}/
|
|
285
|
+
├── {topic}-1-1.md # Task detail files
|
|
286
|
+
├── {topic}-1-2.md
|
|
287
|
+
└── {topic}-2-1.md
|
|
263
288
|
```
|
|
264
289
|
|
|
265
290
|
## Implementation
|
|
266
291
|
|
|
267
292
|
### Reading Plans
|
|
268
293
|
|
|
269
|
-
1. Read the
|
|
270
|
-
2.
|
|
271
|
-
3. Follow phase order as written
|
|
294
|
+
1. Read the Plan Index File to get overview and task tables
|
|
295
|
+
2. For each task to implement, read `{topic}/{task-id}.md`
|
|
296
|
+
3. Follow phase order as written in the index
|
|
297
|
+
4. Check task status in the index table
|
|
272
298
|
|
|
273
299
|
### Updating Progress
|
|
274
300
|
|
|
275
|
-
-
|
|
276
|
-
- Update
|
|
301
|
+
- Update task file frontmatter `status: completed` when done
|
|
302
|
+
- Update the task table in the Plan Index File
|
|
303
|
+
- Check off phase acceptance criteria when all phase tasks complete
|
|
304
|
+
|
|
305
|
+
### Authoring Tasks (During Planning)
|
|
306
|
+
|
|
307
|
+
When a task is approved:
|
|
308
|
+
1. Create `{topic}/{task-id}.md` with the task content
|
|
309
|
+
2. Update the task table: set `status: authored`
|
|
310
|
+
3. Update the `planning:` block in frontmatter
|
|
311
|
+
|
|
312
|
+
### Cleanup (Restart)
|
|
313
|
+
|
|
314
|
+
Delete the task detail directory for this topic:
|
|
315
|
+
|
|
316
|
+
```bash
|
|
317
|
+
rm -rf docs/workflow/planning/{topic}/
|
|
318
|
+
```
|
|
@@ -10,7 +10,11 @@ Plans can be stored in different formats.
|
|
|
10
10
|
|
|
11
11
|
## Available Formats
|
|
12
12
|
|
|
13
|
-
###
|
|
13
|
+
### Local Markdown
|
|
14
|
+
format: `local-markdown`
|
|
15
|
+
|
|
16
|
+
adapter: [output-local-markdown.md](output-formats/output-local-markdown.md)
|
|
17
|
+
|
|
14
18
|
|
|
15
19
|
Single markdown file per topic containing all phases, tasks, and progress tracking inline. No external tools or setup required.
|
|
16
20
|
|
|
@@ -18,15 +22,23 @@ Single markdown file per topic containing all phases, tasks, and progress tracki
|
|
|
18
22
|
- **Cons**: No visual board, everything in one file can get long for complex features, no dependency graph
|
|
19
23
|
- **Best for**: Simple features, small plans, quick iterations
|
|
20
24
|
|
|
21
|
-
###
|
|
25
|
+
### Linear
|
|
26
|
+
format: `linear`
|
|
27
|
+
|
|
28
|
+
adapter: [output-linear.md](output-formats/output-linear.md)
|
|
29
|
+
|
|
22
30
|
|
|
23
|
-
Tasks managed as Linear issues within a Linear project. A thin
|
|
31
|
+
Tasks managed as Linear issues within a Linear project. A thin Plan Index File points to the Linear project; Linear is the source of truth.
|
|
24
32
|
|
|
25
33
|
- **Pros**: Visual tracking, team collaboration, real-time updates, integrates with existing Linear workflows
|
|
26
34
|
- **Cons**: Requires Linear account and MCP server, external dependency, not fully local
|
|
27
35
|
- **Best for**: Teams already using Linear, collaborative projects needing shared visibility
|
|
28
36
|
|
|
29
|
-
###
|
|
37
|
+
### Backlog.md
|
|
38
|
+
format: `backlog-md`
|
|
39
|
+
|
|
40
|
+
adapter: [output-backlog-md.md](output-formats/output-backlog-md.md)
|
|
41
|
+
|
|
30
42
|
|
|
31
43
|
Individual task files in a `backlog/` directory with a local Kanban board. Each task is a self-contained markdown file with frontmatter for status, priority, labels, and dependencies.
|
|
32
44
|
|
|
@@ -34,7 +46,11 @@ Individual task files in a `backlog/` directory with a local Kanban board. Each
|
|
|
34
46
|
- **Cons**: Requires npm install, flat directory (phases via labels not folders), external tool dependency
|
|
35
47
|
- **Best for**: Solo developers wanting a local Kanban board with per-task files
|
|
36
48
|
|
|
37
|
-
###
|
|
49
|
+
### Beads
|
|
50
|
+
format: `beads`
|
|
51
|
+
|
|
52
|
+
adapter: [output-beads.md](output-formats/output-beads.md)
|
|
53
|
+
|
|
38
54
|
|
|
39
55
|
Git-backed graph issue tracker with hierarchical tasks (epics → phases → tasks) and native dependency management. Uses JSONL storage with a CLI interface.
|
|
40
56
|
|
|
@@ -4,7 +4,13 @@
|
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
These are the principles, rules, and quality standards that govern the planning process.
|
|
8
|
+
|
|
9
|
+
## Your Role
|
|
10
|
+
|
|
11
|
+
You are the **planner** — you coordinate the planning process and control a set of agents that do the analytical work alongside you. You invoke agents (for phase design, task design, and task authoring), present their output to the user, handle approval gates, and manage the Plan Index File.
|
|
12
|
+
|
|
13
|
+
Analysis principles (`phase-design.md`, `task-design.md`) are loaded by the agents, not by you. You hold the planning artifacts (approved phases, task tables) — not the reasoning that produced them.
|
|
8
14
|
|
|
9
15
|
## Planning is a Gated Process
|
|
10
16
|
|
|
@@ -12,9 +18,35 @@ Planning translates the specification into actionable structure. This translatio
|
|
|
12
18
|
|
|
13
19
|
### Process Expectations
|
|
14
20
|
|
|
15
|
-
**This is a step-by-step process with mandatory stop points.** You must work through each step sequentially. Steps end with **STOP** — you must present your work, wait for explicit user
|
|
21
|
+
**This is a step-by-step process with mandatory stop points.** You must work through each step sequentially. Steps end with **STOP** — you must present your work, wait for explicit user approval, and only then proceed to the next step.
|
|
22
|
+
|
|
23
|
+
**Never one-shot the plan.** Do not write the entire Plan Index File in a single operation. The plan is built incrementally — one phase at a time, with the user confirming the structure at each stage. A one-shot plan that misses requirements, hallucinates content, or structures tasks poorly wastes more time than a careful, step-by-step process. Go slow to go fast.
|
|
24
|
+
|
|
25
|
+
### Explicit Approval Required
|
|
26
|
+
|
|
27
|
+
At every stop point — phases, task lists, individual tasks, dependencies — the user must explicitly approve before you proceed or log content.
|
|
28
|
+
|
|
29
|
+
**What counts as approval:** `y`/`yes` or equivalent explicit confirmation: "Approved", "That's good", "Looks right".
|
|
30
|
+
|
|
31
|
+
**What does NOT count as approval:**
|
|
32
|
+
- Silence
|
|
33
|
+
- You presenting choices (that's you asking, not them approving)
|
|
34
|
+
- The user asking a follow-up question
|
|
35
|
+
- The user saying "What's next?" or "Continue"
|
|
36
|
+
- The user making a comment or observation without explicit approval
|
|
37
|
+
- ANY response that isn't explicit confirmation
|
|
38
|
+
|
|
39
|
+
**If you are uncertain whether the user approved, ASK:** "Ready to proceed, or do you want to change something?"
|
|
40
|
+
|
|
41
|
+
#### Self-Check Before Logging
|
|
42
|
+
|
|
43
|
+
Before logging any task to the plan, ask yourself:
|
|
44
|
+
|
|
45
|
+
1. **Did I present this specific content to the user?** If no → STOP. Present it first.
|
|
46
|
+
2. **Did the user explicitly approve it?** If no → STOP. Wait for approval.
|
|
47
|
+
3. **Am I writing exactly what was approved?** If adding or changing anything → STOP. Present the changes first.
|
|
16
48
|
|
|
17
|
-
|
|
49
|
+
### Collaboration and Judgment
|
|
18
50
|
|
|
19
51
|
**Stop and ask when judgment is needed.** Planning is collaborative — not in the sense that every line needs approval, but in the sense that the user guides structural decisions and resolves ambiguity. You must stop and ask when:
|
|
20
52
|
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Read Specification
|
|
2
|
+
|
|
3
|
+
*Reference for **[technical-planning](../SKILL.md)***
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
This reference defines how planning agents must read the specification. It is passed to every agent alongside the specification path.
|
|
8
|
+
|
|
9
|
+
**This is a full-ingestion protocol, not a summarisation guide.**
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Read the Entire Specification
|
|
14
|
+
|
|
15
|
+
Read the specification file from top to bottom. Every section, every decision, every edge case, every constraint. If the file is large, read it in sequential chunks until you have consumed the entire document. Do not stop early. Do not skim.
|
|
16
|
+
|
|
17
|
+
The specification is a verbatim, user-approved artifact. Every detail was explicitly agreed — treat nothing as filler or boilerplate.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## What to Absorb
|
|
22
|
+
|
|
23
|
+
As you read, internalise:
|
|
24
|
+
|
|
25
|
+
- **Decisions and rationale** — what was decided and why
|
|
26
|
+
- **Architectural choices** — patterns, technologies, structures chosen
|
|
27
|
+
- **Edge cases** — boundary conditions, unusual inputs, failure modes
|
|
28
|
+
- **Acceptance boundaries** — what constitutes "done" for each requirement
|
|
29
|
+
- **Constraints** — performance, compatibility, regulatory, or scope limits
|
|
30
|
+
- **Dependencies** — what this feature needs from other systems or topics
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Cross-Cutting Specifications
|
|
35
|
+
|
|
36
|
+
If cross-cutting specification paths are provided, read each one in full using the same protocol. Cross-cutting specs contain architectural decisions (caching, rate limiting, error handling) that influence how features are built — they inform implementation approach without adding scope.
|
|
37
|
+
|
|
38
|
+
Note where cross-cutting decisions apply to the work you are designing.
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## What NOT to Do
|
|
43
|
+
|
|
44
|
+
- **Do not summarise** — your job is to use the spec directly, not to create a derivative
|
|
45
|
+
- **Do not skip sections** — even sections that seem irrelevant may contain constraints or edge cases that affect your work
|
|
46
|
+
- **Do not reinterpret decisions** — the spec contains validated decisions; translate them into plan structure, don't second-guess them
|
|
47
|
+
- **Do not reference other source material** — the specification is the sole input; it already incorporates prior research and discussion
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Spec Change Detection
|
|
2
|
+
|
|
3
|
+
*Reference for **[technical-planning](../SKILL.md)***
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
When resuming planning, check whether the specification or cross-cutting specifications have changed since planning started.
|
|
8
|
+
|
|
9
|
+
The Plan Index File stores `spec_commit` — the git commit hash captured when planning began. This allows diffing any input file against that point in time.
|
|
10
|
+
|
|
11
|
+
## Detection
|
|
12
|
+
|
|
13
|
+
Run a git diff against the stored commit for all input files:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
git diff {spec_commit} -- {specification-path} {cross-cutting-spec-paths...}
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Also check for new cross-cutting specification files that didn't exist at that commit.
|
|
20
|
+
|
|
21
|
+
## Reporting
|
|
22
|
+
|
|
23
|
+
**If no changes detected:**
|
|
24
|
+
|
|
25
|
+
> "Specification unchanged since planning started."
|
|
26
|
+
|
|
27
|
+
**If changes detected:**
|
|
28
|
+
|
|
29
|
+
Summarise the extent of changes:
|
|
30
|
+
|
|
31
|
+
- **What files changed** (specification, cross-cutting specs, or both)
|
|
32
|
+
- **Whether any cross-cutting specs are new** (didn't exist at the stored commit)
|
|
33
|
+
- **Nature of changes** — formatting/cosmetic, minor additions/removals, or substantial restructuring
|
|
34
|
+
|
|
35
|
+
Return the summary for use in the resume prompt.
|