opencodekit 0.10.0 → 0.11.1
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/dist/index.js +1 -1
- package/dist/template/.opencode/agent/planner.md +3 -2
- package/dist/template/.opencode/command/accessibility-check.md +297 -30
- package/dist/template/.opencode/command/analyze-mockup.md +412 -20
- package/dist/template/.opencode/command/analyze-project.md +445 -30
- package/dist/template/.opencode/command/brainstorm.md +294 -5
- package/dist/template/.opencode/command/commit.md +231 -17
- package/dist/template/.opencode/command/create.md +415 -77
- package/dist/template/.opencode/command/design-audit.md +483 -29
- package/dist/template/.opencode/command/design.md +615 -6
- package/dist/template/.opencode/command/edit-image.md +223 -20
- package/dist/template/.opencode/command/finish.md +163 -71
- package/dist/template/.opencode/command/fix-ci.md +297 -24
- package/dist/template/.opencode/command/fix-types.md +351 -13
- package/dist/template/.opencode/command/fix-ui.md +299 -13
- package/dist/template/.opencode/command/fix.md +262 -9
- package/dist/template/.opencode/command/generate-diagram.md +327 -26
- package/dist/template/.opencode/command/generate-icon.md +266 -22
- package/dist/template/.opencode/command/generate-image.md +232 -12
- package/dist/template/.opencode/command/generate-pattern.md +234 -20
- package/dist/template/.opencode/command/generate-storyboard.md +231 -21
- package/dist/template/.opencode/command/handoff.md +208 -31
- package/dist/template/.opencode/command/implement.md +163 -50
- package/dist/template/.opencode/command/import-plan.md +253 -52
- package/dist/template/.opencode/command/init.md +154 -35
- package/dist/template/.opencode/command/integration-test.md +410 -24
- package/dist/template/.opencode/command/issue.md +177 -21
- package/dist/template/.opencode/command/new-feature.md +390 -54
- package/dist/template/.opencode/command/plan.md +394 -107
- package/dist/template/.opencode/command/pr.md +235 -29
- package/dist/template/.opencode/command/quick-build.md +234 -5
- package/dist/template/.opencode/command/research-and-implement.md +442 -12
- package/dist/template/.opencode/command/research-ui.md +444 -34
- package/dist/template/.opencode/command/research.md +179 -45
- package/dist/template/.opencode/command/restore-image.md +416 -22
- package/dist/template/.opencode/command/resume.md +447 -63
- package/dist/template/.opencode/command/revert-feature.md +347 -65
- package/dist/template/.opencode/command/review-codebase.md +199 -4
- package/dist/template/.opencode/command/skill-create.md +506 -14
- package/dist/template/.opencode/command/skill-optimize.md +487 -16
- package/dist/template/.opencode/command/status.md +326 -60
- package/dist/template/.opencode/command/summarize.md +374 -33
- package/dist/template/.opencode/command/triage.md +361 -0
- package/dist/template/.opencode/command/ui-review.md +296 -25
- package/dist/template/.opencode/skill/beads/SKILL.md +108 -3
- package/dist/template/.opencode/skill/playwriter/SKILL.md +148 -0
- package/package.json +1 -1
|
@@ -1,12 +1,25 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Create implementation plan
|
|
3
|
-
argument-hint: "<bead-id>"
|
|
2
|
+
description: Create implementation plan with optional bead decomposition
|
|
3
|
+
argument-hint: "<bead-id> [--create-beads] [--parallel]"
|
|
4
4
|
agent: planner
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Plan
|
|
8
8
|
|
|
9
|
-
**Load
|
|
9
|
+
**Load skills:**
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
skill({ name: "beads" }); // For hierarchy and dependencies
|
|
13
|
+
skill({ name: "writing-plans" }); // For plan structure
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Arguments
|
|
17
|
+
|
|
18
|
+
| Argument | Default | Description |
|
|
19
|
+
| ---------------- | -------- | ------------------------------------- |
|
|
20
|
+
| `<bead-id>` | required | The bead to plan |
|
|
21
|
+
| `--create-beads` | false | Create child beads for each plan task |
|
|
22
|
+
| `--parallel` | false | Identify parallel execution tracks |
|
|
10
23
|
|
|
11
24
|
## Phase 1: Load Context
|
|
12
25
|
|
|
@@ -16,21 +29,73 @@ bd_show({ id: "$ARGUMENTS" });
|
|
|
16
29
|
|
|
17
30
|
Read artifacts:
|
|
18
31
|
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
32
|
+
```typescript
|
|
33
|
+
read({ filePath: ".beads/artifacts/<bead-id>/spec.md" });
|
|
34
|
+
read({ filePath: ".beads/artifacts/<bead-id>/research.md" });
|
|
35
|
+
read({ filePath: ".beads/artifacts/<bead-id>/design.md" }); // May not exist
|
|
23
36
|
```
|
|
24
37
|
|
|
25
38
|
If spec.md missing: "Run `/create <bead-id>` first."
|
|
26
|
-
If research.md missing: "Run `/research <bead-id>` first."
|
|
39
|
+
If research.md missing and complexity > M: "Run `/research <bead-id>` first."
|
|
27
40
|
If design.md exists: Resume from saved design options.
|
|
28
41
|
|
|
29
|
-
|
|
42
|
+
Reserve files while planning:
|
|
30
43
|
|
|
31
|
-
|
|
44
|
+
```typescript
|
|
45
|
+
bd_reserve({
|
|
46
|
+
paths: [
|
|
47
|
+
".beads/artifacts/<bead-id>/design.md",
|
|
48
|
+
".beads/artifacts/<bead-id>/plan.md",
|
|
49
|
+
],
|
|
50
|
+
reason: "Planning $ARGUMENTS",
|
|
51
|
+
ttl: 1200,
|
|
52
|
+
});
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Phase 2: Analyze for Decomposition
|
|
56
|
+
|
|
57
|
+
Before generating options, analyze if this bead should be decomposed:
|
|
32
58
|
|
|
33
59
|
```
|
|
60
|
+
DECOMPOSITION ANALYSIS
|
|
61
|
+
━━━━━━━━━━━━━━━━━━━━━━
|
|
62
|
+
|
|
63
|
+
Bead: <bead-id>
|
|
64
|
+
Title: [title from bead]
|
|
65
|
+
Current Type: [task/feature/epic]
|
|
66
|
+
|
|
67
|
+
Complexity Signals:
|
|
68
|
+
[✓/✗] Multiple domains (frontend + backend)
|
|
69
|
+
[✓/✗] Multiple files in different areas
|
|
70
|
+
[✓/✗] Natural phases (setup → implement → test)
|
|
71
|
+
[✓/✗] Could benefit from parallel execution
|
|
72
|
+
[✓/✗] Estimated > 50 tool calls
|
|
73
|
+
|
|
74
|
+
Recommendation: [DECOMPOSE / SINGLE PLAN]
|
|
75
|
+
|
|
76
|
+
If DECOMPOSE: Will create Epic + child beads
|
|
77
|
+
If SINGLE PLAN: Will create plan.md with task checklist
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
If `--create-beads` flag is set, proceed with decomposition.
|
|
81
|
+
If complexity warrants decomposition, suggest it:
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
This bead would benefit from decomposition into subtasks.
|
|
85
|
+
|
|
86
|
+
Benefits:
|
|
87
|
+
• Parallel agent execution
|
|
88
|
+
• Better context management
|
|
89
|
+
• Clearer progress tracking
|
|
90
|
+
|
|
91
|
+
Create child beads? (yes/no)
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Phase 3: Generate Design Options
|
|
95
|
+
|
|
96
|
+
Present 2-3 approaches with this format:
|
|
97
|
+
|
|
98
|
+
```markdown
|
|
34
99
|
## Design Options
|
|
35
100
|
|
|
36
101
|
### Option A: [Name]
|
|
@@ -38,202 +103,424 @@ Present 2-3 approaches:
|
|
|
38
103
|
**Approach:** [1-2 sentence description]
|
|
39
104
|
|
|
40
105
|
**Changes:**
|
|
106
|
+
|
|
41
107
|
- `src/foo.ts` - [what changes]
|
|
42
108
|
- `src/bar.ts` - [what changes]
|
|
43
109
|
|
|
44
|
-
**Pros:**
|
|
45
|
-
|
|
46
|
-
|
|
110
|
+
**Pros:** [bullet list]
|
|
111
|
+
**Cons:** [bullet list]
|
|
112
|
+
|
|
113
|
+
**Estimation:**
|
|
47
114
|
|
|
48
|
-
|
|
49
|
-
- [
|
|
115
|
+
- Tool calls: ~[N] (S=5-20, M=20-50, L=50-100, XL=needs decomposition)
|
|
116
|
+
- Files touched: [N]
|
|
117
|
+
- Risk: [low/medium/high]
|
|
50
118
|
|
|
51
|
-
**
|
|
119
|
+
**Parallelization potential:** [High/Medium/Low]
|
|
52
120
|
|
|
53
121
|
---
|
|
54
122
|
|
|
55
123
|
### Option B: [Name]
|
|
56
124
|
|
|
57
|
-
|
|
125
|
+
[Same format]
|
|
58
126
|
|
|
59
|
-
|
|
60
|
-
- `src/baz.ts` - [what changes]
|
|
127
|
+
---
|
|
61
128
|
|
|
62
|
-
**
|
|
63
|
-
|
|
129
|
+
**Recommendation:** Option [A/B] because [reason].
|
|
130
|
+
```
|
|
64
131
|
|
|
65
|
-
|
|
66
|
-
- [con 1]
|
|
67
|
-
- [con 2]
|
|
132
|
+
Save to `.beads/artifacts/<bead-id>/design.md` with status `Pending Approval`.
|
|
68
133
|
|
|
69
|
-
|
|
134
|
+
## Phase 4: Get Approval
|
|
70
135
|
|
|
71
|
-
|
|
136
|
+
**STOP and wait for human response.**
|
|
72
137
|
|
|
73
|
-
|
|
138
|
+
```
|
|
139
|
+
Pick an option (A/B/C), modify, or "none" to propose alternatives.
|
|
74
140
|
```
|
|
75
141
|
|
|
76
|
-
|
|
142
|
+
Do not proceed until user confirms.
|
|
77
143
|
|
|
78
|
-
|
|
144
|
+
## Phase 5: Create Plan with Task Contracts
|
|
145
|
+
|
|
146
|
+
After approval, write `.beads/artifacts/<bead-id>/plan.md`:
|
|
79
147
|
|
|
80
148
|
```markdown
|
|
81
|
-
#
|
|
149
|
+
# Implementation Plan: [Title]
|
|
82
150
|
|
|
83
151
|
**Bead:** <bead-id>
|
|
84
152
|
**Date:** <date>
|
|
85
|
-
**
|
|
153
|
+
**Approach:** [selected option name]
|
|
154
|
+
**Estimation:** ~[N] tool calls, [N] files
|
|
155
|
+
**Decomposition:** [Yes - child beads created / No - single bead]
|
|
86
156
|
|
|
87
|
-
##
|
|
157
|
+
## Dependency Graph
|
|
158
|
+
```
|
|
88
159
|
|
|
89
|
-
[
|
|
160
|
+
[Task 1] ──┬──> [Task 2a] ──┬──> [Task 4]
|
|
161
|
+
│ │
|
|
162
|
+
└──> [Task 2b] ──┘
|
|
163
|
+
│
|
|
164
|
+
└──> [Task 3] (can run parallel)
|
|
90
165
|
|
|
91
|
-
|
|
166
|
+
````
|
|
92
167
|
|
|
93
|
-
|
|
168
|
+
**Parallel Tracks:**
|
|
169
|
+
- Track A: Tasks 1 → 2a → 4
|
|
170
|
+
- Track B: Tasks 1 → 2b → 3 (independent after Task 1)
|
|
94
171
|
|
|
95
|
-
|
|
172
|
+
## Tasks
|
|
173
|
+
|
|
174
|
+
### Task 1: [Title]
|
|
175
|
+
|
|
176
|
+
| Field | Value |
|
|
177
|
+
| ------------- | ---------------------------------- |
|
|
178
|
+
| **Bead** | [child-bead-id if created] |
|
|
179
|
+
| **Files** | `src/foo.ts` |
|
|
180
|
+
| **Input** | [What this task receives/needs] |
|
|
181
|
+
| **Output** | [What this task produces] |
|
|
182
|
+
| **Success** | [Concrete verification criteria] |
|
|
183
|
+
| **Rollback** | [How to undo if this fails] |
|
|
184
|
+
| **Depends** | None |
|
|
185
|
+
| **Effort** | S (~10 tool calls) |
|
|
96
186
|
|
|
97
187
|
**Changes:**
|
|
188
|
+
- [ ] [Specific change 1]
|
|
189
|
+
- [ ] [Specific change 2]
|
|
98
190
|
|
|
99
|
-
|
|
100
|
-
|
|
191
|
+
**Verification:**
|
|
192
|
+
```bash
|
|
193
|
+
[Actual command to verify success]
|
|
194
|
+
````
|
|
101
195
|
|
|
102
|
-
|
|
196
|
+
---
|
|
103
197
|
|
|
104
|
-
|
|
105
|
-
- [pro 2]
|
|
198
|
+
### Task 2a: [Title]
|
|
106
199
|
|
|
107
|
-
|
|
200
|
+
| Field | Value |
|
|
201
|
+
| ------------ | -------------------------------- |
|
|
202
|
+
| **Bead** | [child-bead-id if created] |
|
|
203
|
+
| **Files** | `src/bar.ts` |
|
|
204
|
+
| **Input** | Output from Task 1 |
|
|
205
|
+
| **Output** | [What this produces] |
|
|
206
|
+
| **Success** | [Test passes, type checks, etc.] |
|
|
207
|
+
| **Rollback** | `git checkout src/bar.ts` |
|
|
208
|
+
| **Depends** | Task 1 |
|
|
209
|
+
| **Effort** | M (~30 tool calls) |
|
|
108
210
|
|
|
109
|
-
|
|
211
|
+
**Changes:**
|
|
110
212
|
|
|
111
|
-
|
|
213
|
+
- [ ] [Specific change]
|
|
112
214
|
|
|
113
|
-
|
|
215
|
+
**Verification:**
|
|
114
216
|
|
|
115
|
-
|
|
217
|
+
```bash
|
|
218
|
+
npm run test -- src/bar.test.ts
|
|
219
|
+
```
|
|
116
220
|
|
|
117
|
-
|
|
221
|
+
---
|
|
118
222
|
|
|
119
|
-
|
|
223
|
+
[Continue for all tasks...]
|
|
120
224
|
|
|
121
|
-
|
|
225
|
+
## Escape Hatches
|
|
122
226
|
|
|
123
|
-
**
|
|
227
|
+
- **Max iterations per task:** 3 attempts before human intervention
|
|
228
|
+
- **Checkpoint after:** Tasks 2a, 3 (high-risk points)
|
|
229
|
+
- **Abort if:** [Condition that means we should stop]
|
|
124
230
|
|
|
125
|
-
|
|
231
|
+
## Final Verification
|
|
126
232
|
|
|
127
|
-
|
|
233
|
+
- [ ] All task verifications pass
|
|
234
|
+
- [ ] `npm run type-check` passes
|
|
235
|
+
- [ ] `npm run test` passes
|
|
236
|
+
- [ ] Manual smoke test: [specific action]
|
|
128
237
|
|
|
129
|
-
|
|
130
|
-
- [con 2]
|
|
238
|
+
## Risks
|
|
131
239
|
|
|
132
|
-
|
|
240
|
+
| Risk | Likelihood | Impact | Mitigation |
|
|
241
|
+
| -------- | ---------- | ------ | --------------- |
|
|
242
|
+
| [Risk 1] | Medium | High | [How to handle] |
|
|
243
|
+
| [Risk 2] | Low | Medium | [How to handle] |
|
|
133
244
|
|
|
134
|
-
|
|
245
|
+
````
|
|
135
246
|
|
|
136
|
-
##
|
|
247
|
+
## Phase 6: Create Child Beads (if --create-beads or user approved)
|
|
137
248
|
|
|
138
|
-
|
|
249
|
+
For each task in the plan, create a child bead:
|
|
139
250
|
|
|
140
|
-
|
|
251
|
+
```typescript
|
|
252
|
+
// Get parent bead ID
|
|
253
|
+
const parentId = "$ARGUMENTS";
|
|
254
|
+
|
|
255
|
+
// Task 1: No dependencies
|
|
256
|
+
const task1 = bd_add({
|
|
257
|
+
title: "[Task 1 title from plan]",
|
|
258
|
+
type: "task",
|
|
259
|
+
pri: 2,
|
|
260
|
+
parent: parentId,
|
|
261
|
+
desc: "[Task 1 description]",
|
|
262
|
+
tags: ["[domain]", "[size]"],
|
|
263
|
+
});
|
|
264
|
+
|
|
265
|
+
// Task 2a: Depends on Task 1
|
|
266
|
+
const task2a = bd_add({
|
|
267
|
+
title: "[Task 2a title from plan]",
|
|
268
|
+
type: "task",
|
|
269
|
+
pri: 2,
|
|
270
|
+
parent: parentId,
|
|
271
|
+
deps: [task1.id],
|
|
272
|
+
desc: "[Task 2a description]",
|
|
273
|
+
tags: ["[domain]", "[size]"],
|
|
274
|
+
});
|
|
275
|
+
|
|
276
|
+
// Task 2b: Also depends on Task 1 (parallel with 2a)
|
|
277
|
+
const task2b = bd_add({
|
|
278
|
+
title: "[Task 2b title from plan]",
|
|
279
|
+
type: "task",
|
|
280
|
+
pri: 2,
|
|
281
|
+
parent: parentId,
|
|
282
|
+
deps: [task1.id],
|
|
283
|
+
desc: "[Task 2b description]",
|
|
284
|
+
tags: ["[domain]", "[size]"],
|
|
285
|
+
});
|
|
286
|
+
|
|
287
|
+
// Task 3: Depends on Task 1 (parallel track)
|
|
288
|
+
const task3 = bd_add({
|
|
289
|
+
title: "[Task 3 title from plan]",
|
|
290
|
+
type: "task",
|
|
291
|
+
pri: 2,
|
|
292
|
+
parent: parentId,
|
|
293
|
+
deps: [task1.id],
|
|
294
|
+
desc: "[Task 3 description]",
|
|
295
|
+
tags: ["[domain]", "[size]"],
|
|
296
|
+
});
|
|
297
|
+
|
|
298
|
+
// Task 4: Depends on 2a and 2b
|
|
299
|
+
const task4 = bd_add({
|
|
300
|
+
title: "[Task 4 title from plan]",
|
|
301
|
+
type: "task",
|
|
302
|
+
pri: 2,
|
|
303
|
+
parent: parentId,
|
|
304
|
+
deps: [task2a.id, task2b.id],
|
|
305
|
+
desc: "[Task 4 description]",
|
|
306
|
+
tags: ["[domain]", "[size]"],
|
|
307
|
+
});
|
|
308
|
+
````
|
|
309
|
+
|
|
310
|
+
### Update Plan with Bead IDs
|
|
311
|
+
|
|
312
|
+
After creating beads, update plan.md to include bead IDs in each task table.
|
|
313
|
+
|
|
314
|
+
### Visualize Dependency Graph
|
|
141
315
|
|
|
142
|
-
**Chosen:** [To be filled after approval]
|
|
143
|
-
**Rationale:** [To be filled after approval]
|
|
144
316
|
```
|
|
317
|
+
CHILD BEADS CREATED
|
|
318
|
+
━━━━━━━━━━━━━━━━━━━
|
|
145
319
|
|
|
146
|
-
|
|
320
|
+
Parent: <parent-id> "[Title]"
|
|
147
321
|
|
|
148
|
-
|
|
322
|
+
<parent>.1 [Task 1] ──┬──> <parent>.2 [Task 2a] ──┬──> <parent>.5 [Task 4]
|
|
323
|
+
(READY) │ │ │
|
|
324
|
+
│ ▼ │
|
|
325
|
+
└──> <parent>.3 [Task 2b] ──┘
|
|
326
|
+
│
|
|
327
|
+
└──> <parent>.4 [Task 3]
|
|
328
|
+
(parallel track)
|
|
149
329
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
330
|
+
READY NOW: <parent>.1
|
|
331
|
+
PARALLEL AFTER .1: <parent>.2, <parent>.3, <parent>.4
|
|
332
|
+
FINAL: <parent>.5
|
|
153
333
|
|
|
154
|
-
|
|
334
|
+
Run `bd ready` to see claimable work.
|
|
335
|
+
```
|
|
155
336
|
|
|
156
|
-
## Phase
|
|
337
|
+
## Phase 7: Upgrade Parent to Epic (if needed)
|
|
157
338
|
|
|
158
|
-
|
|
339
|
+
If parent was a `task` or `feature` and we created children, upgrade it:
|
|
159
340
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
341
|
+
```typescript
|
|
342
|
+
// Check current type
|
|
343
|
+
const parent = bd_show({ id: parentId });
|
|
344
|
+
|
|
345
|
+
if (parent.type !== "epic" && childBeadsCreated > 0) {
|
|
346
|
+
// Update parent to epic type
|
|
347
|
+
bd_msg({
|
|
348
|
+
subj: "Upgraded to Epic",
|
|
349
|
+
body: `${parentId} upgraded from ${parent.type} to epic with ${childBeadsCreated} subtasks`,
|
|
350
|
+
to: "all",
|
|
351
|
+
importance: "normal",
|
|
352
|
+
global: true,
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
```
|
|
163
356
|
|
|
164
|
-
## Phase
|
|
357
|
+
## Phase 8: Generate ADR & Sync
|
|
165
358
|
|
|
166
|
-
|
|
359
|
+
Create `.beads/artifacts/<bead-id>/adr.md`:
|
|
167
360
|
|
|
168
361
|
```markdown
|
|
169
|
-
#
|
|
362
|
+
# ADR: [Decision Title]
|
|
170
363
|
|
|
171
|
-
**
|
|
364
|
+
**Status:** Accepted
|
|
172
365
|
**Date:** <date>
|
|
173
|
-
**
|
|
366
|
+
**Bead:** <bead-id>
|
|
174
367
|
|
|
175
|
-
##
|
|
368
|
+
## Context
|
|
176
369
|
|
|
177
|
-
[
|
|
370
|
+
[Problem statement from spec.md - why we needed to decide]
|
|
178
371
|
|
|
179
|
-
##
|
|
372
|
+
## Decision
|
|
180
373
|
|
|
181
|
-
|
|
374
|
+
We chose **[Option Name]** because:
|
|
182
375
|
|
|
183
|
-
|
|
376
|
+
- [Reason 1]
|
|
377
|
+
- [Reason 2]
|
|
184
378
|
|
|
185
|
-
|
|
379
|
+
## Alternatives Considered
|
|
186
380
|
|
|
187
|
-
- [ ]
|
|
188
|
-
- [ ]
|
|
381
|
+
- **[Option B]:** Rejected because [reason]
|
|
382
|
+
- **[Option C]:** Rejected because [reason]
|
|
189
383
|
|
|
190
|
-
|
|
384
|
+
## Decomposition Decision
|
|
191
385
|
|
|
192
|
-
|
|
386
|
+
[If child beads created:]
|
|
387
|
+
We decomposed this into [N] subtasks because:
|
|
193
388
|
|
|
194
|
-
|
|
389
|
+
- [Reason: parallel execution, context management, etc.]
|
|
195
390
|
|
|
196
|
-
|
|
391
|
+
Child beads: <parent>.1, <parent>.2, ...
|
|
197
392
|
|
|
198
|
-
|
|
393
|
+
[If not decomposed:]
|
|
394
|
+
We kept this as a single bead because:
|
|
199
395
|
|
|
200
|
-
- [
|
|
396
|
+
- [Reason: small scope, single domain, etc.]
|
|
201
397
|
|
|
202
|
-
|
|
398
|
+
## Consequences
|
|
203
399
|
|
|
204
|
-
|
|
400
|
+
**Positive:**
|
|
205
401
|
|
|
206
|
-
|
|
402
|
+
- [Benefit 1]
|
|
403
|
+
- [Benefit 2]
|
|
207
404
|
|
|
208
|
-
|
|
405
|
+
**Negative:**
|
|
209
406
|
|
|
210
|
-
|
|
407
|
+
- [Tradeoff 1]
|
|
408
|
+
- [Tradeoff 2]
|
|
211
409
|
|
|
212
|
-
|
|
213
|
-
- [ ] Integration tests pass
|
|
214
|
-
- [ ] Type check passes
|
|
215
|
-
- [ ] [Custom verification from spec]
|
|
410
|
+
## Confirmation
|
|
216
411
|
|
|
217
|
-
|
|
412
|
+
This decision is confirmed when:
|
|
218
413
|
|
|
219
|
-
- [
|
|
414
|
+
- [ ] Implementation complete per plan.md
|
|
415
|
+
- [ ] All verification steps pass
|
|
220
416
|
```
|
|
221
417
|
|
|
222
|
-
|
|
418
|
+
Update bead and sync:
|
|
223
419
|
|
|
224
|
-
|
|
420
|
+
```typescript
|
|
421
|
+
bd_msg({
|
|
422
|
+
subj: "Plan approved",
|
|
423
|
+
body: `Approach: [selected option]\nTasks: [count]\nChild beads: [yes/no]\nEstimate: ~[N] tool calls`,
|
|
424
|
+
to: "all",
|
|
425
|
+
importance: "normal",
|
|
426
|
+
global: true,
|
|
427
|
+
});
|
|
428
|
+
|
|
429
|
+
bd_release({ _: true });
|
|
430
|
+
bd_sync({ reason: "Plan approved for $ARGUMENTS" });
|
|
431
|
+
```
|
|
225
432
|
|
|
226
433
|
## Output
|
|
227
434
|
|
|
435
|
+
### Without Child Beads
|
|
436
|
+
|
|
228
437
|
```
|
|
229
438
|
Plan Approved: <bead-id>
|
|
230
439
|
━━━━━━━━━━━━━━━━━━━━━━━━
|
|
231
440
|
|
|
232
441
|
Approach: [selected option]
|
|
233
|
-
|
|
234
|
-
|
|
442
|
+
Tasks: [count] (tracked in plan.md)
|
|
443
|
+
Estimate: ~[N] tool calls
|
|
235
444
|
|
|
236
|
-
|
|
445
|
+
Artifacts:
|
|
446
|
+
- .beads/artifacts/<bead-id>/design.md (approved)
|
|
447
|
+
- .beads/artifacts/<bead-id>/plan.md
|
|
448
|
+
- .beads/artifacts/<bead-id>/adr.md
|
|
237
449
|
|
|
238
450
|
Next: /implement <bead-id>
|
|
239
451
|
```
|
|
452
|
+
|
|
453
|
+
### With Child Beads
|
|
454
|
+
|
|
455
|
+
```
|
|
456
|
+
Plan Approved: <bead-id> (Epic)
|
|
457
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
458
|
+
|
|
459
|
+
Approach: [selected option]
|
|
460
|
+
Child beads created: [count]
|
|
461
|
+
|
|
462
|
+
Subtasks:
|
|
463
|
+
├── <bead>.1: [Task 1] [S] ← READY
|
|
464
|
+
├── <bead>.2: [Task 2a] [M] ← blocked by .1
|
|
465
|
+
├── <bead>.3: [Task 2b] [M] ← blocked by .1
|
|
466
|
+
├── <bead>.4: [Task 3] [S] ← blocked by .1
|
|
467
|
+
└── <bead>.5: [Task 4] [M] ← blocked by .2, .3
|
|
468
|
+
|
|
469
|
+
Parallel Tracks:
|
|
470
|
+
• Track A: .1 → .2 → .5
|
|
471
|
+
• Track B: .1 → .3 → .5
|
|
472
|
+
• Track C: .1 → .4
|
|
473
|
+
|
|
474
|
+
Artifacts:
|
|
475
|
+
- .beads/artifacts/<bead-id>/design.md
|
|
476
|
+
- .beads/artifacts/<bead-id>/plan.md
|
|
477
|
+
- .beads/artifacts/<bead-id>/adr.md
|
|
478
|
+
|
|
479
|
+
Next Steps:
|
|
480
|
+
├── Start first task: /implement <bead>.1
|
|
481
|
+
├── See ready work: bd ready
|
|
482
|
+
└── See parallel plan: bd_plan()
|
|
483
|
+
|
|
484
|
+
For parallel agents:
|
|
485
|
+
├── Agent 1 (backend): claim <bead>.1
|
|
486
|
+
├── Agent 2 (frontend): wait for .1, then claim .3
|
|
487
|
+
└── Agent 3 (qa): wait for .2 and .3, then claim .5
|
|
488
|
+
```
|
|
489
|
+
|
|
490
|
+
## When to Create Child Beads
|
|
491
|
+
|
|
492
|
+
| Scenario | Create Beads? |
|
|
493
|
+
| ------------------------------- | ------------------------------------ |
|
|
494
|
+
| Simple task, single domain | No - use plan.md checklist |
|
|
495
|
+
| 2-3 tasks, same domain | No - use plan.md checklist |
|
|
496
|
+
| 3+ tasks, multiple domains | Yes - enables parallel agents |
|
|
497
|
+
| Tasks with complex dependencies | Yes - beads tracks dependencies |
|
|
498
|
+
| Long-running work (days) | Yes - better progress tracking |
|
|
499
|
+
| Work that may span sessions | Yes - beads persists across sessions |
|
|
500
|
+
|
|
501
|
+
## Integration with Agent Workflow
|
|
502
|
+
|
|
503
|
+
After plan creates child beads:
|
|
504
|
+
|
|
505
|
+
```typescript
|
|
506
|
+
// Any agent can check ready work
|
|
507
|
+
bd_init({ team: "project", role: "backend" });
|
|
508
|
+
bd_ready(); // Shows <parent>.1 as ready
|
|
509
|
+
|
|
510
|
+
// Agent claims and works
|
|
511
|
+
bd_claim(); // Gets <parent>.1
|
|
512
|
+
// ... do the work ...
|
|
513
|
+
bd_done({ id: "<parent>.1", msg: "Completed setup" });
|
|
514
|
+
|
|
515
|
+
// Now <parent>.2, .3, .4 become ready (unblocked)
|
|
516
|
+
// Multiple agents can claim them in parallel
|
|
517
|
+
```
|
|
518
|
+
|
|
519
|
+
## Examples
|
|
520
|
+
|
|
521
|
+
```bash
|
|
522
|
+
/plan bd-auth01 # Plan without creating beads
|
|
523
|
+
/plan bd-auth01 --create-beads # Plan and create child beads
|
|
524
|
+
/plan bd-auth01 --parallel # Focus on parallel execution
|
|
525
|
+
/plan bd-auth01 --create-beads --parallel # Full decomposition
|
|
526
|
+
```
|