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,51 +1,136 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Create
|
|
2
|
+
description: Create bead(s) with automatic complexity analysis and decomposition
|
|
3
3
|
argument-hint: "[optional title]"
|
|
4
4
|
agent: build
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Create Task
|
|
8
8
|
|
|
9
|
-
##
|
|
9
|
+
## Load Beads Skill
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
skill({ name: "beads" });
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
This skill provides the full beads workflow including Epic → Task → Subtask hierarchy.
|
|
16
|
+
|
|
17
|
+
## Phase 1: Check for Similar Work
|
|
18
|
+
|
|
19
|
+
Before creating, search for existing or past work:
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
memory_search({ query: "[keywords from title/problem]", type: "observations" });
|
|
23
|
+
bd_ls({ status: "all", limit: 20, offset: 0 });
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
If similar task exists:
|
|
27
|
+
|
|
28
|
+
- Link as dependency, or
|
|
29
|
+
- Extend existing task, or
|
|
30
|
+
- Confirm this is intentionally separate
|
|
31
|
+
|
|
32
|
+
## Phase 2: Interview
|
|
10
33
|
|
|
11
34
|
**If title provided:** Use `$ARGUMENTS` as starting point.
|
|
12
35
|
|
|
13
|
-
**If no title:** Ask:
|
|
36
|
+
**If no title:** Ask in one message:
|
|
14
37
|
|
|
15
38
|
1. "What problem are we solving?"
|
|
16
39
|
2. "Bug, feature, or task?"
|
|
17
40
|
3. "What's the acceptance criteria?"
|
|
41
|
+
4. "Any constraints or 'never do X' rules?"
|
|
42
|
+
5. "Related existing code or past work?"
|
|
18
43
|
|
|
19
|
-
Keep it brief. Get: clear goal, success criteria, scope.
|
|
44
|
+
Keep it brief. Get: clear goal, success criteria, scope, constraints.
|
|
20
45
|
|
|
21
|
-
## Phase
|
|
46
|
+
## Phase 3: Complexity Analysis
|
|
22
47
|
|
|
23
|
-
|
|
48
|
+
Analyze the request to determine if it should be a single bead or decomposed:
|
|
24
49
|
|
|
25
|
-
|
|
26
|
-
- **Priority**: 0 (critical) to 4 (low), default 2
|
|
27
|
-
- **Complexity**: quick | deep
|
|
50
|
+
### Complexity Signals
|
|
28
51
|
|
|
29
|
-
|
|
52
|
+
```
|
|
53
|
+
SIMPLE (Single Bead) COMPLEX (Needs Decomposition)
|
|
54
|
+
━━━━━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
55
|
+
• Single file change • Multiple unrelated files
|
|
56
|
+
• One clear action • Multiple distinct actions
|
|
57
|
+
• ~30 min or less • Hours/days of work
|
|
58
|
+
• No phases needed • Has natural phases
|
|
59
|
+
• One skill domain • Crosses domains (FE + BE)
|
|
60
|
+
• Bug fix or small feature • New system or major feature
|
|
61
|
+
```
|
|
30
62
|
|
|
31
|
-
|
|
63
|
+
### Automatic Classification
|
|
32
64
|
|
|
33
|
-
|
|
65
|
+
```typescript
|
|
66
|
+
const analyzeComplexity = (request: string) => {
|
|
67
|
+
const signals = {
|
|
68
|
+
// COMPLEX signals
|
|
69
|
+
multiDomain: /frontend.*backend|api.*ui|database.*interface/i,
|
|
70
|
+
multiPhase: /first.*then|phase|step \d|after.*before/i,
|
|
71
|
+
largeScope: /system|architecture|refactor.*entire|redesign/i,
|
|
72
|
+
multiComponent: /and.*and|multiple|several|all.*components/i,
|
|
73
|
+
integration: /integrate|connect|sync.*between/i,
|
|
74
|
+
|
|
75
|
+
// SIMPLE signals
|
|
76
|
+
singleAction: /fix|update|add|remove|change.*one/i,
|
|
77
|
+
bugFix: /bug|error|broken|not working|crash/i,
|
|
78
|
+
smallScope: /typo|config|env|readme|comment/i,
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
let complexScore = 0;
|
|
82
|
+
if (signals.multiDomain.test(request)) complexScore += 3;
|
|
83
|
+
if (signals.multiPhase.test(request)) complexScore += 2;
|
|
84
|
+
if (signals.largeScope.test(request)) complexScore += 3;
|
|
85
|
+
if (signals.multiComponent.test(request)) complexScore += 2;
|
|
86
|
+
if (signals.integration.test(request)) complexScore += 2;
|
|
87
|
+
|
|
88
|
+
let simpleScore = 0;
|
|
89
|
+
if (signals.singleAction.test(request)) simpleScore += 2;
|
|
90
|
+
if (signals.bugFix.test(request)) simpleScore += 1;
|
|
91
|
+
if (signals.smallScope.test(request)) simpleScore += 3;
|
|
92
|
+
|
|
93
|
+
return complexScore > simpleScore + 2 ? "COMPLEX" : "SIMPLE";
|
|
94
|
+
};
|
|
95
|
+
```
|
|
34
96
|
|
|
35
|
-
|
|
97
|
+
### Decision Point
|
|
36
98
|
|
|
37
99
|
```
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
Type: [type]
|
|
41
|
-
Priority: [0-4]
|
|
42
|
-
Complexity: [quick/deep]
|
|
43
|
-
Role: [fe/be/mobile/devops/qa] (optional, for multi-agent)
|
|
100
|
+
COMPLEXITY ANALYSIS
|
|
101
|
+
━━━━━━━━━━━━━━━━━━━
|
|
44
102
|
|
|
45
|
-
|
|
103
|
+
Request: "[user's request]"
|
|
104
|
+
|
|
105
|
+
Signals detected:
|
|
106
|
+
✓ Multiple domains (frontend + backend)
|
|
107
|
+
✓ Multi-phase work (setup → implement → test)
|
|
108
|
+
✓ Integration required
|
|
109
|
+
|
|
110
|
+
Classification: COMPLEX
|
|
111
|
+
|
|
112
|
+
Recommendation: Create Epic with 3-4 subtasks
|
|
113
|
+
|
|
114
|
+
Options:
|
|
115
|
+
1. [Recommended] Create Epic + decompose into subtasks
|
|
116
|
+
2. Create single bead (override complexity detection)
|
|
117
|
+
3. Let me clarify scope first
|
|
118
|
+
|
|
119
|
+
Choose (1/2/3): _
|
|
46
120
|
```
|
|
47
121
|
|
|
48
|
-
|
|
122
|
+
**STOP and wait for user confirmation.**
|
|
123
|
+
|
|
124
|
+
## Phase 4A: Simple Path (Single Bead)
|
|
125
|
+
|
|
126
|
+
If SIMPLE or user overrides:
|
|
127
|
+
|
|
128
|
+
### Type & Priority
|
|
129
|
+
|
|
130
|
+
- **Type**: bug | feature | task | chore
|
|
131
|
+
- **Priority**: 0 (critical) to 4 (low), default 2
|
|
132
|
+
|
|
133
|
+
### Create Single Bead
|
|
49
134
|
|
|
50
135
|
```typescript
|
|
51
136
|
bd_add({
|
|
@@ -53,123 +138,376 @@ bd_add({
|
|
|
53
138
|
type: "[type]",
|
|
54
139
|
pri: [priority],
|
|
55
140
|
desc: "[description]",
|
|
141
|
+
tags: ["[role]", "[estimate]"],
|
|
56
142
|
});
|
|
57
143
|
```
|
|
58
144
|
|
|
59
|
-
|
|
145
|
+
### Create Spec
|
|
146
|
+
|
|
147
|
+
Write `.beads/artifacts/<bead-id>/spec.md` (see Standard Spec template below).
|
|
148
|
+
|
|
149
|
+
**Continue to Phase 6.**
|
|
150
|
+
|
|
151
|
+
## Phase 4B: Complex Path (Epic + Subtasks)
|
|
152
|
+
|
|
153
|
+
If COMPLEX and user confirms decomposition:
|
|
154
|
+
|
|
155
|
+
### Step 1: Identify Natural Breakdown
|
|
156
|
+
|
|
157
|
+
```
|
|
158
|
+
DECOMPOSITION ANALYSIS
|
|
159
|
+
━━━━━━━━━━━━━━━━━━━━━━
|
|
160
|
+
|
|
161
|
+
Request: "Add user authentication with OAuth"
|
|
162
|
+
|
|
163
|
+
Natural breakdown:
|
|
164
|
+
|
|
165
|
+
1. Database & Schema [Backend]
|
|
166
|
+
- User table, sessions table
|
|
167
|
+
- Can start immediately
|
|
168
|
+
|
|
169
|
+
2. OAuth Provider Integration [Backend]
|
|
170
|
+
- Google, GitHub providers
|
|
171
|
+
- Depends on: #1
|
|
172
|
+
|
|
173
|
+
3. Auth API Endpoints [Backend]
|
|
174
|
+
- Login, logout, refresh
|
|
175
|
+
- Depends on: #1, #2
|
|
176
|
+
|
|
177
|
+
4. Frontend Auth Flow [Frontend]
|
|
178
|
+
- Login page, protected routes
|
|
179
|
+
- Depends on: #3
|
|
180
|
+
|
|
181
|
+
5. Testing & Documentation [QA]
|
|
182
|
+
- E2E tests, API docs
|
|
183
|
+
- Depends on: #3, #4
|
|
184
|
+
|
|
185
|
+
Parallel execution possible:
|
|
186
|
+
- Track A: #1 → #2 → #3
|
|
187
|
+
- Track B: #4 (can start after #3 ready)
|
|
188
|
+
- Track C: #5 (final)
|
|
189
|
+
|
|
190
|
+
Create this structure? (yes/modify)
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
**STOP and wait for user confirmation.**
|
|
194
|
+
|
|
195
|
+
### Step 2: Create Epic
|
|
60
196
|
|
|
61
197
|
```typescript
|
|
62
|
-
bd_add({
|
|
198
|
+
const epic = bd_add({
|
|
199
|
+
title: "[Feature Name]",
|
|
200
|
+
type: "epic",
|
|
201
|
+
pri: [priority],
|
|
202
|
+
desc: "[Overview of the feature]",
|
|
203
|
+
tags: ["epic", "[domain]"],
|
|
204
|
+
});
|
|
205
|
+
// Returns: { id: "bd-a3f8" }
|
|
63
206
|
```
|
|
64
207
|
|
|
65
|
-
|
|
208
|
+
### Step 3: Create Child Tasks with Dependencies
|
|
66
209
|
|
|
67
|
-
|
|
210
|
+
```typescript
|
|
211
|
+
// Task 1: No dependencies (can start immediately)
|
|
212
|
+
const task1 = bd_add({
|
|
213
|
+
title: "Database schema for auth",
|
|
214
|
+
type: "task",
|
|
215
|
+
pri: 2,
|
|
216
|
+
parent: "bd-a3f8", // Links to epic
|
|
217
|
+
desc: "Create user and session tables",
|
|
218
|
+
tags: ["backend", "database", "S"],
|
|
219
|
+
});
|
|
220
|
+
// Returns: { id: "bd-a3f8.1" }
|
|
221
|
+
|
|
222
|
+
// Task 2: Depends on Task 1
|
|
223
|
+
const task2 = bd_add({
|
|
224
|
+
title: "OAuth provider integration",
|
|
225
|
+
type: "task",
|
|
226
|
+
pri: 2,
|
|
227
|
+
parent: "bd-a3f8",
|
|
228
|
+
deps: ["bd-a3f8.1"], // Blocked by task 1
|
|
229
|
+
desc: "Integrate Google and GitHub OAuth",
|
|
230
|
+
tags: ["backend", "M"],
|
|
231
|
+
});
|
|
232
|
+
// Returns: { id: "bd-a3f8.2" }
|
|
233
|
+
|
|
234
|
+
// Task 3: Depends on Tasks 1 and 2
|
|
235
|
+
const task3 = bd_add({
|
|
236
|
+
title: "Auth API endpoints",
|
|
237
|
+
type: "task",
|
|
238
|
+
pri: 2,
|
|
239
|
+
parent: "bd-a3f8",
|
|
240
|
+
deps: ["bd-a3f8.1", "bd-a3f8.2"],
|
|
241
|
+
desc: "Login, logout, refresh endpoints",
|
|
242
|
+
tags: ["backend", "api", "M"],
|
|
243
|
+
});
|
|
244
|
+
// Returns: { id: "bd-a3f8.3" }
|
|
245
|
+
|
|
246
|
+
// Task 4: Depends on Task 3 (different domain - can be parallel agent)
|
|
247
|
+
const task4 = bd_add({
|
|
248
|
+
title: "Frontend auth flow",
|
|
249
|
+
type: "task",
|
|
250
|
+
pri: 2,
|
|
251
|
+
parent: "bd-a3f8",
|
|
252
|
+
deps: ["bd-a3f8.3"],
|
|
253
|
+
desc: "Login page, protected routes, auth context",
|
|
254
|
+
tags: ["frontend", "M"],
|
|
255
|
+
});
|
|
256
|
+
// Returns: { id: "bd-a3f8.4" }
|
|
257
|
+
|
|
258
|
+
// Task 5: Final task
|
|
259
|
+
const task5 = bd_add({
|
|
260
|
+
title: "Auth testing and docs",
|
|
261
|
+
type: "task",
|
|
262
|
+
pri: 3,
|
|
263
|
+
parent: "bd-a3f8",
|
|
264
|
+
deps: ["bd-a3f8.3", "bd-a3f8.4"],
|
|
265
|
+
desc: "E2E tests and API documentation",
|
|
266
|
+
tags: ["qa", "docs", "S"],
|
|
267
|
+
});
|
|
268
|
+
// Returns: { id: "bd-a3f8.5" }
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
### Step 4: Visualize Dependency Graph
|
|
68
272
|
|
|
69
|
-
```
|
|
70
|
-
|
|
273
|
+
```
|
|
274
|
+
DEPENDENCY GRAPH: bd-a3f8 "User Authentication"
|
|
275
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
276
|
+
|
|
277
|
+
bd-a3f8.1 [Database] ────┬────► bd-a3f8.2 [OAuth] ────┐
|
|
278
|
+
(ready) │ │ │
|
|
279
|
+
│ ▼ │
|
|
280
|
+
└────► bd-a3f8.3 [API] ◄─────┘
|
|
281
|
+
│
|
|
282
|
+
┌────────────────┼────────────────┐
|
|
283
|
+
▼ ▼
|
|
284
|
+
bd-a3f8.4 [Frontend] bd-a3f8.5 [Testing]
|
|
285
|
+
│ ▲
|
|
286
|
+
└─────────────────────────────────┘
|
|
287
|
+
|
|
288
|
+
READY NOW: bd-a3f8.1 (no blockers)
|
|
289
|
+
BLOCKED: bd-a3f8.2, bd-a3f8.3, bd-a3f8.4, bd-a3f8.5
|
|
71
290
|
```
|
|
72
291
|
|
|
73
|
-
|
|
292
|
+
## Phase 5: Create Spec for Epic
|
|
74
293
|
|
|
75
|
-
Write `.beads/artifacts/<
|
|
294
|
+
Write `.beads/artifacts/<epic-id>/spec.md`:
|
|
76
295
|
|
|
77
296
|
```markdown
|
|
78
|
-
# [
|
|
297
|
+
# [Feature Name]
|
|
79
298
|
|
|
80
|
-
**
|
|
299
|
+
**Epic:** <epic-id>
|
|
81
300
|
**Created:** [date]
|
|
82
|
-
**Status:**
|
|
301
|
+
**Status:** In Progress
|
|
302
|
+
**Complexity:** XL (decomposed into [N] subtasks)
|
|
83
303
|
|
|
84
304
|
## Goal
|
|
85
305
|
|
|
86
306
|
[1-2 sentences: What exactly are we building and why?]
|
|
87
307
|
|
|
88
|
-
##
|
|
308
|
+
## Subtasks
|
|
89
309
|
|
|
90
|
-
|
|
310
|
+
| ID | Title | Status | Depends On | Assignee |
|
|
311
|
+
| -------- | ----------------- | ------- | ---------- | -------- |
|
|
312
|
+
| <epic>.1 | Database schema | Ready | - | backend |
|
|
313
|
+
| <epic>.2 | OAuth integration | Blocked | .1 | backend |
|
|
314
|
+
| <epic>.3 | API endpoints | Blocked | .1, .2 | backend |
|
|
315
|
+
| <epic>.4 | Frontend flow | Blocked | .3 | frontend |
|
|
316
|
+
| <epic>.5 | Testing & docs | Blocked | .3, .4 | qa |
|
|
91
317
|
|
|
92
|
-
|
|
318
|
+
## Parallel Execution
|
|
93
319
|
|
|
94
|
-
|
|
320
|
+
Agents can work in parallel on:
|
|
95
321
|
|
|
96
|
-
-
|
|
322
|
+
- **After .1 completes:** .2 can start
|
|
323
|
+
- **After .3 completes:** .4 and .5 can start in parallel
|
|
97
324
|
|
|
98
|
-
##
|
|
325
|
+
## Success Criteria
|
|
99
326
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
327
|
+
- [ ] All subtasks completed
|
|
328
|
+
- [ ] Integration tests passing
|
|
329
|
+
- [ ] [Specific acceptance criterion]
|
|
330
|
+
- Verify: `[command]`
|
|
103
331
|
|
|
104
|
-
##
|
|
332
|
+
## Constraints
|
|
105
333
|
|
|
106
|
-
|
|
107
|
-
- [ ] [Specific, measurable criterion 2]
|
|
108
|
-
- [ ] [Specific, measurable criterion 3]
|
|
334
|
+
**Must:**
|
|
109
335
|
|
|
110
|
-
|
|
336
|
+
- [Required constraint]
|
|
111
337
|
|
|
112
|
-
|
|
338
|
+
**Never:**
|
|
339
|
+
|
|
340
|
+
- [Anti-pattern or forbidden action]
|
|
113
341
|
|
|
114
342
|
## Notes
|
|
115
343
|
|
|
116
|
-
[Additional context
|
|
344
|
+
[Additional context]
|
|
117
345
|
```
|
|
118
346
|
|
|
119
|
-
|
|
347
|
+
## Phase 6: Spec Quality Check
|
|
120
348
|
|
|
121
|
-
|
|
349
|
+
Before presenting, verify:
|
|
122
350
|
|
|
123
|
-
|
|
124
|
-
|
|
351
|
+
- [ ] **Testable criteria?** Each success criterion has a verification command
|
|
352
|
+
- [ ] **Constraints explicit?** "Must" and "Never" rules documented
|
|
353
|
+
- [ ] **Dependencies correct?** Graph makes sense, no cycles
|
|
354
|
+
- [ ] **Scope clear?** In/Out boundaries defined
|
|
355
|
+
- [ ] **Parallel paths identified?** Agents can work concurrently
|
|
125
356
|
|
|
126
|
-
|
|
357
|
+
## Phase 7: Review and Confirm
|
|
127
358
|
|
|
128
|
-
|
|
359
|
+
Present the structure for approval:
|
|
129
360
|
|
|
130
|
-
[To be filled during /research phase]
|
|
131
361
|
```
|
|
362
|
+
CREATED: [Feature Name]
|
|
363
|
+
━━━━━━━━━━━━━━━━━━━━━━━
|
|
132
364
|
|
|
133
|
-
|
|
365
|
+
Epic: bd-a3f8 "[Feature Name]"
|
|
134
366
|
|
|
135
|
-
|
|
367
|
+
Subtasks:
|
|
368
|
+
├── bd-a3f8.1: Database schema [S] ← READY
|
|
369
|
+
├── bd-a3f8.2: OAuth integration [M] ← blocked by .1
|
|
370
|
+
├── bd-a3f8.3: API endpoints [M] ← blocked by .1, .2
|
|
371
|
+
├── bd-a3f8.4: Frontend flow [M] ← blocked by .3
|
|
372
|
+
└── bd-a3f8.5: Testing & docs [S] ← blocked by .3, .4
|
|
136
373
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
374
|
+
Parallel Tracks:
|
|
375
|
+
• Backend agent: .1 → .2 → .3
|
|
376
|
+
• Frontend agent: .4 (after .3)
|
|
377
|
+
• QA agent: .5 (after .3, .4)
|
|
378
|
+
|
|
379
|
+
Spec: .beads/artifacts/bd-a3f8/spec.md
|
|
140
380
|
|
|
141
|
-
|
|
381
|
+
Quality check:
|
|
382
|
+
✓ Testable criteria
|
|
383
|
+
✓ Dependencies valid
|
|
384
|
+
✓ Parallel paths identified
|
|
142
385
|
|
|
143
|
-
|
|
144
|
-
Approve spec? (yes/modify)
|
|
386
|
+
Approve? (yes/modify)
|
|
145
387
|
```
|
|
146
388
|
|
|
147
389
|
**STOP and wait for human response.**
|
|
148
390
|
|
|
149
|
-
|
|
150
|
-
If "yes": Proceed to report.
|
|
151
|
-
|
|
152
|
-
## Phase 6: Report
|
|
391
|
+
## Phase 8: Sync & Report
|
|
153
392
|
|
|
393
|
+
```typescript
|
|
394
|
+
bd_sync({ reason: "Created epic $ARGUMENTS with subtasks" });
|
|
154
395
|
```
|
|
155
|
-
Created: <bead-id>
|
|
156
|
-
━━━━━━━━━━━━━━━━━
|
|
157
396
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
397
|
+
### Next Steps by Structure
|
|
398
|
+
|
|
399
|
+
**Single Bead (Simple):**
|
|
161
400
|
|
|
162
|
-
|
|
401
|
+
```
|
|
402
|
+
Next: /implement <bead-id>
|
|
163
403
|
```
|
|
164
404
|
|
|
165
|
-
**
|
|
405
|
+
**Epic with Subtasks (Complex):**
|
|
166
406
|
|
|
167
407
|
```
|
|
168
|
-
|
|
408
|
+
Ready to start: bd-a3f8.1 (first unblocked task)
|
|
409
|
+
|
|
410
|
+
Next steps:
|
|
411
|
+
├── /implement bd-a3f8.1 (start first task)
|
|
412
|
+
├── bd ready (see all ready work)
|
|
413
|
+
└── bd_plan() (see parallel execution plan)
|
|
414
|
+
|
|
415
|
+
For parallel agents:
|
|
416
|
+
├── Agent 1: /implement bd-a3f8.1
|
|
417
|
+
├── Agent 2: (wait for .1, then .2)
|
|
418
|
+
└── Agent 3: (wait for .3, then .4)
|
|
169
419
|
```
|
|
170
420
|
|
|
171
|
-
|
|
421
|
+
## Templates
|
|
422
|
+
|
|
423
|
+
### Standard Spec (Simple Tasks)
|
|
424
|
+
|
|
425
|
+
```markdown
|
|
426
|
+
# [Title]
|
|
427
|
+
|
|
428
|
+
**Bead:** <bead-id>
|
|
429
|
+
**Created:** [date]
|
|
430
|
+
**Status:** To Do
|
|
431
|
+
**Estimate:** [S/M] (~[N] tool calls)
|
|
432
|
+
|
|
433
|
+
## Goal
|
|
434
|
+
|
|
435
|
+
[1-2 sentences: What exactly are we building and why?]
|
|
172
436
|
|
|
437
|
+
## Scope
|
|
438
|
+
|
|
439
|
+
**In-Scope:**
|
|
440
|
+
|
|
441
|
+
- [What we ARE doing]
|
|
442
|
+
|
|
443
|
+
**Out-of-Scope:**
|
|
444
|
+
|
|
445
|
+
- [What we are NOT doing]
|
|
446
|
+
|
|
447
|
+
## Success Criteria
|
|
448
|
+
|
|
449
|
+
- [ ] [Criterion 1]
|
|
450
|
+
- Verify: `[actual command to test this]`
|
|
451
|
+
- [ ] [Criterion 2]
|
|
452
|
+
- Verify: `[actual command to test this]`
|
|
453
|
+
|
|
454
|
+
## Constraints
|
|
455
|
+
|
|
456
|
+
**Must:**
|
|
457
|
+
|
|
458
|
+
- [Required constraint]
|
|
459
|
+
|
|
460
|
+
**Never:**
|
|
461
|
+
|
|
462
|
+
- [Anti-pattern or forbidden action]
|
|
463
|
+
|
|
464
|
+
## Notes
|
|
465
|
+
|
|
466
|
+
[Additional context]
|
|
173
467
|
```
|
|
174
|
-
|
|
468
|
+
|
|
469
|
+
## When to Decompose
|
|
470
|
+
|
|
471
|
+
| Scenario | Action |
|
|
472
|
+
| -------------------------- | ------------------------------------ |
|
|
473
|
+
| Bug fix | Single bead |
|
|
474
|
+
| Config change | Single bead |
|
|
475
|
+
| Small feature (1 file) | Single bead |
|
|
476
|
+
| Feature touching 2-3 files | Single bead with phases in plan |
|
|
477
|
+
| Feature crossing FE/BE | Epic + subtasks by domain |
|
|
478
|
+
| New system/service | Epic + subtasks by component |
|
|
479
|
+
| Refactor multiple areas | Epic + subtasks by area |
|
|
480
|
+
| Integration work | Epic + subtasks by integration point |
|
|
481
|
+
|
|
482
|
+
## Anti-Patterns
|
|
483
|
+
|
|
484
|
+
❌ **One Giant Bead**
|
|
485
|
+
Creating a single bead for "Implement entire auth system" - agents lose context, can't parallelize.
|
|
486
|
+
|
|
487
|
+
❌ **Too Many Tiny Beads**
|
|
488
|
+
Creating 20 beads for a simple feature - overhead exceeds value.
|
|
489
|
+
|
|
490
|
+
❌ **No Dependencies**
|
|
491
|
+
Creating subtasks without linking dependencies - agents don't know execution order.
|
|
492
|
+
|
|
493
|
+
❌ **Missing Domain Tags**
|
|
494
|
+
Not tagging with `frontend`/`backend`/`qa` - can't route to specialized agents.
|
|
495
|
+
|
|
496
|
+
## Integration with Parallel Agents
|
|
497
|
+
|
|
498
|
+
When epic is created with proper dependencies:
|
|
499
|
+
|
|
500
|
+
```typescript
|
|
501
|
+
// Agent 1 claims ready work
|
|
502
|
+
bd_init({ team: "project", role: "backend" });
|
|
503
|
+
bd_claim(); // Gets bd-a3f8.1 (first ready task)
|
|
504
|
+
|
|
505
|
+
// Agent 1 completes, Agent 2 can now start
|
|
506
|
+
bd_done({ id: "bd-a3f8.1", msg: "Schema created" });
|
|
507
|
+
|
|
508
|
+
// Agent 2 claims next ready work
|
|
509
|
+
bd_claim(); // Gets bd-a3f8.2 (now unblocked)
|
|
510
|
+
|
|
511
|
+
// After bd-a3f8.3 completes, both .4 and .5 become ready
|
|
512
|
+
// Multiple agents can work on them in parallel
|
|
175
513
|
```
|