opencodekit 0.16.14 → 0.16.17
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/AGENTS.md +1 -1
- package/dist/template/.opencode/agent/plan.md +77 -161
- package/dist/template/.opencode/command/create.md +75 -307
- package/dist/template/.opencode/command/design.md +53 -589
- package/dist/template/.opencode/command/handoff.md +76 -180
- package/dist/template/.opencode/command/init.md +45 -211
- package/dist/template/.opencode/command/plan.md +62 -514
- package/dist/template/.opencode/command/pr.md +56 -226
- package/dist/template/.opencode/command/research.md +55 -266
- package/dist/template/.opencode/command/resume.md +33 -138
- package/dist/template/.opencode/command/review-codebase.md +54 -202
- package/dist/template/.opencode/command/ship.md +78 -127
- package/dist/template/.opencode/command/start.md +47 -577
- package/dist/template/.opencode/command/status.md +55 -354
- package/dist/template/.opencode/command/ui-review.md +52 -298
- package/dist/template/.opencode/command/verify.md +36 -250
- package/dist/template/.opencode/dcp.jsonc +10 -9
- package/dist/template/.opencode/memory.db-shm +0 -0
- package/dist/template/.opencode/memory.db-wal +0 -0
- package/dist/template/.opencode/plugin/README.md +8 -4
- package/dist/template/.opencode/plugin/swarm-enforcer.ts +182 -27
- package/dist/template/.opencode/skill/augment-context-engine/SKILL.md +112 -0
- package/dist/template/.opencode/skill/augment-context-engine/mcp.json +6 -0
- package/dist/template/.opencode/skill/core-data-expert/SKILL.md +82 -0
- package/dist/template/.opencode/skill/core-data-expert/references/batch-operations.md +543 -0
- package/dist/template/.opencode/skill/core-data-expert/references/cloudkit-integration.md +259 -0
- package/dist/template/.opencode/skill/core-data-expert/references/concurrency.md +522 -0
- package/dist/template/.opencode/skill/core-data-expert/references/fetch-requests.md +643 -0
- package/dist/template/.opencode/skill/core-data-expert/references/glossary.md +233 -0
- package/dist/template/.opencode/skill/core-data-expert/references/migration.md +393 -0
- package/dist/template/.opencode/skill/core-data-expert/references/model-configuration.md +597 -0
- package/dist/template/.opencode/skill/core-data-expert/references/performance.md +300 -0
- package/dist/template/.opencode/skill/core-data-expert/references/persistent-history.md +553 -0
- package/dist/template/.opencode/skill/core-data-expert/references/project-audit.md +60 -0
- package/dist/template/.opencode/skill/core-data-expert/references/saving.md +574 -0
- package/dist/template/.opencode/skill/core-data-expert/references/stack-setup.md +625 -0
- package/dist/template/.opencode/skill/core-data-expert/references/testing.md +300 -0
- package/dist/template/.opencode/skill/core-data-expert/references/threading.md +589 -0
- package/dist/template/.opencode/skill/swift-concurrency/SKILL.md +246 -0
- package/dist/template/.opencode/skill/swift-concurrency/references/actors.md +640 -0
- package/dist/template/.opencode/skill/swift-concurrency/references/async-algorithms.md +822 -0
- package/dist/template/.opencode/skill/swift-concurrency/references/async-await-basics.md +249 -0
- package/dist/template/.opencode/skill/swift-concurrency/references/async-sequences.md +670 -0
- package/dist/template/.opencode/skill/swift-concurrency/references/core-data.md +533 -0
- package/dist/template/.opencode/skill/swift-concurrency/references/glossary.md +128 -0
- package/dist/template/.opencode/skill/swift-concurrency/references/linting.md +142 -0
- package/dist/template/.opencode/skill/swift-concurrency/references/memory-management.md +542 -0
- package/dist/template/.opencode/skill/swift-concurrency/references/migration.md +1076 -0
- package/dist/template/.opencode/skill/swift-concurrency/references/performance.md +574 -0
- package/dist/template/.opencode/skill/swift-concurrency/references/sendable.md +578 -0
- package/dist/template/.opencode/skill/swift-concurrency/references/tasks.md +604 -0
- package/dist/template/.opencode/skill/swift-concurrency/references/testing.md +565 -0
- package/dist/template/.opencode/skill/swift-concurrency/references/threading.md +452 -0
- package/dist/template/.opencode/skill/swiftui-expert-skill/SKILL.md +290 -0
- package/dist/template/.opencode/skill/swiftui-expert-skill/references/animation-advanced.md +351 -0
- package/dist/template/.opencode/skill/swiftui-expert-skill/references/animation-basics.md +284 -0
- package/dist/template/.opencode/skill/swiftui-expert-skill/references/animation-transitions.md +326 -0
- package/dist/template/.opencode/skill/swiftui-expert-skill/references/image-optimization.md +286 -0
- package/dist/template/.opencode/skill/swiftui-expert-skill/references/layout-best-practices.md +312 -0
- package/dist/template/.opencode/skill/swiftui-expert-skill/references/liquid-glass.md +377 -0
- package/dist/template/.opencode/skill/swiftui-expert-skill/references/list-patterns.md +153 -0
- package/dist/template/.opencode/skill/swiftui-expert-skill/references/modern-apis.md +400 -0
- package/dist/template/.opencode/skill/swiftui-expert-skill/references/performance-patterns.md +377 -0
- package/dist/template/.opencode/skill/swiftui-expert-skill/references/scroll-patterns.md +305 -0
- package/dist/template/.opencode/skill/swiftui-expert-skill/references/sheet-navigation-patterns.md +292 -0
- package/dist/template/.opencode/skill/swiftui-expert-skill/references/state-management.md +447 -0
- package/dist/template/.opencode/skill/swiftui-expert-skill/references/text-formatting.md +285 -0
- package/dist/template/.opencode/skill/swiftui-expert-skill/references/view-structure.md +276 -0
- package/package.json +1 -1
|
@@ -1,558 +1,106 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Create implementation plan for a bead
|
|
3
|
-
argument-hint: "<bead-id> [--create-beads]
|
|
2
|
+
description: Create detailed implementation plan with TDD steps for a bead
|
|
3
|
+
argument-hint: "<bead-id> [--create-beads]"
|
|
4
4
|
agent: plan
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Plan: $ARGUMENTS
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Create a detailed implementation plan with TDD steps. Optional deep-planning between `/start` and `/ship`.
|
|
10
10
|
|
|
11
|
-
> **
|
|
11
|
+
> **Workflow:** `/create` → `/start <id>` → **`/plan <id>`** (optional) → `/ship <id>`
|
|
12
|
+
>
|
|
13
|
+
> ⛔ Bead MUST be `in_progress` with `prd.md`. Use `/start` first.
|
|
14
|
+
>
|
|
15
|
+
> **When to use:** Complex tasks where PRD verification steps aren't enough guidance. Skip for simple tasks.
|
|
12
16
|
|
|
13
|
-
##
|
|
14
|
-
|
|
15
|
-
| Argument | Default | Description |
|
|
16
|
-
| ---------------- | -------- | ----------------------------------------- |
|
|
17
|
-
| `<bead-id>` | required | The bead to plan |
|
|
18
|
-
| `--create-beads` | false | Create child beads after planning |
|
|
19
|
-
| `--parallel` | false | Run aggressive parallel subagent research |
|
|
20
|
-
|
|
21
|
-
## Load Skills & Context
|
|
17
|
+
## Load Skills
|
|
22
18
|
|
|
23
19
|
```typescript
|
|
24
|
-
skill({ name: "development-lifecycle" }); // Phase guidance
|
|
25
20
|
skill({ name: "beads" });
|
|
26
|
-
skill({ name: "
|
|
27
|
-
skill({ name: "executing-plans" });
|
|
28
|
-
skill({ name: "writing-plans" });
|
|
29
|
-
skill({ name: "subagent-driven-development" });
|
|
30
|
-
skill({ name: "memory-system" });
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
```bash
|
|
34
|
-
br show $ARGUMENTS
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
Check for existing artifacts:
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
cat .beads/artifacts/$ARGUMENTS/prd.md 2>/dev/null || echo "No PRD found"
|
|
41
|
-
cat .beads/artifacts/$ARGUMENTS/research.md 2>/dev/null || echo "No research found"
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
**If prd.md missing:** "Create a PRD first using `/create \"description\"` command."
|
|
45
|
-
|
|
46
|
-
**If complexity > M and no research:** "Consider `/research $ARGUMENTS` first for better planning."
|
|
47
|
-
|
|
48
|
-
## Templates Reference
|
|
49
|
-
|
|
50
|
-
Copy templates from `.opencode/memory/_templates/` to bead artifacts folder:
|
|
51
|
-
|
|
52
|
-
```bash
|
|
53
|
-
# Copy templates to bead folder
|
|
54
|
-
BEAD_DIR=".beads/artifacts/$ARGUMENTS"
|
|
55
|
-
mkdir -p "$BEAD_DIR"
|
|
56
|
-
|
|
57
|
-
# Copy design template (we'll fill it in Phase 3)
|
|
58
|
-
cp .opencode/memory/_templates/design.md "$BEAD_DIR/design.md"
|
|
59
|
-
|
|
60
|
-
# Copy tasks template (we'll fill it in Phase 6)
|
|
61
|
-
cp .opencode/memory/_templates/tasks.md "$BEAD_DIR/tasks.md"
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
| Template | Purpose | Phase Used |
|
|
65
|
-
| ----------- | ----------------------------- | ---------- |
|
|
66
|
-
| `prd.md` | Goal, scope, success criteria | Input |
|
|
67
|
-
| `design.md` | Architecture decision records | Phase 3 |
|
|
68
|
-
| `tasks.md` | Numbered implementation steps | Phase 6 |
|
|
69
|
-
|
|
70
|
-
## Check Memory First (Semantic Search)
|
|
71
|
-
|
|
72
|
-
Before subagent research, check what we already know:
|
|
73
|
-
|
|
74
|
-
```typescript
|
|
75
|
-
// Find similar past plans
|
|
76
|
-
memory_search({ query: "[bead title/description]", limit: 3 });
|
|
77
|
-
|
|
78
|
-
// Find related patterns and decisions
|
|
79
|
-
memory_search({ query: "[domain keywords] gotchas patterns", limit: 3 });
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
Review findings for:
|
|
83
|
-
|
|
84
|
-
- Similar plans that worked well (reuse structure)
|
|
85
|
-
- Patterns and decisions already made
|
|
86
|
-
- Gotchas to avoid in planning
|
|
87
|
-
|
|
88
|
-
If memory search fails (Ollama not running), continue to subagent research.
|
|
89
|
-
|
|
90
|
-
---
|
|
91
|
-
|
|
92
|
-
## Phase 1: Parallel Subagent Research
|
|
93
|
-
|
|
94
|
-
Gather context before designing. Run both in parallel:
|
|
95
|
-
|
|
96
|
-
```typescript
|
|
97
|
-
// Codebase patterns - run in parallel with scout
|
|
98
|
-
Task({
|
|
99
|
-
subagent_type: "explore",
|
|
100
|
-
description: "Explore codebase for planning",
|
|
101
|
-
prompt: `For planning $ARGUMENTS, research the codebase:
|
|
102
|
-
1. Find similar implementations or patterns
|
|
103
|
-
2. Identify affected files and their structure
|
|
104
|
-
3. Find related tests and testing patterns
|
|
105
|
-
4. Check for potential conflicts with in-progress work
|
|
106
|
-
Return: File paths, code patterns, test approach, conflicts`,
|
|
107
|
-
});
|
|
108
|
-
|
|
109
|
-
// External best practices - run in parallel with explore
|
|
110
|
-
Task({
|
|
111
|
-
subagent_type: "scout",
|
|
112
|
-
description: "Research implementation approaches",
|
|
113
|
-
prompt: `Research implementation approaches for $ARGUMENTS:
|
|
114
|
-
1. Best practices from official documentation
|
|
115
|
-
2. Common patterns in open source projects
|
|
116
|
-
3. Pitfalls and anti-patterns to avoid
|
|
117
|
-
Return: Recommendations, code examples, warnings`,
|
|
118
|
-
});
|
|
119
|
-
|
|
120
|
-
// Both run in parallel, results available immediately
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
**Integrate findings into your plan.**
|
|
124
|
-
|
|
125
|
-
## Skill Routing
|
|
126
|
-
|
|
127
|
-
- Use **deep-research** when the domain is unfamiliar or ambiguous.
|
|
128
|
-
- Use **writing-plans** when producing a detailed, step-by-step implementation plan.
|
|
129
|
-
- Use **executing-plans** only when a complete plan already exists and needs execution.
|
|
130
|
-
|
|
131
|
-
---
|
|
132
|
-
|
|
133
|
-
## Phase 2: Analyze for Decomposition
|
|
134
|
-
|
|
135
|
-
Determine the right level of granularity.
|
|
136
|
-
|
|
137
|
-
### Hierarchy Decision Tree
|
|
138
|
-
|
|
139
|
-
```
|
|
140
|
-
Is this work...
|
|
141
|
-
├── Single domain, 2-3 files, ~50 tool calls?
|
|
142
|
-
│ └── Keep as single bead → Skip to "Generate Design Options"
|
|
143
|
-
│
|
|
144
|
-
├── Crosses domains (frontend + backend)?
|
|
145
|
-
│ └── Create task per domain
|
|
146
|
-
│
|
|
147
|
-
├── Has natural phases (setup → implement → test)?
|
|
148
|
-
│ └── Create task per phase
|
|
149
|
-
│
|
|
150
|
-
├── Could benefit from parallel agents?
|
|
151
|
-
│ └── Create independent tasks
|
|
152
|
-
│
|
|
153
|
-
└── Would take multiple sessions?
|
|
154
|
-
└── Create epic with task breakdown
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
### Size Estimation Guide
|
|
158
|
-
|
|
159
|
-
| Size | Tool Calls | Duration | Hierarchy Level |
|
|
160
|
-
| ---- | ---------- | --------- | --------------- |
|
|
161
|
-
| S | ~10 | 30 min | Subtask |
|
|
162
|
-
| M | ~30 | 1-2 hours | Task |
|
|
163
|
-
| L | ~100 | 4-8 hours | Task (or Epic) |
|
|
164
|
-
| XL | 100+ | Days | Epic required |
|
|
165
|
-
|
|
166
|
-
**If XL detected:** "This requires epic-level decomposition. Creating subtasks is mandatory."
|
|
167
|
-
|
|
168
|
-
---
|
|
169
|
-
|
|
170
|
-
## Phase 3: Generate Design Options
|
|
171
|
-
|
|
172
|
-
Present 2-3 implementation approaches:
|
|
173
|
-
|
|
174
|
-
```markdown
|
|
175
|
-
## Design Options for $ARGUMENTS
|
|
176
|
-
|
|
177
|
-
### Option A: [Name]
|
|
178
|
-
|
|
179
|
-
**Approach:** [1-2 sentences]
|
|
180
|
-
|
|
181
|
-
**Changes:**
|
|
182
|
-
|
|
183
|
-
- `src/foo.ts` - [what]
|
|
184
|
-
- `src/bar.ts` - [what]
|
|
185
|
-
|
|
186
|
-
**Pros:** [list]
|
|
187
|
-
**Cons:** [list]
|
|
188
|
-
**Effort:** [S/M/L] (~N tool calls)
|
|
189
|
-
|
|
190
|
-
---
|
|
191
|
-
|
|
192
|
-
### Option B: [Name]
|
|
193
|
-
|
|
194
|
-
**Approach:** [1-2 sentences]
|
|
195
|
-
|
|
196
|
-
**Changes:**
|
|
197
|
-
|
|
198
|
-
- `src/different.ts` - [what]
|
|
199
|
-
|
|
200
|
-
**Pros:** [list]
|
|
201
|
-
**Cons:** [list]
|
|
202
|
-
**Effort:** [S/M/L] (~N tool calls)
|
|
203
|
-
|
|
204
|
-
---
|
|
205
|
-
|
|
206
|
-
### Recommendation
|
|
207
|
-
|
|
208
|
-
Option [X] because [reason].
|
|
209
|
-
|
|
210
|
-
Decomposition: [Single bead | X tasks | X tasks with subtasks]
|
|
211
|
-
```
|
|
212
|
-
|
|
213
|
-
Save to `.beads/artifacts/$ARGUMENTS/design.md`.
|
|
214
|
-
|
|
215
|
-
**STOP. Use question tool to ask user to pick an option:**
|
|
216
|
-
|
|
217
|
-
```typescript
|
|
218
|
-
question({
|
|
219
|
-
questions: [
|
|
220
|
-
{
|
|
221
|
-
header: "Design",
|
|
222
|
-
question: "Which implementation approach should I use for $ARGUMENTS?",
|
|
223
|
-
options: [
|
|
224
|
-
{ label: "Option A (Recommended)", description: "[Option A summary]" },
|
|
225
|
-
{ label: "Option B", description: "[Option B summary]" },
|
|
226
|
-
{ label: "Option C", description: "[Option C summary]" },
|
|
227
|
-
],
|
|
228
|
-
},
|
|
229
|
-
],
|
|
230
|
-
});
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
Wait for user's answer before proceeding.
|
|
234
|
-
|
|
235
|
-
---
|
|
236
|
-
|
|
237
|
-
## Phase 4: Create Task Hierarchy
|
|
238
|
-
|
|
239
|
-
After user approval, design the hierarchy.
|
|
240
|
-
|
|
241
|
-
### For Single Bead (S/M size)
|
|
242
|
-
|
|
243
|
-
Skip hierarchy, go directly to plan.md.
|
|
244
|
-
|
|
245
|
-
### For Multi-Task Work (L/XL size)
|
|
246
|
-
|
|
247
|
-
Design the decomposition:
|
|
248
|
-
|
|
249
|
-
```markdown
|
|
250
|
-
## Task Breakdown
|
|
251
|
-
|
|
252
|
-
### Task 1: [Foundation/Setup] [S]
|
|
253
|
-
|
|
254
|
-
**Domain:** [backend/frontend/infra]
|
|
255
|
-
**Blocked by:** None
|
|
256
|
-
**Work:**
|
|
257
|
-
|
|
258
|
-
- [Specific deliverable]
|
|
259
|
-
- [Specific deliverable]
|
|
260
|
-
|
|
261
|
-
### Task 2: [Core Implementation] [M]
|
|
262
|
-
|
|
263
|
-
**Domain:** [backend/frontend/infra]
|
|
264
|
-
**Blocked by:** Task 1
|
|
265
|
-
**Work:**
|
|
266
|
-
|
|
267
|
-
- [Specific deliverable]
|
|
268
|
-
|
|
269
|
-
**Subtasks (if complex):**
|
|
270
|
-
|
|
271
|
-
- 2.1: [Atomic unit of work] [S]
|
|
272
|
-
- 2.2: [Atomic unit of work] [S] → blocked by 2.1
|
|
273
|
-
|
|
274
|
-
### Task 3: [Integration/Testing] [S]
|
|
275
|
-
|
|
276
|
-
**Domain:** [testing]
|
|
277
|
-
**Blocked by:** Task 2
|
|
278
|
-
**Work:**
|
|
279
|
-
|
|
280
|
-
- [Specific deliverable]
|
|
281
|
-
```
|
|
282
|
-
|
|
283
|
-
---
|
|
284
|
-
|
|
285
|
-
## Phase 5: Create Child Beads (if --create-beads)
|
|
286
|
-
|
|
287
|
-
With user approval or `--create-beads` flag:
|
|
288
|
-
|
|
289
|
-
```bash
|
|
290
|
-
# Get parent bead ID
|
|
291
|
-
PARENT=$ARGUMENTS
|
|
292
|
-
|
|
293
|
-
# Task 1 (no blockers - starts immediately)
|
|
294
|
-
br create "[Task 1 title]" --type task --priority 2
|
|
295
|
-
# Capture: br-xxx1
|
|
296
|
-
|
|
297
|
-
# Link to parent
|
|
298
|
-
br dep add br-xxx1 $PARENT
|
|
299
|
-
|
|
300
|
-
# Task 2 (blocked by Task 1)
|
|
301
|
-
br create "[Task 2 title]" --type task --priority 2
|
|
302
|
-
# Capture: br-xxx2
|
|
303
|
-
|
|
304
|
-
br dep add br-xxx2 $PARENT
|
|
305
|
-
br dep add br-xxx2 br-xxx1 # br-xxx2 blocked by br-xxx1
|
|
306
|
-
|
|
307
|
-
# Task 3 (blocked by Task 2)
|
|
308
|
-
br create "[Task 3 title]" --type task --priority 2
|
|
309
|
-
# Capture: br-xxx3
|
|
310
|
-
|
|
311
|
-
br dep add br-xxx3 $PARENT
|
|
312
|
-
br dep add br-xxx3 br-xxx2 # br-xxx3 blocked by br-xxx2
|
|
21
|
+
skill({ name: "writing-plans" }); // TDD plan format
|
|
313
22
|
```
|
|
314
23
|
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
```bash
|
|
318
|
-
# For Task 2, create subtasks:
|
|
319
|
-
br create "[Subtask 2.1 title]" --type subtask --priority 2
|
|
320
|
-
# Capture: br-xxx2.1
|
|
321
|
-
|
|
322
|
-
br dep add br-xxx2.1 br-xxx2
|
|
323
|
-
|
|
324
|
-
br create "[Subtask 2.2 title]" --type subtask --priority 2
|
|
325
|
-
# Capture: br-xxx2.2
|
|
24
|
+
## Parse Arguments
|
|
326
25
|
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
26
|
+
| Argument | Default | Description |
|
|
27
|
+
| ---------------- | -------- | --------------------------------- |
|
|
28
|
+
| `<bead-id>` | required | The bead to plan |
|
|
29
|
+
| `--create-beads` | false | Create child beads for each phase |
|
|
330
30
|
|
|
331
|
-
|
|
31
|
+
## Phase 1: Guards
|
|
332
32
|
|
|
333
33
|
```bash
|
|
334
|
-
br
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
---
|
|
338
|
-
|
|
339
|
-
## Phase 6: Create Plan Document
|
|
340
|
-
|
|
341
|
-
Write `.beads/artifacts/$ARGUMENTS/plan.md`:
|
|
342
|
-
|
|
343
|
-
```markdown
|
|
344
|
-
# Implementation Plan: [Title]
|
|
345
|
-
|
|
346
|
-
**Bead:** $ARGUMENTS
|
|
347
|
-
**Approach:** [Selected option]
|
|
348
|
-
**Total estimate:** ~N tool calls ([X-Y hours])
|
|
349
|
-
|
|
350
|
-
## Hierarchy
|
|
351
|
-
```
|
|
352
|
-
|
|
353
|
-
$ARGUMENTS (Epic/Task)
|
|
354
|
-
├── br-xxx1: [Title] [S] ← READY
|
|
355
|
-
├── br-xxx2: [Title] [M] → blocked by br-xxx1
|
|
356
|
-
│ ├── br-xxx2.1: [Subtask] [S]
|
|
357
|
-
│ └── br-xxx2.2: [Subtask] [S] → blocked by br-xxx2.1
|
|
358
|
-
└── br-xxx3: [Title] [S] → blocked by br-xxx2
|
|
359
|
-
|
|
34
|
+
br show $ARGUMENTS
|
|
35
|
+
ls .beads/artifacts/$ARGUMENTS/
|
|
360
36
|
```
|
|
361
37
|
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
## Task 1: [Title] [S]
|
|
365
|
-
|
|
366
|
-
**Bead:** br-xxx1
|
|
367
|
-
**Estimate:** ~10 tool calls (30 min)
|
|
368
|
-
**Blocked by:** None
|
|
369
|
-
|
|
370
|
-
**Files:**
|
|
371
|
-
- `src/foo.ts`
|
|
372
|
-
|
|
373
|
-
**Changes:**
|
|
374
|
-
- [ ] [Specific change with detail]
|
|
375
|
-
- [ ] [Specific change with detail]
|
|
376
|
-
|
|
377
|
-
**Verify:** `npm test -- foo.test.ts`
|
|
378
|
-
|
|
379
|
-
---
|
|
380
|
-
|
|
381
|
-
## Task 2: [Title] [M]
|
|
382
|
-
|
|
383
|
-
**Bead:** br-xxx2
|
|
384
|
-
**Estimate:** ~30 tool calls (1-2 hours)
|
|
385
|
-
**Blocked by:** Task 1
|
|
386
|
-
|
|
387
|
-
**Subtasks:**
|
|
388
|
-
|
|
389
|
-
### 2.1: [Subtask Title] [S]
|
|
390
|
-
|
|
391
|
-
**Bead:** br-xxx2.1
|
|
392
|
-
**Files:** `src/bar.ts`
|
|
393
|
-
**Changes:**
|
|
394
|
-
- [ ] [Specific change]
|
|
395
|
-
|
|
396
|
-
**Verify:** `npm test -- bar.test.ts`
|
|
397
|
-
|
|
398
|
-
### 2.2: [Subtask Title] [S]
|
|
399
|
-
|
|
400
|
-
**Bead:** br-xxx2.2
|
|
401
|
-
**Blocked by:** 2.1
|
|
402
|
-
**Files:** `src/baz.ts`
|
|
403
|
-
**Changes:**
|
|
404
|
-
- [ ] [Specific change]
|
|
405
|
-
|
|
406
|
-
**Verify:** `npm test -- baz.test.ts`
|
|
407
|
-
|
|
408
|
-
---
|
|
38
|
+
Verify:
|
|
409
39
|
|
|
410
|
-
|
|
40
|
+
- Bead is `in_progress`
|
|
41
|
+
- `prd.md` exists
|
|
42
|
+
- If `plan.md` already exists, ask user: overwrite or skip?
|
|
411
43
|
|
|
412
|
-
|
|
413
|
-
**Estimate:** ~10 tool calls (30 min)
|
|
414
|
-
**Blocked by:** Task 2
|
|
44
|
+
## Phase 2: Research
|
|
415
45
|
|
|
416
|
-
|
|
417
|
-
- `tests/integration/`
|
|
46
|
+
Read the PRD and extract tasks, success criteria, affected files, scope.
|
|
418
47
|
|
|
419
|
-
|
|
420
|
-
- [ ] [Specific change]
|
|
48
|
+
Spawn parallel agents to gather implementation context:
|
|
421
49
|
|
|
422
|
-
|
|
50
|
+
| Agent | Purpose |
|
|
51
|
+
| --------- | -------------------------------------------------------------------- |
|
|
52
|
+
| `explore` | Codebase patterns, affected file structure, test patterns, conflicts |
|
|
53
|
+
| `scout` | Best practices, common patterns, pitfalls |
|
|
423
54
|
|
|
424
|
-
|
|
55
|
+
## Phase 3: Decompose
|
|
425
56
|
|
|
426
|
-
|
|
57
|
+
Assess size to determine plan structure:
|
|
427
58
|
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
-
|
|
431
|
-
|
|
59
|
+
| Size | Files | Approach |
|
|
60
|
+
| ------------- | ---------------------------------------- | -------- |
|
|
61
|
+
| S (1-3 files) | Single plan, no phases |
|
|
62
|
+
| M (3-8 files) | 2-3 phases |
|
|
63
|
+
| L (8+ files) | Create child beads with `--create-beads` |
|
|
432
64
|
|
|
433
|
-
##
|
|
65
|
+
## Phase 4: Write Plan
|
|
434
66
|
|
|
435
|
-
|
|
436
|
-
1. [Rollback step 1]
|
|
437
|
-
2. [Rollback step 2]
|
|
438
|
-
```
|
|
67
|
+
Write `.beads/artifacts/$ARGUMENTS/plan.md` following the `writing-plans` skill format:
|
|
439
68
|
|
|
440
|
-
|
|
69
|
+
- **Exact file paths** — never "add to the relevant file"
|
|
70
|
+
- **Complete code** — never "add validation logic here"
|
|
71
|
+
- **Exact commands with expected output**
|
|
72
|
+
- **TDD order** — test first, then implementation
|
|
73
|
+
- **Each step is 2-5 minutes** — one action per step
|
|
74
|
+
- **Tasks map to PRD tasks**
|
|
441
75
|
|
|
442
|
-
## Phase
|
|
76
|
+
## Phase 5: Create Child Beads (if --create-beads or L size)
|
|
443
77
|
|
|
444
|
-
|
|
78
|
+
For large work, create child beads for each plan phase:
|
|
445
79
|
|
|
446
80
|
```bash
|
|
447
|
-
|
|
448
|
-
br
|
|
81
|
+
CHILD=$(br create "[Phase title]" --type task --json | jq -r '.id')
|
|
82
|
+
br dep add $CHILD $ARGUMENTS
|
|
449
83
|
```
|
|
450
84
|
|
|
451
|
-
|
|
452
|
-
// Fire all READY tasks in parallel with beads integration
|
|
453
|
-
for (const task of readyTasks) {
|
|
454
|
-
background_start({
|
|
455
|
-
agent: "build",
|
|
456
|
-
prompt: `Execute ${task.id}: ${task.title}
|
|
457
|
-
|
|
458
|
-
Context: Part of plan for $ARGUMENTS
|
|
459
|
-
Spec: See .beads/artifacts/$ARGUMENTS/plan.md
|
|
460
|
-
|
|
461
|
-
Requirements:
|
|
462
|
-
- Complete work items for this task
|
|
463
|
-
- Run verification commands from plan
|
|
464
|
-
- Commit with bead ID in message
|
|
85
|
+
## Phase 6: Report
|
|
465
86
|
|
|
466
|
-
|
|
467
|
-
beadId: task.id,
|
|
468
|
-
autoCloseBead: true,
|
|
469
|
-
title: `exec-${task.id}`
|
|
470
|
-
})
|
|
471
|
-
}
|
|
472
|
-
|
|
473
|
-
// Collect results
|
|
474
|
-
for (const taskId of backgroundTaskIds) {
|
|
475
|
-
background_output({ taskId }) // → beadClosed: true
|
|
476
|
-
}
|
|
477
|
-
|
|
478
|
-
// Check newly unblocked tasks
|
|
479
|
-
br ready // → Next wave of tasks now READY
|
|
480
|
-
|
|
481
|
-
// Cleanup
|
|
482
|
-
background_cancel({ all: true })
|
|
483
|
-
```
|
|
484
|
-
|
|
485
|
-
---
|
|
87
|
+
Output:
|
|
486
88
|
|
|
487
|
-
|
|
89
|
+
1. Task count and total TDD steps
|
|
90
|
+
2. Files affected
|
|
91
|
+
3. Plan location (`.beads/artifacts/$ARGUMENTS/plan.md`)
|
|
92
|
+
4. Child bead hierarchy (if created)
|
|
93
|
+
5. Next step: `/ship $ARGUMENTS`
|
|
488
94
|
|
|
489
95
|
```bash
|
|
490
|
-
br
|
|
96
|
+
br comments add $ARGUMENTS "Created plan.md with [N] tasks, [M] TDD steps"
|
|
491
97
|
```
|
|
492
98
|
|
|
493
|
-
### Output (without child beads)
|
|
494
|
-
|
|
495
|
-
```
|
|
496
|
-
Plan Complete: $ARGUMENTS
|
|
497
|
-
━━━━━━━━━━━━━━━━━━━━━━━━
|
|
498
|
-
|
|
499
|
-
Approach: [Selected option]
|
|
500
|
-
Tasks: 1 (single bead)
|
|
501
|
-
Estimate: ~N tool calls
|
|
502
|
-
|
|
503
|
-
Artifacts:
|
|
504
|
-
├── .beads/artifacts/$ARGUMENTS/design.md
|
|
505
|
-
└── .beads/artifacts/$ARGUMENTS/plan.md
|
|
506
|
-
|
|
507
|
-
Next: /implement $ARGUMENTS
|
|
508
|
-
```
|
|
509
|
-
|
|
510
|
-
### Output (with child beads)
|
|
511
|
-
|
|
512
|
-
```
|
|
513
|
-
Plan Complete: $ARGUMENTS (Epic)
|
|
514
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
515
|
-
|
|
516
|
-
Approach: [Selected option]
|
|
517
|
-
Total estimate: ~N tool calls ([X-Y hours])
|
|
518
|
-
|
|
519
|
-
Hierarchy:
|
|
520
|
-
├── br-xxx1: [Title] [S] ← READY
|
|
521
|
-
├── br-xxx2: [Title] [M] → blocked by br-xxx1
|
|
522
|
-
│ ├── br-xxx2.1: [Subtask] [S]
|
|
523
|
-
│ └── br-xxx2.2: [Subtask] [S]
|
|
524
|
-
└── br-xxx3: [Title] [S] → blocked by br-xxx2
|
|
525
|
-
|
|
526
|
-
Artifacts:
|
|
527
|
-
├── .beads/artifacts/$ARGUMENTS/design.md
|
|
528
|
-
└── .beads/artifacts/$ARGUMENTS/plan.md
|
|
529
|
-
|
|
530
|
-
Ready to start: br-xxx1
|
|
531
|
-
|
|
532
|
-
Next: /start br-xxx1
|
|
533
|
-
```
|
|
534
|
-
|
|
535
|
-
---
|
|
536
|
-
|
|
537
|
-
## Subagent Delegation Summary
|
|
538
|
-
|
|
539
|
-
| Phase | Subagent | Purpose |
|
|
540
|
-
| ------------------ | ---------- | ------------------------------- |
|
|
541
|
-
| Research | `@explore` | Find codebase patterns |
|
|
542
|
-
| Research | `@scout` | Find best practices |
|
|
543
|
-
| Design options | None | Planner creates |
|
|
544
|
-
| Hierarchy creation | None | Planner uses `br` CLI |
|
|
545
|
-
| Implementation | `@build` | Delegated via `/start`, `/ship` |
|
|
546
|
-
|
|
547
|
-
**Key Rule:** Planner is read-only. Creates structure and artifacts. Build agent executes.
|
|
548
|
-
|
|
549
|
-
---
|
|
550
|
-
|
|
551
99
|
## Related Commands
|
|
552
100
|
|
|
553
|
-
| Need
|
|
554
|
-
|
|
|
555
|
-
|
|
|
556
|
-
| Start
|
|
557
|
-
|
|
|
558
|
-
|
|
|
101
|
+
| Need | Command |
|
|
102
|
+
| -------------- | ------------- |
|
|
103
|
+
| Create spec | `/create` |
|
|
104
|
+
| Start working | `/start <id>` |
|
|
105
|
+
| Execute plan | `/ship <id>` |
|
|
106
|
+
| Research first | `/research` |
|