opencodekit 0.16.4 → 0.16.6
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 +106 -384
- package/dist/template/.opencode/README.md +170 -104
- package/dist/template/.opencode/agent/build.md +39 -32
- package/dist/template/.opencode/agent/explore.md +2 -0
- package/dist/template/.opencode/agent/review.md +3 -0
- package/dist/template/.opencode/agent/scout.md +22 -11
- package/dist/template/.opencode/command/create.md +164 -106
- package/dist/template/.opencode/command/design.md +5 -1
- package/dist/template/.opencode/command/handoff.md +6 -4
- package/dist/template/.opencode/command/init.md +1 -1
- package/dist/template/.opencode/command/plan.md +26 -23
- package/dist/template/.opencode/command/research.md +13 -6
- package/dist/template/.opencode/command/resume.md +8 -6
- package/dist/template/.opencode/command/ship.md +1 -1
- package/dist/template/.opencode/command/start.md +30 -25
- package/dist/template/.opencode/command/status.md +9 -42
- package/dist/template/.opencode/command/verify.md +11 -11
- package/dist/template/.opencode/memory/README.md +67 -37
- package/dist/template/.opencode/memory/_templates/prd.md +102 -18
- package/dist/template/.opencode/memory/project/gotchas.md +31 -0
- package/dist/template/.opencode/memory.db +0 -0
- package/dist/template/.opencode/memory.db-shm +0 -0
- package/dist/template/.opencode/memory.db-wal +0 -0
- package/dist/template/.opencode/opencode.json +0 -10
- package/dist/template/.opencode/package.json +1 -1
- package/dist/template/.opencode/skill/beads/SKILL.md +164 -380
- package/dist/template/.opencode/skill/beads/references/BOUNDARIES.md +23 -22
- package/dist/template/.opencode/skill/beads/references/DEPENDENCIES.md +23 -29
- package/dist/template/.opencode/skill/beads/references/RESUMABILITY.md +5 -8
- package/dist/template/.opencode/skill/beads/references/WORKFLOWS.md +43 -39
- package/dist/template/.opencode/skill/beads-bridge/SKILL.md +80 -53
- package/dist/template/.opencode/skill/brainstorming/SKILL.md +19 -5
- package/dist/template/.opencode/skill/context-engineering/SKILL.md +30 -63
- package/dist/template/.opencode/skill/context-management/SKILL.md +115 -0
- package/dist/template/.opencode/skill/deep-research/SKILL.md +4 -4
- package/dist/template/.opencode/skill/development-lifecycle/SKILL.md +305 -0
- package/dist/template/.opencode/skill/memory-system/SKILL.md +3 -3
- package/dist/template/.opencode/skill/prd/SKILL.md +47 -122
- package/dist/template/.opencode/skill/prd-task/SKILL.md +48 -4
- package/dist/template/.opencode/skill/prd-task/references/prd-schema.json +120 -24
- package/dist/template/.opencode/skill/swarm-coordination/SKILL.md +79 -61
- package/dist/template/.opencode/skill/tool-priority/SKILL.md +31 -22
- package/dist/template/.opencode/tool/context7.ts +183 -0
- package/dist/template/.opencode/tool/memory-admin.ts +445 -0
- package/dist/template/.opencode/tool/swarm.ts +572 -0
- package/package.json +1 -1
- package/dist/template/.opencode/memory/_templates/spec.md +0 -66
- package/dist/template/.opencode/tool/beads-sync.ts +0 -657
- package/dist/template/.opencode/tool/context7-query-docs.ts +0 -89
- package/dist/template/.opencode/tool/context7-resolve-library-id.ts +0 -113
- package/dist/template/.opencode/tool/memory-maintain.ts +0 -167
- package/dist/template/.opencode/tool/memory-migrate.ts +0 -319
- package/dist/template/.opencode/tool/swarm-delegate.ts +0 -180
- package/dist/template/.opencode/tool/swarm-monitor.ts +0 -388
- package/dist/template/.opencode/tool/swarm-plan.ts +0 -697
|
@@ -1,26 +1,30 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Create a specification
|
|
3
|
-
argument-hint: "<
|
|
2
|
+
description: Create a bead with specification from a description
|
|
3
|
+
argument-hint: "<description> [--type epic|feature|task|bug]"
|
|
4
4
|
agent: build
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Create: $ARGUMENTS
|
|
8
8
|
|
|
9
|
-
Create
|
|
9
|
+
Create a bead and its artifacts from a description. Auto-classifies bead type based on keywords.
|
|
10
|
+
|
|
11
|
+
> **Lifecycle context:** Ideation → Design → **Specification** → Task Conversion → Planning → Implementation → Verification
|
|
12
|
+
>
|
|
13
|
+
> **Workflow:** `/create` → `/start <id>` → `/ship <id>` → `/verify <id>`
|
|
10
14
|
|
|
11
15
|
## Parse Arguments
|
|
12
16
|
|
|
13
|
-
| Argument
|
|
14
|
-
|
|
|
15
|
-
| `<
|
|
16
|
-
| `--
|
|
17
|
-
| `--proposal` | false | Create proposal.md first (for epics) |
|
|
17
|
+
| Argument | Default | Description |
|
|
18
|
+
| --------------- | ------------- | ------------------------------------------ |
|
|
19
|
+
| `<description>` | required | What you want to build/fix (quoted string) |
|
|
20
|
+
| `--type` | auto-detected | Override type: epic, feature, task, bug |
|
|
18
21
|
|
|
19
22
|
## Load Skills
|
|
20
23
|
|
|
21
24
|
```typescript
|
|
25
|
+
skill({ name: "development-lifecycle" }); // Phase guidance
|
|
22
26
|
skill({ name: "beads" });
|
|
23
|
-
skill({ name: "
|
|
27
|
+
skill({ name: "prd" }); // PRD template guidance
|
|
24
28
|
skill({ name: "memory-system" });
|
|
25
29
|
```
|
|
26
30
|
|
|
@@ -30,7 +34,7 @@ Search for similar specs and patterns before creating:
|
|
|
30
34
|
|
|
31
35
|
```typescript
|
|
32
36
|
// Find similar past specs
|
|
33
|
-
memory_search({ query: "[
|
|
37
|
+
memory_search({ query: "[description keywords]", limit: 3 });
|
|
34
38
|
|
|
35
39
|
// Find related patterns and conventions
|
|
36
40
|
memory_search({ query: "[domain keywords] spec requirements", limit: 3 });
|
|
@@ -42,60 +46,100 @@ Review findings for:
|
|
|
42
46
|
- Patterns and conventions already established
|
|
43
47
|
- Gotchas to avoid in this domain
|
|
44
48
|
|
|
45
|
-
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Phase 1: Classify Bead Type
|
|
46
52
|
|
|
47
|
-
|
|
48
|
-
|
|
53
|
+
**Auto-classification based on description keywords:**
|
|
54
|
+
|
|
55
|
+
| Keywords in Description | Classified As |
|
|
56
|
+
| --------------------------------------------------------------- | ------------- |
|
|
57
|
+
| "redesign", "overhaul", "migrate", "new system", "platform" | `epic` |
|
|
58
|
+
| "add", "implement", "create", "build", "new feature", "support" | `feature` |
|
|
59
|
+
| "fix", "bug", "broken", "error", "crash", "issue", "failing" | `bug` |
|
|
60
|
+
| Default (none of above) | `task` |
|
|
61
|
+
|
|
62
|
+
```typescript
|
|
63
|
+
function classifyBeadType(description: string): "epic" | "feature" | "task" | "bug" {
|
|
64
|
+
const desc = description.toLowerCase();
|
|
65
|
+
|
|
66
|
+
// Epic indicators (large scope)
|
|
67
|
+
if (/redesign|overhaul|migrate|new system|platform|architecture/.test(desc)) {
|
|
68
|
+
return "epic";
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// Bug indicators
|
|
72
|
+
if (/fix|bug|broken|error|crash|issue|failing|doesn't work|not working/.test(desc)) {
|
|
73
|
+
return "bug";
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// Feature indicators
|
|
77
|
+
if (/add|implement|create|build|new feature|support|enable|integrate/.test(desc)) {
|
|
78
|
+
return "feature";
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// Default to task
|
|
82
|
+
return "task";
|
|
83
|
+
}
|
|
49
84
|
```
|
|
50
85
|
|
|
51
|
-
|
|
86
|
+
**User can override with `--type` flag.**
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Phase 2: Create Bead
|
|
52
91
|
|
|
53
92
|
```bash
|
|
54
|
-
|
|
93
|
+
# Create the bead with classified type
|
|
94
|
+
BEAD_ID=$(br create "$DESCRIPTION" --type $BEAD_TYPE --json | jq -r '.id')
|
|
95
|
+
echo "Created bead: $BEAD_ID"
|
|
55
96
|
```
|
|
56
97
|
|
|
57
98
|
---
|
|
58
99
|
|
|
59
|
-
## Phase
|
|
100
|
+
## Phase 3: Setup Artifact Directory
|
|
60
101
|
|
|
61
102
|
```bash
|
|
62
|
-
BEAD_DIR=".beads/artifacts/$
|
|
103
|
+
BEAD_DIR=".beads/artifacts/$BEAD_ID"
|
|
63
104
|
mkdir -p "$BEAD_DIR"
|
|
64
105
|
```
|
|
65
106
|
|
|
66
107
|
---
|
|
67
108
|
|
|
68
|
-
## Phase
|
|
69
|
-
|
|
70
|
-
Based on flags and bead type:
|
|
109
|
+
## Phase 4: Choose Artifacts (Auto-Detection)
|
|
71
110
|
|
|
72
|
-
|
|
73
|
-
| ------------ | ------------- | ----------------------------- |
|
|
74
|
-
| `--prd` | `prd.md` | Quick features, smaller scope |
|
|
75
|
-
| `--proposal` | `proposal.md` | Epics, major changes |
|
|
76
|
-
| (default) | `spec.md` | Standard task specifications |
|
|
111
|
+
**Artifact selection based on bead type:**
|
|
77
112
|
|
|
78
|
-
|
|
113
|
+
| Bead Type | Auto-Created | Rationale |
|
|
114
|
+
| --------- | ------------------------ | ------------------------------------ |
|
|
115
|
+
| `epic` | `proposal.md` + `prd.md` | Major work needs high-level proposal |
|
|
116
|
+
| `feature` | `proposal.md` + `prd.md` | Scoped work benefits from proposal |
|
|
117
|
+
| `task` | `prd.md` | Tactical work, skip proposal |
|
|
118
|
+
| `bug` | `prd.md` | Clear problem, skip proposal |
|
|
79
119
|
|
|
80
120
|
```bash
|
|
81
|
-
#
|
|
82
|
-
|
|
121
|
+
# Determine if proposal is needed
|
|
122
|
+
NEEDS_PROPOSAL=false
|
|
123
|
+
if [ "$BEAD_TYPE" = "epic" ] || [ "$BEAD_TYPE" = "feature" ]; then
|
|
124
|
+
NEEDS_PROPOSAL=true
|
|
125
|
+
fi
|
|
83
126
|
|
|
84
|
-
#
|
|
127
|
+
# Always create PRD
|
|
85
128
|
cp .opencode/memory/_templates/prd.md "$BEAD_DIR/prd.md"
|
|
86
129
|
|
|
87
|
-
#
|
|
88
|
-
|
|
89
|
-
cp .opencode/memory/_templates/
|
|
130
|
+
# Create proposal if needed (epic/feature)
|
|
131
|
+
if [ "$NEEDS_PROPOSAL" = "true" ]; then
|
|
132
|
+
cp .opencode/memory/_templates/proposal.md "$BEAD_DIR/proposal.md"
|
|
133
|
+
fi
|
|
90
134
|
```
|
|
91
135
|
|
|
92
136
|
---
|
|
93
137
|
|
|
94
|
-
## Phase
|
|
138
|
+
## Phase 5: Gather Context for Spec
|
|
95
139
|
|
|
96
|
-
### Ask Clarifying Questions
|
|
140
|
+
### Ask Clarifying Questions (if needed)
|
|
97
141
|
|
|
98
|
-
|
|
142
|
+
If description is vague, ask for more details:
|
|
99
143
|
|
|
100
144
|
```typescript
|
|
101
145
|
question({
|
|
@@ -107,8 +151,7 @@ question({
|
|
|
107
151
|
},
|
|
108
152
|
{
|
|
109
153
|
header: "Users",
|
|
110
|
-
question:
|
|
111
|
-
"Who will use this? (developers, end users, API consumers, etc.)",
|
|
154
|
+
question: "Who will use this? (developers, end users, API consumers, etc.)",
|
|
112
155
|
options: [
|
|
113
156
|
{ label: "Developers", description: "Internal tooling or API" },
|
|
114
157
|
{ label: "End users", description: "Customer-facing feature" },
|
|
@@ -132,7 +175,7 @@ If user provides enough context, delegate to explore agent:
|
|
|
132
175
|
Task({
|
|
133
176
|
subagent_type: "explore",
|
|
134
177
|
description: "Find similar patterns",
|
|
135
|
-
prompt: `Find patterns in codebase related to: [
|
|
178
|
+
prompt: `Find patterns in codebase related to: [description]
|
|
136
179
|
- Similar implementations
|
|
137
180
|
- Existing conventions
|
|
138
181
|
- Test patterns used
|
|
@@ -142,58 +185,22 @@ Task({
|
|
|
142
185
|
|
|
143
186
|
---
|
|
144
187
|
|
|
145
|
-
## Phase
|
|
146
|
-
|
|
147
|
-
### For spec.md (default)
|
|
148
|
-
|
|
149
|
-
Fill in the template with WHEN/THEN scenarios:
|
|
150
|
-
|
|
151
|
-
```markdown
|
|
152
|
-
# Specification
|
|
153
|
-
|
|
154
|
-
**Bead:** $ARGUMENTS
|
|
155
|
-
**Proposal:** N/A
|
|
156
|
-
**Date:** [today]
|
|
157
|
-
|
|
158
|
-
## Requirements
|
|
159
|
-
|
|
160
|
-
### [Requirement from user input]
|
|
161
|
-
|
|
162
|
-
Brief description of what must be true.
|
|
163
|
-
|
|
164
|
-
#### Scenarios
|
|
165
|
-
|
|
166
|
-
**WHEN** [user/system does action]
|
|
167
|
-
**THEN** [expected outcome]
|
|
168
|
-
|
|
169
|
-
**WHEN** [edge case condition]
|
|
170
|
-
**THEN** [expected behavior]
|
|
171
|
-
|
|
172
|
-
## Non-Functional Requirements
|
|
173
|
-
|
|
174
|
-
- **Performance:** [from constraints]
|
|
175
|
-
- **Security:** [from constraints]
|
|
176
|
-
- **Compatibility:** [from constraints]
|
|
177
|
-
|
|
178
|
-
## Out of Scope
|
|
179
|
-
|
|
180
|
-
- [Explicitly excluded capability]
|
|
181
|
-
```
|
|
188
|
+
## Phase 6: Fill In Template
|
|
182
189
|
|
|
183
|
-
### For prd.md
|
|
190
|
+
### For prd.md
|
|
184
191
|
|
|
185
192
|
Fill in the PRD template with goal, scope, and tasks:
|
|
186
193
|
|
|
187
194
|
```markdown
|
|
188
195
|
# Beads PRD Template
|
|
189
196
|
|
|
190
|
-
**Bead:** $
|
|
197
|
+
**Bead:** $BEAD_ID
|
|
191
198
|
**Created:** [today]
|
|
192
199
|
**Status:** Draft
|
|
193
200
|
|
|
194
201
|
## Goal
|
|
195
202
|
|
|
196
|
-
[From
|
|
203
|
+
[From description and clarifying questions]
|
|
197
204
|
|
|
198
205
|
## Scope
|
|
199
206
|
|
|
@@ -221,34 +228,76 @@ Fill in the PRD template with goal, scope, and tasks:
|
|
|
221
228
|
- [Command or check]
|
|
222
229
|
```
|
|
223
230
|
|
|
231
|
+
### For proposal.md (epic/feature)
|
|
232
|
+
|
|
233
|
+
Fill in high-level proposal first:
|
|
234
|
+
|
|
235
|
+
```markdown
|
|
236
|
+
# Proposal: [Title]
|
|
237
|
+
|
|
238
|
+
**Bead:** $BEAD_ID
|
|
239
|
+
**Date:** [today]
|
|
240
|
+
|
|
241
|
+
## Problem Statement
|
|
242
|
+
|
|
243
|
+
[What problem are we solving?]
|
|
244
|
+
|
|
245
|
+
## Proposed Solution
|
|
246
|
+
|
|
247
|
+
[High-level approach]
|
|
248
|
+
|
|
249
|
+
## Scope
|
|
250
|
+
|
|
251
|
+
### In-Scope
|
|
252
|
+
|
|
253
|
+
- [Major deliverable]
|
|
254
|
+
|
|
255
|
+
### Out-of-Scope
|
|
256
|
+
|
|
257
|
+
- [Explicitly excluded]
|
|
258
|
+
|
|
259
|
+
## Timeline
|
|
260
|
+
|
|
261
|
+
| Phase | Duration | Deliverables |
|
|
262
|
+
| ------- | -------- | ------------ |
|
|
263
|
+
| Phase 1 | X weeks | ... |
|
|
264
|
+
|
|
265
|
+
## Risks
|
|
266
|
+
|
|
267
|
+
| Risk | Likelihood | Impact | Mitigation |
|
|
268
|
+
| ---- | ---------- | ------ | ---------- |
|
|
269
|
+
| ... | ... | ... | ... |
|
|
270
|
+
```
|
|
271
|
+
|
|
224
272
|
---
|
|
225
273
|
|
|
226
|
-
## Phase
|
|
274
|
+
## Phase 7: Validate PRD
|
|
227
275
|
|
|
228
|
-
Before saving, validate the
|
|
276
|
+
Before saving, validate the PRD:
|
|
229
277
|
|
|
230
|
-
- [ ]
|
|
231
|
-
- [ ]
|
|
278
|
+
- [ ] Goal is clear and measurable?
|
|
279
|
+
- [ ] Success criteria have verification commands?
|
|
280
|
+
- [ ] Tasks have end state descriptions (not steps)?
|
|
232
281
|
- [ ] Out of scope is defined?
|
|
233
|
-
- [ ]
|
|
282
|
+
- [ ] Dependencies identified (if any)?
|
|
234
283
|
|
|
235
284
|
If validation fails, ask user for missing information.
|
|
236
285
|
|
|
237
286
|
---
|
|
238
287
|
|
|
239
|
-
## Phase
|
|
288
|
+
## Phase 8: Save and Report
|
|
240
289
|
|
|
241
290
|
Save the filled template to the bead artifacts folder.
|
|
242
291
|
|
|
243
292
|
```bash
|
|
244
|
-
# Verify
|
|
245
|
-
|
|
293
|
+
# Verify files were created
|
|
294
|
+
ls -la "$BEAD_DIR/"
|
|
246
295
|
```
|
|
247
296
|
|
|
248
297
|
Update bead with note:
|
|
249
298
|
|
|
250
299
|
```bash
|
|
251
|
-
|
|
300
|
+
br comments add $BEAD_ID "Created prd.md with [N] tasks defined"
|
|
252
301
|
```
|
|
253
302
|
|
|
254
303
|
## Record Learning (If Significant)
|
|
@@ -261,7 +310,7 @@ observation({
|
|
|
261
310
|
title: "[Domain] spec pattern for [type of feature]",
|
|
262
311
|
narrative: "When creating specs for [this type], include...",
|
|
263
312
|
concepts: "[domain keywords]",
|
|
264
|
-
bead_id: "$
|
|
313
|
+
bead_id: "$BEAD_ID",
|
|
265
314
|
confidence: "medium",
|
|
266
315
|
});
|
|
267
316
|
```
|
|
@@ -271,18 +320,21 @@ observation({
|
|
|
271
320
|
## Output
|
|
272
321
|
|
|
273
322
|
```
|
|
274
|
-
Created: $
|
|
323
|
+
Created: $BEAD_ID
|
|
275
324
|
━━━━━━━━━━━━━━━━━━━
|
|
276
325
|
|
|
326
|
+
Description: [original description]
|
|
327
|
+
Type: [classified type] (auto-detected | --type override)
|
|
328
|
+
|
|
277
329
|
Artifacts:
|
|
278
|
-
├── .beads/artifacts/$
|
|
279
|
-
└── .beads/artifacts/$
|
|
330
|
+
├── .beads/artifacts/$BEAD_ID/prd.md [NEW]
|
|
331
|
+
└── .beads/artifacts/$BEAD_ID/proposal.md [if epic/feature]
|
|
280
332
|
|
|
281
|
-
|
|
282
|
-
|
|
333
|
+
Tasks: [N] defined
|
|
334
|
+
Success Criteria: [N] with verification
|
|
283
335
|
|
|
284
|
-
Next: /
|
|
285
|
-
/
|
|
336
|
+
Next: /plan $BEAD_ID (convert PRD to implementation plan)
|
|
337
|
+
/start $BEAD_ID (if simple, skip planning)
|
|
286
338
|
```
|
|
287
339
|
|
|
288
340
|
---
|
|
@@ -290,22 +342,28 @@ Next: /research $ARGUMENTS (optional)
|
|
|
290
342
|
## Examples
|
|
291
343
|
|
|
292
344
|
```bash
|
|
293
|
-
#
|
|
294
|
-
/create
|
|
345
|
+
# Auto-classified as 'feature' (creates proposal + prd)
|
|
346
|
+
/create "Add user authentication with OAuth"
|
|
347
|
+
|
|
348
|
+
# Auto-classified as 'bug' (creates prd only)
|
|
349
|
+
/create "Fix login page not loading on mobile"
|
|
350
|
+
|
|
351
|
+
# Auto-classified as 'epic' (creates proposal + prd)
|
|
352
|
+
/create "Redesign the entire dashboard UI"
|
|
295
353
|
|
|
296
|
-
#
|
|
297
|
-
/create
|
|
354
|
+
# Auto-classified as 'task' (creates prd only)
|
|
355
|
+
/create "Update dependencies to latest versions"
|
|
298
356
|
|
|
299
|
-
#
|
|
300
|
-
/create
|
|
357
|
+
# Override type explicitly
|
|
358
|
+
/create "Refactor auth module" --type feature
|
|
301
359
|
```
|
|
302
360
|
|
|
303
361
|
---
|
|
304
362
|
|
|
305
363
|
## Related Commands
|
|
306
364
|
|
|
307
|
-
| Need
|
|
308
|
-
|
|
|
309
|
-
| Research first
|
|
310
|
-
| Plan after spec
|
|
311
|
-
|
|
|
365
|
+
| Need | Command |
|
|
366
|
+
| --------------- | -------------------- |
|
|
367
|
+
| Research first | `/research $BEAD_ID` |
|
|
368
|
+
| Plan after spec | `/plan $BEAD_ID` |
|
|
369
|
+
| Start working | `/start $BEAD_ID` |
|
|
@@ -7,10 +7,14 @@ subtask: true
|
|
|
7
7
|
|
|
8
8
|
# Design: $ARGUMENTS
|
|
9
9
|
|
|
10
|
+
> **Lifecycle context:** Ideation → **Design** → Specification → Task Conversion → Planning → Implementation → Verification
|
|
11
|
+
|
|
10
12
|
## Load Beads Skill
|
|
11
13
|
|
|
12
14
|
```typescript
|
|
15
|
+
skill({ name: "development-lifecycle" }); // Phase guidance
|
|
13
16
|
skill({ name: "beads" });
|
|
17
|
+
skill({ name: "frontend-design" }); // Design system guidance
|
|
14
18
|
skill({ name: "memory-system" });
|
|
15
19
|
```
|
|
16
20
|
|
|
@@ -74,7 +78,7 @@ read({ filePath: "src/styles/globals.css" });
|
|
|
74
78
|
|
|
75
79
|
## Phase 2: Aesthetic Direction (DECISION GATE)
|
|
76
80
|
|
|
77
|
-
skill
|
|
81
|
+
> **frontend-design skill already loaded above** - provides detailed design system guidance
|
|
78
82
|
|
|
79
83
|
**BEFORE any design work, you MUST state:**
|
|
80
84
|
|
|
@@ -76,16 +76,18 @@ If a swarm is active for this task, note its state for recovery:
|
|
|
76
76
|
const teamName = "$ARGUMENTS-swarm";
|
|
77
77
|
|
|
78
78
|
// Check if swarm is active
|
|
79
|
-
const status = await
|
|
80
|
-
operation: "
|
|
79
|
+
const status = await swarm({
|
|
80
|
+
operation: "monitor",
|
|
81
|
+
action: "status",
|
|
81
82
|
team_name: teamName,
|
|
82
83
|
});
|
|
83
84
|
|
|
84
85
|
const stats = JSON.parse(status);
|
|
85
86
|
if (stats.summary?.total_workers > 0) {
|
|
86
87
|
// Render current state for handoff
|
|
87
|
-
const ui = await
|
|
88
|
-
operation: "
|
|
88
|
+
const ui = await swarm({
|
|
89
|
+
operation: "monitor",
|
|
90
|
+
action: "render_block",
|
|
89
91
|
team_name: teamName,
|
|
90
92
|
});
|
|
91
93
|
console.log(`✓ Swarm active (${stats.summary.total_workers} workers)`);
|
|
@@ -8,6 +8,8 @@ agent: plan
|
|
|
8
8
|
|
|
9
9
|
You're creating an implementation plan with proper Epic → Task → Subtask hierarchy and subagent research.
|
|
10
10
|
|
|
11
|
+
> **Lifecycle context:** Ideation → Design → Specification → Task Conversion → **Planning** → Implementation → Verification
|
|
12
|
+
|
|
11
13
|
## Parse Arguments
|
|
12
14
|
|
|
13
15
|
| Argument | Default | Description |
|
|
@@ -19,6 +21,7 @@ You're creating an implementation plan with proper Epic → Task → Subtask hie
|
|
|
19
21
|
## Load Skills & Context
|
|
20
22
|
|
|
21
23
|
```typescript
|
|
24
|
+
skill({ name: "development-lifecycle" }); // Phase guidance
|
|
22
25
|
skill({ name: "beads" });
|
|
23
26
|
skill({ name: "deep-research" });
|
|
24
27
|
skill({ name: "executing-plans" });
|
|
@@ -34,11 +37,11 @@ br show $ARGUMENTS
|
|
|
34
37
|
Check for existing artifacts:
|
|
35
38
|
|
|
36
39
|
```bash
|
|
37
|
-
cat .beads/artifacts/$ARGUMENTS/
|
|
40
|
+
cat .beads/artifacts/$ARGUMENTS/prd.md 2>/dev/null || echo "No PRD found"
|
|
38
41
|
cat .beads/artifacts/$ARGUMENTS/research.md 2>/dev/null || echo "No research found"
|
|
39
42
|
```
|
|
40
43
|
|
|
41
|
-
**If
|
|
44
|
+
**If prd.md missing:** "Create a PRD first using `/create \"description\"` command."
|
|
42
45
|
|
|
43
46
|
**If complexity > M and no research:** "Consider `/research $ARGUMENTS` first for better planning."
|
|
44
47
|
|
|
@@ -58,11 +61,11 @@ cp .opencode/memory/_templates/design.md "$BEAD_DIR/design.md"
|
|
|
58
61
|
cp .opencode/memory/_templates/tasks.md "$BEAD_DIR/tasks.md"
|
|
59
62
|
```
|
|
60
63
|
|
|
61
|
-
| Template | Purpose
|
|
62
|
-
| ----------- |
|
|
63
|
-
| `
|
|
64
|
-
| `design.md` | Architecture decision records
|
|
65
|
-
| `tasks.md` | Numbered implementation steps
|
|
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 |
|
|
66
69
|
|
|
67
70
|
## Check Memory First (Semantic Search)
|
|
68
71
|
|
|
@@ -288,41 +291,41 @@ With user approval or `--create-beads` flag:
|
|
|
288
291
|
PARENT=$ARGUMENTS
|
|
289
292
|
|
|
290
293
|
# Task 1 (no blockers - starts immediately)
|
|
291
|
-
br create "[Task 1 title]"
|
|
294
|
+
br create "[Task 1 title]" --type task --priority 2
|
|
292
295
|
# Capture: bd-xxx1
|
|
293
296
|
|
|
294
297
|
# Link to parent
|
|
295
298
|
br dep add bd-xxx1 $PARENT
|
|
296
299
|
|
|
297
300
|
# Task 2 (blocked by Task 1)
|
|
298
|
-
br create "[Task 2 title]"
|
|
301
|
+
br create "[Task 2 title]" --type task --priority 2
|
|
299
302
|
# Capture: bd-xxx2
|
|
300
303
|
|
|
301
304
|
br dep add bd-xxx2 $PARENT
|
|
302
|
-
br dep add bd-xxx2 bd-xxx1
|
|
305
|
+
br dep add bd-xxx2 bd-xxx1 # bd-xxx2 blocked by bd-xxx1
|
|
303
306
|
|
|
304
307
|
# Task 3 (blocked by Task 2)
|
|
305
|
-
br create "[Task 3 title]"
|
|
308
|
+
br create "[Task 3 title]" --type task --priority 2
|
|
306
309
|
# Capture: bd-xxx3
|
|
307
310
|
|
|
308
311
|
br dep add bd-xxx3 $PARENT
|
|
309
|
-
br dep add bd-xxx3 bd-xxx2
|
|
312
|
+
br dep add bd-xxx3 bd-xxx2 # bd-xxx3 blocked by bd-xxx2
|
|
310
313
|
```
|
|
311
314
|
|
|
312
315
|
### Create Subtasks (for complex tasks)
|
|
313
316
|
|
|
314
317
|
```bash
|
|
315
318
|
# For Task 2, create subtasks:
|
|
316
|
-
br create "[Subtask 2.1 title]"
|
|
319
|
+
br create "[Subtask 2.1 title]" --type subtask --priority 2
|
|
317
320
|
# Capture: bd-xxx2.1
|
|
318
321
|
|
|
319
322
|
br dep add bd-xxx2.1 bd-xxx2
|
|
320
323
|
|
|
321
|
-
br create "[Subtask 2.2 title]"
|
|
324
|
+
br create "[Subtask 2.2 title]" --type subtask --priority 2
|
|
322
325
|
# Capture: bd-xxx2.2
|
|
323
326
|
|
|
324
327
|
br dep add bd-xxx2.2 bd-xxx2
|
|
325
|
-
br dep add bd-xxx2.2 bd-xxx2.1
|
|
328
|
+
br dep add bd-xxx2.2 bd-xxx2.1 # Sequential dependency
|
|
326
329
|
```
|
|
327
330
|
|
|
328
331
|
### Verify Hierarchy
|
|
@@ -422,7 +425,7 @@ $ARGUMENTS (Epic/Task)
|
|
|
422
425
|
|
|
423
426
|
## Final Verification
|
|
424
427
|
|
|
425
|
-
- [ ] All acceptance criteria from
|
|
428
|
+
- [ ] All acceptance criteria from prd.md met
|
|
426
429
|
- [ ] Full test suite: `npm test`
|
|
427
430
|
- [ ] Type check: `npm run typecheck`
|
|
428
431
|
- [ ] Lint: `npm run lint`
|
|
@@ -533,13 +536,13 @@ Next: /start bd-xxx1
|
|
|
533
536
|
|
|
534
537
|
## Subagent Delegation Summary
|
|
535
538
|
|
|
536
|
-
| Phase | Subagent | Purpose
|
|
537
|
-
| ------------------ | ---------- |
|
|
538
|
-
| Research | `@explore` | Find codebase patterns
|
|
539
|
-
| Research | `@scout` | Find best practices
|
|
540
|
-
| Design options | None | Planner creates
|
|
541
|
-
| Hierarchy creation | None | Planner uses `
|
|
542
|
-
| Implementation | `@build` | Delegated via `/start`, `/
|
|
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` |
|
|
543
546
|
|
|
544
547
|
**Key Rule:** Planner is read-only. Creates structure and artifacts. Build agent executes.
|
|
545
548
|
|
|
@@ -9,6 +9,10 @@ subtask: true
|
|
|
9
9
|
|
|
10
10
|
You're gathering information before implementation. Find answers, document findings, stop when done.
|
|
11
11
|
|
|
12
|
+
> **Lifecycle context:** Ideation → Design → **Research (optional)** → Specification → Planning → Implementation → Verification
|
|
13
|
+
>
|
|
14
|
+
> Research can happen at any phase when you need external information or codebase understanding.
|
|
15
|
+
|
|
12
16
|
## Depth Levels
|
|
13
17
|
|
|
14
18
|
- `--quick` (~10 tool calls): Single question, API syntax lookup
|
|
@@ -18,6 +22,8 @@ You're gathering information before implementation. Find answers, document findi
|
|
|
18
22
|
## Load Skills Based on Depth
|
|
19
23
|
|
|
20
24
|
```typescript
|
|
25
|
+
skill({ name: "development-lifecycle" }); // Phase guidance
|
|
26
|
+
|
|
21
27
|
// For --thorough mode, load the deep-research skill
|
|
22
28
|
if (thorough) {
|
|
23
29
|
skill({ name: "deep-research" });
|
|
@@ -42,8 +48,9 @@ skill({ name: "memory-system" });
|
|
|
42
48
|
|
|
43
49
|
```typescript
|
|
44
50
|
// Analyze if research benefits from parallelization
|
|
45
|
-
const analysis = await
|
|
46
|
-
operation: "
|
|
51
|
+
const analysis = await swarm({
|
|
52
|
+
operation: "plan",
|
|
53
|
+
action: "analyze",
|
|
47
54
|
task: "Research " + $ARGUMENTS,
|
|
48
55
|
files: "<detected files or leave empty for external research>",
|
|
49
56
|
});
|
|
@@ -86,7 +93,7 @@ For comprehensive research across multiple domains, use parallel agents:
|
|
|
86
93
|
// Option A: Simple parallel (2-3 agents)
|
|
87
94
|
// Launch both in parallel
|
|
88
95
|
task({ subagent_type: "explore", prompt: "LSP analysis of..." });
|
|
89
|
-
|
|
96
|
+
context7({ operation: "resolve", libraryName: "<lib>" });
|
|
90
97
|
grepsearch({ query: "<pattern>", language: "TypeScript" });
|
|
91
98
|
|
|
92
99
|
// Option B: Swarm mode for complex multi-domain research
|
|
@@ -115,7 +122,7 @@ Return: Documentation, code examples, best practices`,
|
|
|
115
122
|
### Load Bead Details
|
|
116
123
|
|
|
117
124
|
!`br show $ARGUMENTS`
|
|
118
|
-
!`cat .beads/artifacts/$ARGUMENTS/
|
|
125
|
+
!`cat .beads/artifacts/$ARGUMENTS/prd.md`
|
|
119
126
|
|
|
120
127
|
Extract questions that need answering from spec.
|
|
121
128
|
|
|
@@ -182,8 +189,8 @@ Return file:line references.`,
|
|
|
182
189
|
### External Docs
|
|
183
190
|
|
|
184
191
|
```typescript
|
|
185
|
-
|
|
186
|
-
|
|
192
|
+
context7({ operation: "resolve", libraryName: "<lib>", query: "<question>" });
|
|
193
|
+
context7({ operation: "query", libraryId: "<id>", topic: "<specific question>" });
|
|
187
194
|
```
|
|
188
195
|
|
|
189
196
|
### Source Code (When Docs Insufficient)
|