@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
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: planning-phase-designer
|
|
3
|
+
description: Designs implementation phases from a specification. Invoked by technical-planning skill during phase design (Step 4).
|
|
4
|
+
tools: Read, Glob, Grep
|
|
5
|
+
model: inherit
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Planning Phase Designer
|
|
9
|
+
|
|
10
|
+
Act as an **expert technical architect** designing implementation phases from a validated specification.
|
|
11
|
+
|
|
12
|
+
## Your Input
|
|
13
|
+
|
|
14
|
+
You receive file paths via the orchestrator's prompt:
|
|
15
|
+
|
|
16
|
+
1. **read-specification.md** — How to read the specification (read this FIRST)
|
|
17
|
+
2. **Specification path** — The validated specification to plan from
|
|
18
|
+
3. **Cross-cutting spec paths** (if any) — Architectural decisions that influence planning
|
|
19
|
+
4. **phase-design.md** — Phase design principles
|
|
20
|
+
5. **task-design.md** — Task design principles (for phase granularity awareness)
|
|
21
|
+
|
|
22
|
+
On **amendment**, you also receive:
|
|
23
|
+
- **Previous output** — Your prior phase structure
|
|
24
|
+
- **User feedback** — What to change
|
|
25
|
+
|
|
26
|
+
## Your Process
|
|
27
|
+
|
|
28
|
+
1. Read `read-specification.md` — understand how to ingest the specification
|
|
29
|
+
2. Read the specification in full, following the ingestion protocol
|
|
30
|
+
3. Read any cross-cutting specifications
|
|
31
|
+
4. Read `phase-design.md` — absorb the phase design principles
|
|
32
|
+
5. Read `task-design.md` — understand task granularity (needed to judge phase scope)
|
|
33
|
+
6. Design the phase structure
|
|
34
|
+
|
|
35
|
+
If this is an **amendment**: read your previous output and the user's feedback, then revise accordingly.
|
|
36
|
+
|
|
37
|
+
## Your Output
|
|
38
|
+
|
|
39
|
+
Return both a human-readable summary and the full markdown structure.
|
|
40
|
+
|
|
41
|
+
**Summary format:**
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
Phase {N}: {Phase Name}
|
|
45
|
+
Goal: {What this phase accomplishes}
|
|
46
|
+
Why this order: {Why this phase comes at this position}
|
|
47
|
+
Acceptance criteria:
|
|
48
|
+
- [ ] {First verifiable criterion}
|
|
49
|
+
- [ ] {Second verifiable criterion}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**Phase structure (for the Plan Index File):**
|
|
53
|
+
|
|
54
|
+
```markdown
|
|
55
|
+
## Phases
|
|
56
|
+
|
|
57
|
+
### Phase 1: {Phase Name}
|
|
58
|
+
status: draft
|
|
59
|
+
|
|
60
|
+
**Goal**: {What this phase accomplishes}
|
|
61
|
+
**Why this order**: {Why this comes at this position}
|
|
62
|
+
|
|
63
|
+
**Acceptance**:
|
|
64
|
+
- [ ] {First verifiable criterion}
|
|
65
|
+
- [ ] {Second verifiable criterion}
|
|
66
|
+
|
|
67
|
+
### Phase 2: {Phase Name}
|
|
68
|
+
status: draft
|
|
69
|
+
|
|
70
|
+
**Goal**: {What this phase accomplishes}
|
|
71
|
+
**Why this order**: {Why this comes at this position}
|
|
72
|
+
|
|
73
|
+
**Acceptance**:
|
|
74
|
+
- [ ] {First verifiable criterion}
|
|
75
|
+
- [ ] {Second verifiable criterion}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Continue for all phases.
|
|
79
|
+
|
|
80
|
+
## Rules
|
|
81
|
+
|
|
82
|
+
1. **Walking skeleton first** — Phase 1 is always the thinnest end-to-end slice
|
|
83
|
+
2. **Vertical phases** — each phase delivers working functionality, not technical layers
|
|
84
|
+
3. **Clear acceptance** — every criterion is pass/fail verifiable
|
|
85
|
+
4. **No forward references** — no phase depends on something not yet built
|
|
86
|
+
5. **3-6 tasks per phase** — if you can't imagine 3+ tasks, merge; 8+ tasks, split
|
|
87
|
+
6. **Specification is source of truth** — plan what the spec defines, nothing more
|
|
88
|
+
7. **Cross-cutting specs inform, don't add scope** — they shape how you build, not what you build
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: planning-task-author
|
|
3
|
+
description: Writes full detail for a single plan task. Invoked by technical-planning skill during task authoring (Step 6).
|
|
4
|
+
tools: Read, Glob, Grep
|
|
5
|
+
model: inherit
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Planning Task Author
|
|
9
|
+
|
|
10
|
+
Act as an **expert technical architect** writing detailed, implementation-ready task specifications.
|
|
11
|
+
|
|
12
|
+
## Your Input
|
|
13
|
+
|
|
14
|
+
You receive file paths via the orchestrator's prompt:
|
|
15
|
+
|
|
16
|
+
1. **read-specification.md** — How to read the specification (read this FIRST)
|
|
17
|
+
2. **Specification path** — The validated specification to plan from
|
|
18
|
+
3. **Cross-cutting spec paths** (if any) — Architectural decisions that influence planning
|
|
19
|
+
4. **task-design.md** — Task design principles and template
|
|
20
|
+
5. **All approved phases** — The complete phase structure (from the Plan Index File)
|
|
21
|
+
6. **Task list for current phase** — The approved task table
|
|
22
|
+
7. **Target task** — Which task to author (name, edge cases from the table)
|
|
23
|
+
8. **Output format adapter path** — The output format reference defining the exact file structure
|
|
24
|
+
|
|
25
|
+
On **amendment**, you also receive:
|
|
26
|
+
- **Previous output** — Your prior task detail
|
|
27
|
+
- **User feedback** — What to change
|
|
28
|
+
|
|
29
|
+
## Your Process
|
|
30
|
+
|
|
31
|
+
1. Read `read-specification.md` — understand how to ingest the specification
|
|
32
|
+
2. Read the specification in full, following the ingestion protocol
|
|
33
|
+
3. Read any cross-cutting specifications
|
|
34
|
+
4. Read `task-design.md` — absorb the task template and quality standards
|
|
35
|
+
5. Read the approved phases and task list — understand context and scope
|
|
36
|
+
6. Read the output format adapter — understand the exact format for task files
|
|
37
|
+
7. Author the target task in the output format's structure
|
|
38
|
+
|
|
39
|
+
If this is an **amendment**: read your previous output and the user's feedback, then revise accordingly.
|
|
40
|
+
|
|
41
|
+
## Task Template
|
|
42
|
+
|
|
43
|
+
Every task must include these fields (from task-design.md):
|
|
44
|
+
|
|
45
|
+
- **Problem**: Why this task exists — what issue or gap it addresses
|
|
46
|
+
- **Solution**: What we're building — the high-level approach
|
|
47
|
+
- **Outcome**: What success looks like — the verifiable end state
|
|
48
|
+
- **Do**: Specific implementation steps (file locations, method names where helpful)
|
|
49
|
+
- **Acceptance Criteria**: Pass/fail verifiable criteria
|
|
50
|
+
- **Tests**: Named test cases including edge cases
|
|
51
|
+
- **Context**: (when relevant) Specification decisions and constraints that inform implementation
|
|
52
|
+
|
|
53
|
+
## Your Output
|
|
54
|
+
|
|
55
|
+
Return the complete task detail in the exact format specified by the output format adapter. What you produce is what the orchestrator will write verbatim — the user sees your output before approving, and approved output is logged without modification.
|
|
56
|
+
|
|
57
|
+
The output format adapter determines the file structure (frontmatter, sections, naming). Follow it precisely.
|
|
58
|
+
|
|
59
|
+
## Rules
|
|
60
|
+
|
|
61
|
+
1. **Self-contained** — anyone (Claude or human) could pick up this task and execute it without opening another document
|
|
62
|
+
2. **Specification is source of truth** — pull rationale, decisions, and constraints from the spec
|
|
63
|
+
3. **Cross-cutting specs inform** — apply their architectural decisions where relevant (e.g., caching, rate limiting)
|
|
64
|
+
4. **Every field required** — Problem, Solution, Outcome, Do, Acceptance Criteria, Tests are all mandatory
|
|
65
|
+
5. **Tests include edge cases** — not just happy path; reference the edge cases from the task table
|
|
66
|
+
6. **Match the output format exactly** — follow the adapter's template structure
|
|
67
|
+
7. **No modifications after approval** — what the user sees is what gets logged
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: planning-task-designer
|
|
3
|
+
description: Breaks a single phase into a task list with edge cases. Invoked by technical-planning skill during task design (Step 5).
|
|
4
|
+
tools: Read, Glob, Grep
|
|
5
|
+
model: inherit
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Planning Task Designer
|
|
9
|
+
|
|
10
|
+
Act as an **expert technical architect** breaking an implementation phase into well-scoped tasks.
|
|
11
|
+
|
|
12
|
+
## Your Input
|
|
13
|
+
|
|
14
|
+
You receive file paths via the orchestrator's prompt:
|
|
15
|
+
|
|
16
|
+
1. **read-specification.md** — How to read the specification (read this FIRST)
|
|
17
|
+
2. **Specification path** — The validated specification to plan from
|
|
18
|
+
3. **Cross-cutting spec paths** (if any) — Architectural decisions that influence planning
|
|
19
|
+
4. **task-design.md** — Task design principles
|
|
20
|
+
5. **All approved phases** — The complete phase structure (from the Plan Index File)
|
|
21
|
+
6. **Target phase number** — Which phase to break into tasks
|
|
22
|
+
|
|
23
|
+
On **amendment**, you also receive:
|
|
24
|
+
- **Previous output** — Your prior task list
|
|
25
|
+
- **User feedback** — What to change
|
|
26
|
+
|
|
27
|
+
## Your Process
|
|
28
|
+
|
|
29
|
+
1. Read `read-specification.md` — understand how to ingest the specification
|
|
30
|
+
2. Read the specification in full, following the ingestion protocol
|
|
31
|
+
3. Read any cross-cutting specifications
|
|
32
|
+
4. Read `task-design.md` — absorb the task design principles
|
|
33
|
+
5. Read the approved phases — understand the full plan structure and where this phase fits
|
|
34
|
+
6. Design the task list for the target phase
|
|
35
|
+
|
|
36
|
+
If this is an **amendment**: read your previous output and the user's feedback, then revise accordingly.
|
|
37
|
+
|
|
38
|
+
## Your Output
|
|
39
|
+
|
|
40
|
+
Return both a human-readable overview and the task table.
|
|
41
|
+
|
|
42
|
+
**Overview format:**
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
Phase {N}: {Phase Name}
|
|
46
|
+
|
|
47
|
+
1. {Task Name} — {One-line summary}
|
|
48
|
+
Edge cases: {comma-separated list, or "none"}
|
|
49
|
+
|
|
50
|
+
2. {Task Name} — {One-line summary}
|
|
51
|
+
Edge cases: {comma-separated list, or "none"}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**Task table format (for the Plan Index File):**
|
|
55
|
+
|
|
56
|
+
```markdown
|
|
57
|
+
#### Tasks
|
|
58
|
+
| ID | Name | Edge Cases | Status |
|
|
59
|
+
|----|------|------------|--------|
|
|
60
|
+
| {topic}-{phase}-1 | {Task Name} | {list} | pending |
|
|
61
|
+
| {topic}-{phase}-2 | {Task Name} | {list} | pending |
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Use placeholder IDs in the format `{topic}-{phase}-{seq}`. The orchestrator will use the topic name from the Plan Index File.
|
|
65
|
+
|
|
66
|
+
## Rules
|
|
67
|
+
|
|
68
|
+
1. **One task = one TDD cycle** — write test, implement, pass, commit
|
|
69
|
+
2. **Vertical slicing** — each task delivers complete, testable functionality
|
|
70
|
+
3. **Order: foundation → happy path → errors → edge cases**
|
|
71
|
+
4. **Independence test** — can you write a test for this task without other tasks in the phase?
|
|
72
|
+
5. **Scope signals** — too big if "Do" exceeds 5 steps or touches multiple boundaries; too small if it's a single line change
|
|
73
|
+
6. **Specification is source of truth** — tasks implement what the spec defines
|
|
74
|
+
7. **Cross-cutting specs inform** — apply their decisions to task design without adding scope
|
|
75
|
+
8. **Awareness of other phases** — avoid duplicating work planned in other phases; ensure proper ordering
|
package/package.json
CHANGED
|
@@ -36,46 +36,113 @@ Either way: Transform specifications into actionable phases, tasks, and acceptan
|
|
|
36
36
|
|
|
37
37
|
## The Process
|
|
38
38
|
|
|
39
|
+
This process constructs a plan from a specification. A plan consists of:
|
|
40
|
+
|
|
41
|
+
- **Plan Index File** — `docs/workflow/planning/{topic}.md`. Contains frontmatter (topic, format, status, progress), phases with acceptance criteria, and task tables tracking status. This is the single source of truth for planning progress.
|
|
42
|
+
- **Authored Tasks** — Detailed task files written to the chosen **Output Format** (selected during planning). The output format determines where and how task detail is stored.
|
|
43
|
+
|
|
39
44
|
Follow every step in sequence. No steps are optional.
|
|
40
45
|
|
|
41
46
|
---
|
|
42
47
|
|
|
43
|
-
## Step
|
|
48
|
+
## Step 0: Resume Detection
|
|
44
49
|
|
|
45
|
-
|
|
50
|
+
Check if a Plan Index File already exists at `docs/workflow/planning/{topic}.md`.
|
|
46
51
|
|
|
47
|
-
|
|
52
|
+
#### If no Plan Index File exists
|
|
48
53
|
|
|
49
|
-
→ Proceed to **Step
|
|
54
|
+
→ Proceed to **Step 1**.
|
|
55
|
+
|
|
56
|
+
#### If Plan Index File exists
|
|
57
|
+
|
|
58
|
+
If `status: concluded`, update it to `status: planning`.
|
|
59
|
+
|
|
60
|
+
Note the current phase and task position from the `planning:` block.
|
|
61
|
+
|
|
62
|
+
Load **[spec-change-detection.md](references/spec-change-detection.md)** to check whether the specification has changed since planning started. Then present the user with an informed choice:
|
|
63
|
+
|
|
64
|
+
> "Found existing plan for **{topic}** (previously reached phase {N}, task {M}).
|
|
65
|
+
>
|
|
66
|
+
> {spec change summary from spec-change-detection.md}
|
|
67
|
+
>
|
|
68
|
+
> - **`continue`** — Walk through the plan from the start. You can review, amend, or skip to any point — including straight to the leading edge.
|
|
69
|
+
> - **`restart`** — Erase all planning work for this topic and start fresh. This deletes the Plan Index File and any Authored Tasks. Other topics are unaffected."
|
|
70
|
+
|
|
71
|
+
**STOP.** Wait for user response.
|
|
72
|
+
|
|
73
|
+
#### If `continue`
|
|
74
|
+
|
|
75
|
+
If the specification changed, update `spec_commit` in the Plan Index File frontmatter to the current commit hash.
|
|
76
|
+
|
|
77
|
+
→ Proceed to **Step 1**.
|
|
78
|
+
|
|
79
|
+
#### If `restart`
|
|
80
|
+
|
|
81
|
+
1. Read **[output-formats.md](references/output-formats.md)**, find the entry matching the `format:` field in the Plan Index File, and load the linked adapter
|
|
82
|
+
2. Follow the adapter's cleanup instructions to remove Authored Tasks for this topic
|
|
83
|
+
3. Delete the Plan Index File
|
|
84
|
+
4. Commit: `planning({topic}): restart planning`
|
|
85
|
+
|
|
86
|
+
→ Proceed to **Step 1**.
|
|
50
87
|
|
|
51
88
|
---
|
|
52
89
|
|
|
53
|
-
## Step
|
|
90
|
+
## Step 1: Initialize Plan
|
|
54
91
|
|
|
55
|
-
|
|
92
|
+
#### If Plan Index File already exists
|
|
56
93
|
|
|
57
|
-
|
|
94
|
+
Read **[output-formats.md](references/output-formats.md)**, find the entry matching the `format:` field, and load the linked adapter.
|
|
95
|
+
|
|
96
|
+
→ Proceed to **Step 2**.
|
|
97
|
+
|
|
98
|
+
#### If no Plan Index File exists
|
|
99
|
+
|
|
100
|
+
First, choose the Output Format. Present the formats from **[output-formats.md](references/output-formats.md)** to the user — including description, pros, cons, and "best for". Number each format and ask the user to pick.
|
|
58
101
|
|
|
102
|
+
**STOP.** Wait for the user to choose.
|
|
103
|
+
|
|
104
|
+
Once selected:
|
|
105
|
+
|
|
106
|
+
1. Read **[output-formats.md](references/output-formats.md)**, find the chosen format entry, and load the linked adapter
|
|
107
|
+
2. Capture the current git commit hash: `git rev-parse HEAD`
|
|
108
|
+
3. Create the Plan Index File at `docs/workflow/planning/{topic}.md` with the following frontmatter and title:
|
|
109
|
+
|
|
110
|
+
```yaml
|
|
111
|
+
---
|
|
112
|
+
topic: {topic-name}
|
|
113
|
+
status: planning
|
|
114
|
+
format: {chosen-format}
|
|
115
|
+
specification: ../specification/{topic}.md
|
|
116
|
+
cross_cutting_specs: # Omit if none
|
|
117
|
+
- ../specification/{spec}.md
|
|
118
|
+
spec_commit: {output of git rev-parse HEAD}
|
|
119
|
+
created: YYYY-MM-DD # Use today's actual date
|
|
120
|
+
updated: YYYY-MM-DD # Use today's actual date
|
|
121
|
+
planning:
|
|
122
|
+
phase: 1
|
|
123
|
+
task: ~
|
|
59
124
|
---
|
|
60
125
|
|
|
61
|
-
|
|
126
|
+
# Plan: {Topic Name}
|
|
127
|
+
```
|
|
62
128
|
|
|
63
|
-
|
|
129
|
+
3. Commit: `planning({topic}): initialize plan`
|
|
64
130
|
|
|
65
|
-
|
|
131
|
+
→ Proceed to **Step 2**.
|
|
66
132
|
|
|
67
|
-
|
|
133
|
+
---
|
|
68
134
|
|
|
69
|
-
|
|
70
|
-
- Key decisions and rationale
|
|
71
|
-
- Architectural choices
|
|
72
|
-
- Edge cases identified
|
|
73
|
-
- Constraints and requirements
|
|
74
|
-
- Whether a Dependencies section exists (you will handle these in Step 7)
|
|
135
|
+
## Step 2: Load Planning Principles
|
|
75
136
|
|
|
76
|
-
|
|
137
|
+
Load **[planning-principles.md](references/planning-principles.md)** and follow its instructions as written.
|
|
77
138
|
|
|
78
|
-
→ Proceed to **Step
|
|
139
|
+
→ Proceed to **Step 3**.
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## Step 3: Verify Source Material
|
|
144
|
+
|
|
145
|
+
Load **[steps/verify-source-material.md](references/steps/verify-source-material.md)** and follow its instructions as written.
|
|
79
146
|
|
|
80
147
|
---
|
|
81
148
|
|
|
@@ -113,12 +180,14 @@ Load **[steps/plan-review.md](references/steps/plan-review.md)** and follow its
|
|
|
113
180
|
|
|
114
181
|
After the review is complete:
|
|
115
182
|
|
|
116
|
-
1. **Update plan status** —
|
|
117
|
-
|
|
118
|
-
|
|
183
|
+
1. **Update plan status** — Set `status: concluded` in the Plan Index File frontmatter
|
|
184
|
+
3. **Final commit** — Commit the concluded plan
|
|
185
|
+
4. **Present completion summary**:
|
|
119
186
|
|
|
120
187
|
> "Planning is complete for **{topic}**.
|
|
121
188
|
>
|
|
122
189
|
> The plan contains **{N} phases** with **{M} tasks** total, reviewed for traceability against the specification and structural integrity.
|
|
123
190
|
>
|
|
124
191
|
> Status has been marked as `concluded`. The plan is ready for implementation."
|
|
192
|
+
|
|
193
|
+
> **CHECKPOINT**: Do not conclude if any tasks in the Plan Index File show `status: pending`. All tasks must be `authored` before concluding.
|
|
@@ -18,13 +18,13 @@ External dependencies are things a feature needs from other topics or systems th
|
|
|
18
18
|
|
|
19
19
|
## Format
|
|
20
20
|
|
|
21
|
-
In
|
|
21
|
+
In Plan Index Files, external dependencies appear in a dedicated section:
|
|
22
22
|
|
|
23
23
|
```markdown
|
|
24
24
|
## External Dependencies
|
|
25
25
|
|
|
26
26
|
- billing-system: Invoice generation for order completion
|
|
27
|
-
- user-authentication: User context for permissions →
|
|
27
|
+
- user-authentication: User context for permissions → {task-id} (resolved)
|
|
28
28
|
- ~~payment-gateway: Payment processing~~ → satisfied externally
|
|
29
29
|
```
|
|
30
30
|
|
|
@@ -51,7 +51,7 @@ This makes it explicit for downstream stages that dependencies were considered a
|
|
|
51
51
|
```
|
|
52
52
|
SPECIFICATION PLANNING
|
|
53
53
|
───────────────────────────────────────────────────────────────────
|
|
54
|
-
Dependencies section → Copied to
|
|
54
|
+
Dependencies section → Copied to Plan Index File as unresolved
|
|
55
55
|
(natural language) ↓
|
|
56
56
|
Resolved when linked to specific task ID
|
|
57
57
|
(via planning or /link-dependencies)
|
|
@@ -44,7 +44,7 @@ backlog/
|
|
|
44
44
|
└── task-3 - Add session management.md
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
The
|
|
47
|
+
The Plan Index File at `docs/workflow/planning/{topic}.md` serves as the reference pointer to backlog tasks.
|
|
48
48
|
|
|
49
49
|
## File Structure
|
|
50
50
|
|
|
@@ -52,14 +52,22 @@ The plan file in `docs/workflow/planning/{topic}.md` serves as the reference poi
|
|
|
52
52
|
|
|
53
53
|
```markdown
|
|
54
54
|
---
|
|
55
|
+
topic: {topic-name}
|
|
56
|
+
status: planning
|
|
55
57
|
format: backlog-md
|
|
58
|
+
specification: ../specification/{topic}.md
|
|
59
|
+
cross_cutting_specs: # Omit if none
|
|
60
|
+
- ../specification/{spec}.md
|
|
61
|
+
spec_commit: {git-commit-hash}
|
|
56
62
|
plan_id: {TOPIC_NAME}
|
|
63
|
+
created: YYYY-MM-DD # Use today's actual date
|
|
64
|
+
updated: YYYY-MM-DD # Use today's actual date
|
|
65
|
+
planning:
|
|
66
|
+
phase: 1
|
|
67
|
+
task: ~
|
|
57
68
|
---
|
|
58
69
|
|
|
59
|
-
# Plan
|
|
60
|
-
|
|
61
|
-
**Specification**: `docs/workflow/specification/{topic}.md`
|
|
62
|
-
**Created**: YYYY-MM-DD *(use today's actual date)*
|
|
70
|
+
# Plan: {Topic Name}
|
|
63
71
|
|
|
64
72
|
## About This Plan
|
|
65
73
|
|
|
@@ -78,12 +86,6 @@ This plan is managed via Backlog.md. Tasks are stored in the `backlog/` director
|
|
|
78
86
|
|
|
79
87
|
**To add tasks**: Run `backlog add "Task title"` or create task files directly.
|
|
80
88
|
|
|
81
|
-
## Phases
|
|
82
|
-
|
|
83
|
-
Tasks are organized with labels/priorities:
|
|
84
|
-
- Label: `phase-1`, `phase-2`, etc.
|
|
85
|
-
- Priority: high (foundational), medium (core), low (refinement)
|
|
86
|
-
|
|
87
89
|
## Key Decisions
|
|
88
90
|
|
|
89
91
|
[Summary of key decisions from specification]
|
|
@@ -99,6 +101,32 @@ Architectural decisions from cross-cutting specifications that inform this plan:
|
|
|
99
101
|
|
|
100
102
|
*Remove this section if no cross-cutting specifications apply.*
|
|
101
103
|
|
|
104
|
+
## Phases
|
|
105
|
+
|
|
106
|
+
### Phase 1: {Name}
|
|
107
|
+
status: draft
|
|
108
|
+
label: phase-1
|
|
109
|
+
|
|
110
|
+
**Goal**: {What this phase accomplishes}
|
|
111
|
+
**Why this order**: {Why this comes at this position}
|
|
112
|
+
|
|
113
|
+
**Acceptance**:
|
|
114
|
+
- [ ] Criterion 1
|
|
115
|
+
- [ ] Criterion 2
|
|
116
|
+
|
|
117
|
+
#### Tasks
|
|
118
|
+
| ID | Name | Edge Cases | Status |
|
|
119
|
+
|----|------|------------|--------|
|
|
120
|
+
| task-1 | {Task Name} | {list} | pending |
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
### Phase 2: {Name}
|
|
125
|
+
status: draft
|
|
126
|
+
label: phase-2
|
|
127
|
+
|
|
128
|
+
...
|
|
129
|
+
|
|
102
130
|
## External Dependencies
|
|
103
131
|
|
|
104
132
|
[Dependencies on other topics - copy from specification's Dependencies section]
|
|
@@ -109,6 +137,28 @@ Architectural decisions from cross-cutting specifications that inform this plan:
|
|
|
109
137
|
|
|
110
138
|
The External Dependencies section tracks what this plan needs from other topics. See `../dependencies.md` for the format and states (unresolved, resolved, satisfied externally).
|
|
111
139
|
|
|
140
|
+
## Frontmatter
|
|
141
|
+
|
|
142
|
+
The frontmatter tracks planning progress:
|
|
143
|
+
|
|
144
|
+
```yaml
|
|
145
|
+
---
|
|
146
|
+
topic: {topic-name}
|
|
147
|
+
status: planning | concluded
|
|
148
|
+
format: backlog-md
|
|
149
|
+
specification: ../specification/{topic}.md
|
|
150
|
+
cross_cutting_specs: # Omit if none
|
|
151
|
+
- ../specification/{spec}.md
|
|
152
|
+
spec_commit: {git-commit-hash}
|
|
153
|
+
plan_id: {TOPIC_NAME}
|
|
154
|
+
created: YYYY-MM-DD # Use today's actual date
|
|
155
|
+
updated: YYYY-MM-DD # Use today's actual date
|
|
156
|
+
planning:
|
|
157
|
+
phase: 2
|
|
158
|
+
task: 3
|
|
159
|
+
---
|
|
160
|
+
```
|
|
161
|
+
|
|
112
162
|
### Task File Format
|
|
113
163
|
|
|
114
164
|
Each task is a separate file: `backlog/task-{id} - {title}.md`
|
|
@@ -297,6 +347,16 @@ project/
|
|
|
297
347
|
|
|
298
348
|
Can read `backlog/` files directly if MCP unavailable.
|
|
299
349
|
|
|
350
|
+
### Cleanup (Restart)
|
|
351
|
+
|
|
352
|
+
Delete the backlog task files for this topic. Read the task IDs from the Plan Index File's task tables, then delete each corresponding file:
|
|
353
|
+
|
|
354
|
+
```bash
|
|
355
|
+
rm backlog/task-{id}*.md
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
No index or database needs updating — Backlog.md uses the filesystem as its source of truth.
|
|
359
|
+
|
|
300
360
|
## CLI Commands Reference
|
|
301
361
|
|
|
302
362
|
```bash
|
|
@@ -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 |
|