@leeovery/claude-technical-workflows 2.0.47 → 2.0.49
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 +97 -32
- 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 +34 -31
- package/skills/technical-planning/references/steps/define-phases.md +61 -19
- package/skills/technical-planning/references/steps/define-tasks.md +43 -19
- package/skills/technical-planning/references/steps/plan-construction.md +131 -0
- package/skills/technical-planning/references/steps/plan-review.md +2 -4
- package/skills/technical-planning/references/steps/resolve-dependencies.md +5 -7
- 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 +20 -0
- package/skills/technical-specification/SKILL.md +3 -3
- package/skills/technical-specification/references/specification-guide.md +15 -15
|
@@ -233,20 +233,28 @@ When tasks depend on each other:
|
|
|
233
233
|
bd dep add bd-a3f8.1.2 bd-a3f8.1.1 # 1.2 blocked by 1.1
|
|
234
234
|
```
|
|
235
235
|
|
|
236
|
-
### 5. Create
|
|
236
|
+
### 5. Create Plan Index File
|
|
237
237
|
|
|
238
238
|
Create `docs/workflow/planning/{topic}.md`:
|
|
239
239
|
|
|
240
240
|
```markdown
|
|
241
241
|
---
|
|
242
|
+
topic: {topic-name}
|
|
243
|
+
status: planning
|
|
242
244
|
format: beads
|
|
245
|
+
specification: ../specification/{topic}.md
|
|
246
|
+
cross_cutting_specs: # Omit if none
|
|
247
|
+
- ../specification/{spec}.md
|
|
248
|
+
spec_commit: {git-commit-hash}
|
|
243
249
|
plan_id: bd-{EPIC_ID}
|
|
250
|
+
created: YYYY-MM-DD # Use today's actual date
|
|
251
|
+
updated: YYYY-MM-DD # Use today's actual date
|
|
252
|
+
planning:
|
|
253
|
+
phase: 1
|
|
254
|
+
task: ~
|
|
244
255
|
---
|
|
245
256
|
|
|
246
|
-
# Plan
|
|
247
|
-
|
|
248
|
-
**Specification**: `docs/workflow/specification/{topic}.md`
|
|
249
|
-
**Created**: YYYY-MM-DD *(use today's actual date)*
|
|
257
|
+
# Plan: {Topic Name}
|
|
250
258
|
|
|
251
259
|
## About This Plan
|
|
252
260
|
|
|
@@ -280,12 +288,31 @@ Architectural decisions from cross-cutting specifications that inform this plan:
|
|
|
280
288
|
|
|
281
289
|
*Remove this section if no cross-cutting specifications apply.*
|
|
282
290
|
|
|
283
|
-
##
|
|
291
|
+
## Phases
|
|
292
|
+
|
|
293
|
+
### Phase 1: {Name}
|
|
294
|
+
status: draft
|
|
295
|
+
beads_id: bd-{id}.1
|
|
296
|
+
|
|
297
|
+
**Goal**: {What this phase accomplishes}
|
|
298
|
+
**Why this order**: {Why this comes at this position}
|
|
284
299
|
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
300
|
+
**Acceptance**:
|
|
301
|
+
- [ ] Criterion 1
|
|
302
|
+
- [ ] Criterion 2
|
|
303
|
+
|
|
304
|
+
#### Tasks
|
|
305
|
+
| ID | Name | Edge Cases | Status |
|
|
306
|
+
|----|------|------------|--------|
|
|
307
|
+
| bd-{id}.1.1 | {Task Name} | {list} | pending |
|
|
308
|
+
|
|
309
|
+
---
|
|
310
|
+
|
|
311
|
+
### Phase 2: {Name}
|
|
312
|
+
status: draft
|
|
313
|
+
beads_id: bd-{id}.2
|
|
314
|
+
|
|
315
|
+
...
|
|
289
316
|
|
|
290
317
|
## External Dependencies
|
|
291
318
|
|
|
@@ -299,12 +326,23 @@ The External Dependencies section tracks what this plan needs from other topics.
|
|
|
299
326
|
|
|
300
327
|
## Frontmatter
|
|
301
328
|
|
|
302
|
-
The
|
|
329
|
+
The frontmatter tells implementation to use beads CLI and tracks planning progress:
|
|
303
330
|
|
|
304
331
|
```yaml
|
|
305
332
|
---
|
|
333
|
+
topic: {topic-name}
|
|
334
|
+
status: planning | concluded
|
|
306
335
|
format: beads
|
|
336
|
+
specification: ../specification/{topic}.md
|
|
337
|
+
cross_cutting_specs: # Omit if none
|
|
338
|
+
- ../specification/{spec}.md
|
|
339
|
+
spec_commit: {git-commit-hash}
|
|
307
340
|
plan_id: bd-a3f8
|
|
341
|
+
created: YYYY-MM-DD # Use today's actual date
|
|
342
|
+
updated: YYYY-MM-DD # Use today's actual date
|
|
343
|
+
planning:
|
|
344
|
+
phase: 2
|
|
345
|
+
task: 3
|
|
308
346
|
---
|
|
309
347
|
```
|
|
310
348
|
|
|
@@ -391,6 +429,20 @@ project/
|
|
|
391
429
|
│ └── planning/{topic}.md # Planning output (format: beads)
|
|
392
430
|
```
|
|
393
431
|
|
|
432
|
+
### Cleanup (Restart)
|
|
433
|
+
|
|
434
|
+
Delete the epic and all its children (phases and tasks):
|
|
435
|
+
|
|
436
|
+
```bash
|
|
437
|
+
bd delete {epic-id} --cascade --force
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
If using database mode, sync afterwards to persist the deletion to JSONL:
|
|
441
|
+
|
|
442
|
+
```bash
|
|
443
|
+
bd sync
|
|
444
|
+
```
|
|
445
|
+
|
|
394
446
|
## Priority Mapping
|
|
395
447
|
|
|
396
448
|
| Planning Priority | Beads Priority |
|
|
@@ -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
|
|