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
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: development-lifecycle
|
|
3
|
+
description: Orchestrates the full feature development lifecycle from ideation through verification. Guides through phases (brainstorm → design → specify → plan → implement → verify) and loads appropriate sub-skills at each stage.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Development Lifecycle Orchestration
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
This skill orchestrates the complete feature development workflow, guiding you through each phase and loading the appropriate sub-skills automatically.
|
|
11
|
+
|
|
12
|
+
**Use when:** Starting any new feature, migration, refactor, or significant change.
|
|
13
|
+
|
|
14
|
+
**Announce at start:** "I'm using development-lifecycle to guide this work through all phases."
|
|
15
|
+
|
|
16
|
+
## The Lifecycle
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
|
20
|
+
│ IDEATION │───▶│ DESIGN │───▶│ SPECIFICATION│───▶│ PLANNING │───▶│IMPLEMENTATION│
|
|
21
|
+
│ brainstorming│ │ design.md │ │ prd.md │ │ tasks.md │ │executing-plans│
|
|
22
|
+
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
|
|
23
|
+
│ │ │ │
|
|
24
|
+
└──────────────────┴──────────────────┴──────────────────┤
|
|
25
|
+
│ ▼
|
|
26
|
+
┌─────────────────┐ ┌─────────────┐
|
|
27
|
+
│ RESEARCH │ │VERIFICATION │
|
|
28
|
+
│ (optional) │ │verification-│
|
|
29
|
+
│ /research cmd │ │before- │
|
|
30
|
+
└─────────────────┘ │completion │
|
|
31
|
+
└─────────────┘
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
**Note:** Research (`/research <bead-id>`) can happen at any phase when you need external information or deeper codebase understanding. It's not a sequential step but a parallel activity.
|
|
35
|
+
|
|
36
|
+
## Phase 1: Ideation (brainstorming)
|
|
37
|
+
|
|
38
|
+
**When:** You have a rough idea but need to explore and refine it.
|
|
39
|
+
|
|
40
|
+
**Load skill:**
|
|
41
|
+
|
|
42
|
+
```typescript
|
|
43
|
+
skill({ name: "brainstorming" });
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Entry criteria:** User has an idea or problem to solve.
|
|
47
|
+
|
|
48
|
+
**Process:**
|
|
49
|
+
|
|
50
|
+
1. Understand current project context
|
|
51
|
+
2. Ask questions one at a time (prefer multiple choice)
|
|
52
|
+
3. Explore 2-3 approaches with trade-offs
|
|
53
|
+
4. Present design in 200-300 word sections
|
|
54
|
+
|
|
55
|
+
**Exit criteria:**
|
|
56
|
+
|
|
57
|
+
- Design validated by user
|
|
58
|
+
- Output: `.beads/artifacts/<bead-id>/design.md`
|
|
59
|
+
|
|
60
|
+
**Template:** `.opencode/memory/_templates/design.md`
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Phase 2: Specification (prd)
|
|
65
|
+
|
|
66
|
+
**When:** Design is validated, need formal requirements and task breakdown.
|
|
67
|
+
|
|
68
|
+
**Load skill:**
|
|
69
|
+
|
|
70
|
+
```typescript
|
|
71
|
+
skill({ name: "prd" });
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**Entry criteria:** Design document exists and is validated.
|
|
75
|
+
|
|
76
|
+
**Process:**
|
|
77
|
+
|
|
78
|
+
1. Confirm bead id (create if needed: `br create "Feature Name"`)
|
|
79
|
+
2. Ask clarifying questions (5-7 max)
|
|
80
|
+
3. Explore codebase patterns and constraints
|
|
81
|
+
4. Write PRD with machine-convertible Tasks section
|
|
82
|
+
|
|
83
|
+
**Exit criteria:**
|
|
84
|
+
|
|
85
|
+
- PRD with all sections completed
|
|
86
|
+
- Output: `.beads/artifacts/<bead-id>/prd.md`
|
|
87
|
+
|
|
88
|
+
**Template:** `.opencode/memory/_templates/prd.md`
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Phase 3: Task Conversion (prd-task)
|
|
93
|
+
|
|
94
|
+
**When:** PRD is complete, need executable task list.
|
|
95
|
+
|
|
96
|
+
**Load skill:**
|
|
97
|
+
|
|
98
|
+
```typescript
|
|
99
|
+
skill({ name: "prd-task" });
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**Entry criteria:** PRD exists at `.beads/artifacts/<bead-id>/prd.md`.
|
|
103
|
+
|
|
104
|
+
**Process:**
|
|
105
|
+
|
|
106
|
+
1. Read PRD and extract ## Tasks section
|
|
107
|
+
2. Convert to JSON format with dependencies
|
|
108
|
+
3. Create progress.txt for cross-iteration memory
|
|
109
|
+
|
|
110
|
+
**Exit criteria:**
|
|
111
|
+
|
|
112
|
+
- JSON task file created
|
|
113
|
+
- Progress file initialized
|
|
114
|
+
- Output: `.beads/artifacts/<bead-id>/prd.json`, `progress.txt`
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Phase 4: Planning (writing-plans)
|
|
119
|
+
|
|
120
|
+
**When:** Tasks defined, need detailed implementation instructions.
|
|
121
|
+
|
|
122
|
+
**Load skill:**
|
|
123
|
+
|
|
124
|
+
```typescript
|
|
125
|
+
skill({ name: "writing-plans" });
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
**Entry criteria:** Task list exists (prd.json or tasks.md).
|
|
129
|
+
|
|
130
|
+
**Process:**
|
|
131
|
+
|
|
132
|
+
1. Create bite-sized steps (2-5 min each)
|
|
133
|
+
2. Include exact file paths, complete code
|
|
134
|
+
3. TDD: write failing test → verify fail → implement → verify pass → commit
|
|
135
|
+
4. Add verification commands for each step
|
|
136
|
+
|
|
137
|
+
**Exit criteria:**
|
|
138
|
+
|
|
139
|
+
- Detailed plan ready for execution
|
|
140
|
+
- Output: `.beads/artifacts/<bead-id>/plan.md`
|
|
141
|
+
|
|
142
|
+
**Template:** `.opencode/memory/_templates/tasks.md` (for task structure reference)
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Phase 5: Implementation (executing-plans)
|
|
147
|
+
|
|
148
|
+
**When:** Plan is ready, time to build.
|
|
149
|
+
|
|
150
|
+
**Load skill:**
|
|
151
|
+
|
|
152
|
+
```typescript
|
|
153
|
+
skill({ name: "executing-plans" });
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
**Entry criteria:** Plan exists at `.beads/artifacts/<bead-id>/plan.md`.
|
|
157
|
+
|
|
158
|
+
**Process:**
|
|
159
|
+
|
|
160
|
+
1. Load and review plan critically
|
|
161
|
+
2. Execute in 3-task batches
|
|
162
|
+
3. Report for feedback between batches
|
|
163
|
+
4. Stop on blockers, don't guess
|
|
164
|
+
|
|
165
|
+
**Exit criteria:**
|
|
166
|
+
|
|
167
|
+
- All tasks completed
|
|
168
|
+
- All verifications pass
|
|
169
|
+
- Ready for final verification
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## Phase 6: Verification (verification-before-completion)
|
|
174
|
+
|
|
175
|
+
**When:** Implementation complete, before claiming done.
|
|
176
|
+
|
|
177
|
+
**Load skill:**
|
|
178
|
+
|
|
179
|
+
```typescript
|
|
180
|
+
skill({ name: "verification-before-completion" });
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
**Entry criteria:** All implementation tasks marked complete.
|
|
184
|
+
|
|
185
|
+
**Process:**
|
|
186
|
+
|
|
187
|
+
1. IDENTIFY: What commands prove completion?
|
|
188
|
+
2. RUN: Execute full verification suite fresh
|
|
189
|
+
3. READ: Check output, count failures
|
|
190
|
+
4. VERIFY: Does output confirm the claim?
|
|
191
|
+
5. ONLY THEN: Claim completion
|
|
192
|
+
|
|
193
|
+
**Exit criteria:**
|
|
194
|
+
|
|
195
|
+
- All verification commands pass with evidence
|
|
196
|
+
- Bead can be closed: `br close <bead-id>`
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## Phase Transitions
|
|
201
|
+
|
|
202
|
+
### Quick Start (Skip to appropriate phase)
|
|
203
|
+
|
|
204
|
+
| Starting Point | Begin At | Command |
|
|
205
|
+
| --------------------------------- | -------- | --------------------------------------------------- |
|
|
206
|
+
| Rough idea | Phase 1 | `skill({ name: "brainstorming" })` |
|
|
207
|
+
| Design done, need requirements | Phase 2 | `skill({ name: "prd" })` |
|
|
208
|
+
| PRD done, need task JSON | Phase 3 | `skill({ name: "prd-task" })` |
|
|
209
|
+
| Tasks defined, need detailed plan | Phase 4 | `skill({ name: "writing-plans" })` |
|
|
210
|
+
| Plan ready, time to build | Phase 5 | `skill({ name: "executing-plans" })` |
|
|
211
|
+
| Done coding, need verification | Phase 6 | `skill({ name: "verification-before-completion" })` |
|
|
212
|
+
|
|
213
|
+
### Skipping Phases
|
|
214
|
+
|
|
215
|
+
For small changes, you can skip early phases:
|
|
216
|
+
|
|
217
|
+
- **Bug fix:** Skip to Phase 5 (implement directly with verification)
|
|
218
|
+
- **Clear requirements:** Skip Phase 1, start at Phase 2
|
|
219
|
+
- **Simple refactor:** Skip to Phase 4 (plan) or Phase 5 (execute)
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## Templates Reference
|
|
224
|
+
|
|
225
|
+
| Phase | Template | Purpose |
|
|
226
|
+
| ------------- | ------------------------ | ----------------------------- |
|
|
227
|
+
| Design | `_templates/design.md` | Architecture decisions |
|
|
228
|
+
| Specification | `_templates/prd.md` | Requirements + task breakdown |
|
|
229
|
+
| Planning | `_templates/tasks.md` | Detailed task structure |
|
|
230
|
+
| Quick Ideas | `_templates/proposal.md` | Lightweight change proposals |
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## Beads Integration
|
|
235
|
+
|
|
236
|
+
Every phase should operate within a bead context:
|
|
237
|
+
|
|
238
|
+
```bash
|
|
239
|
+
# Create bead for new feature
|
|
240
|
+
br create "Feature Name"
|
|
241
|
+
|
|
242
|
+
# Check current bead status
|
|
243
|
+
br show <bead-id>
|
|
244
|
+
|
|
245
|
+
# Update status as you progress
|
|
246
|
+
br update <bead-id> --status in_progress
|
|
247
|
+
|
|
248
|
+
# Close when complete
|
|
249
|
+
br close <bead-id> --reason "All verification passed"
|
|
250
|
+
|
|
251
|
+
# Sync changes
|
|
252
|
+
br sync --flush-only
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## Example Full Workflow
|
|
258
|
+
|
|
259
|
+
```
|
|
260
|
+
User: "I want to add a dark mode toggle"
|
|
261
|
+
|
|
262
|
+
1. IDEATION
|
|
263
|
+
→ skill({ name: "brainstorming" })
|
|
264
|
+
→ Questions about scope, triggers, persistence
|
|
265
|
+
→ Design decisions documented
|
|
266
|
+
→ Output: .beads/artifacts/bd-dark-mode/design.md
|
|
267
|
+
|
|
268
|
+
2. SPECIFICATION
|
|
269
|
+
→ skill({ name: "prd" })
|
|
270
|
+
→ Full PRD with requirements
|
|
271
|
+
→ Tasks section for conversion
|
|
272
|
+
→ Output: .beads/artifacts/bd-dark-mode/prd.md
|
|
273
|
+
|
|
274
|
+
3. TASK CONVERSION
|
|
275
|
+
→ skill({ name: "prd-task" })
|
|
276
|
+
→ JSON task list with dependencies
|
|
277
|
+
→ Output: .beads/artifacts/bd-dark-mode/prd.json
|
|
278
|
+
|
|
279
|
+
4. PLANNING
|
|
280
|
+
→ skill({ name: "writing-plans" })
|
|
281
|
+
→ Bite-sized implementation steps
|
|
282
|
+
→ Output: .beads/artifacts/bd-dark-mode/plan.md
|
|
283
|
+
|
|
284
|
+
5. IMPLEMENTATION
|
|
285
|
+
→ skill({ name: "executing-plans" })
|
|
286
|
+
→ Execute in batches with feedback
|
|
287
|
+
→ All code written and committed
|
|
288
|
+
|
|
289
|
+
6. VERIFICATION
|
|
290
|
+
→ skill({ name: "verification-before-completion" })
|
|
291
|
+
→ Tests pass: ✓
|
|
292
|
+
→ Lint clean: ✓
|
|
293
|
+
→ Build succeeds: ✓
|
|
294
|
+
→ br close bd-dark-mode --reason "Dark mode implemented and verified"
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
---
|
|
298
|
+
|
|
299
|
+
## Key Principles
|
|
300
|
+
|
|
301
|
+
1. **Phase-appropriate skills:** Load the right skill for each phase
|
|
302
|
+
2. **Evidence at every gate:** No phase transition without verification
|
|
303
|
+
3. **Templates guide structure:** Use templates for consistent output
|
|
304
|
+
4. **Beads track progress:** Every feature gets a bead
|
|
305
|
+
5. **Skip only when appropriate:** Small changes can skip early phases
|
|
@@ -142,13 +142,13 @@ For long-term storage health:
|
|
|
142
142
|
|
|
143
143
|
```typescript
|
|
144
144
|
// Check current status
|
|
145
|
-
|
|
145
|
+
memory_admin({ operation: "status" });
|
|
146
146
|
|
|
147
147
|
// Full maintenance (archive >90 days, checkpoint WAL, vacuum)
|
|
148
|
-
|
|
148
|
+
memory_admin({ operation: "full" });
|
|
149
149
|
|
|
150
150
|
// Preview what would be archived
|
|
151
|
-
|
|
151
|
+
memory_admin({ operation: "archive", older_than_days: 60, dry_run: true });
|
|
152
152
|
```
|
|
153
153
|
|
|
154
154
|
**Automatic maintenance** runs at session end:
|
|
@@ -9,6 +9,10 @@ Create Product Requirements Documents suitable for RFC review by Principal Engin
|
|
|
9
9
|
|
|
10
10
|
The PRD describes WHAT to build and WHY, not HOW or in WHAT ORDER.
|
|
11
11
|
|
|
12
|
+
**Part of:** `development-lifecycle` skill (Phase 2: Specification)
|
|
13
|
+
|
|
14
|
+
**Template:** `.opencode/memory/_templates/prd.md`
|
|
15
|
+
|
|
12
16
|
## Beads-Native Output (Recommended)
|
|
13
17
|
|
|
14
18
|
When you are working on a Beads task (you have a bead id like `bd-...`), the PRD should live with the task artifacts:
|
|
@@ -17,16 +21,20 @@ When you are working on a Beads task (you have a bead id like `bd-...`), the PRD
|
|
|
17
21
|
|
|
18
22
|
This keeps requirements + execution tasks colocated with the bead.
|
|
19
23
|
|
|
20
|
-
If no bead id exists,
|
|
24
|
+
If no bead id exists, create one first: `br create "Feature Name"`, then use the artifact path.
|
|
21
25
|
|
|
22
26
|
## Workflow
|
|
23
27
|
|
|
24
28
|
1. Confirm if the user has an existing bead id.
|
|
25
29
|
- If yes: use `.beads/artifacts/<bead-id>/prd.md`
|
|
26
|
-
- If no:
|
|
27
|
-
2.
|
|
28
|
-
3.
|
|
29
|
-
4.
|
|
30
|
+
- If no: create bead with `br create "Feature Name"`, then use artifact path
|
|
31
|
+
2. Read template from `.opencode/memory/_templates/prd.md`
|
|
32
|
+
3. Ask clarifying questions (5–7 max).
|
|
33
|
+
4. Explore codebase patterns and constraints.
|
|
34
|
+
5. Write a PRD following the template structure, including:
|
|
35
|
+
- Bead Metadata (dependencies, parallel, conflicts)
|
|
36
|
+
- Requirements with WHEN/THEN scenarios
|
|
37
|
+
- Machine-convertible `## Tasks` section
|
|
30
38
|
|
|
31
39
|
## Clarifying Questions
|
|
32
40
|
|
|
@@ -65,142 +73,57 @@ If no bead id exists, fall back to writing `prd-<feature-name>.md` in the projec
|
|
|
65
73
|
|
|
66
74
|
## Output Format
|
|
67
75
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
IMPORTANT: include a `## Tasks` section that `prd-task` can convert.
|
|
71
|
-
|
|
72
|
-
```markdown
|
|
73
|
-
# PRD: <Feature Name>
|
|
74
|
-
|
|
75
|
-
**Bead:** <bd-...>
|
|
76
|
-
**Date:** <YYYY-MM-DD>
|
|
77
|
-
|
|
78
|
-
---
|
|
79
|
-
|
|
80
|
-
## Problem Statement
|
|
81
|
-
|
|
82
|
-
### What problem are we solving?
|
|
83
|
-
|
|
84
|
-
Clear description of the problem. Include user impact and business impact.
|
|
85
|
-
|
|
86
|
-
### Why now?
|
|
87
|
-
|
|
88
|
-
What triggered this work? Cost of inaction?
|
|
89
|
-
|
|
90
|
-
### Who is affected?
|
|
91
|
-
|
|
92
|
-
- **Primary users:** Description
|
|
93
|
-
- **Secondary users:** Description
|
|
94
|
-
|
|
95
|
-
---
|
|
96
|
-
|
|
97
|
-
## Proposed Solution
|
|
98
|
-
|
|
99
|
-
### Overview
|
|
100
|
-
|
|
101
|
-
One paragraph describing what this feature does when complete.
|
|
102
|
-
|
|
103
|
-
### User Experience (if applicable)
|
|
104
|
-
|
|
105
|
-
How will users interact with this feature? Include user flows for primary scenarios.
|
|
106
|
-
|
|
107
|
-
---
|
|
108
|
-
|
|
109
|
-
## End State
|
|
110
|
-
|
|
111
|
-
When this PRD is complete, the following will be true:
|
|
112
|
-
|
|
113
|
-
- [ ] Capability 1 exists and works
|
|
114
|
-
- [ ] Capability 2 exists and works
|
|
115
|
-
- [ ] All acceptance criteria pass
|
|
116
|
-
- [ ] Tests cover the new functionality
|
|
117
|
-
- [ ] Documentation is updated
|
|
118
|
-
|
|
119
|
-
---
|
|
120
|
-
|
|
121
|
-
## Success Metrics
|
|
122
|
-
|
|
123
|
-
### Quantitative
|
|
76
|
+
**Read the template:** `.opencode/memory/_templates/prd.md`
|
|
124
77
|
|
|
125
|
-
|
|
126
|
-
| -------- | ------- | ------ | ------------------ |
|
|
127
|
-
| Metric 1 | X | Y | How measured |
|
|
78
|
+
Follow the template structure which includes:
|
|
128
79
|
|
|
129
|
-
|
|
80
|
+
- Bead Metadata (dependencies, parallel execution, conflicts)
|
|
81
|
+
- Problem Statement with WHEN/THEN scenarios
|
|
82
|
+
- Scope (In/Out)
|
|
83
|
+
- Requirements (Functional + Non-Functional)
|
|
84
|
+
- Success Criteria with verification commands
|
|
85
|
+
- Technical Context and Affected Files
|
|
86
|
+
- Tasks section with Metadata (depends_on, parallel, files)
|
|
130
87
|
|
|
131
|
-
|
|
132
|
-
- Team/process improvements expected
|
|
88
|
+
### Task Format (Critical)
|
|
133
89
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
## Acceptance Criteria
|
|
137
|
-
|
|
138
|
-
### Feature: <Name>
|
|
139
|
-
|
|
140
|
-
- [ ] Criterion 1
|
|
141
|
-
- [ ] Criterion 2
|
|
142
|
-
|
|
143
|
-
---
|
|
144
|
-
|
|
145
|
-
## Technical Context
|
|
146
|
-
|
|
147
|
-
### Existing Patterns
|
|
148
|
-
|
|
149
|
-
- Pattern 1: `src/path/to/example.ts` - Why relevant
|
|
150
|
-
|
|
151
|
-
### Key Files
|
|
152
|
-
|
|
153
|
-
- `src/relevant/file.ts` - Description of relevance
|
|
154
|
-
|
|
155
|
-
---
|
|
156
|
-
|
|
157
|
-
## Risks & Mitigations
|
|
158
|
-
|
|
159
|
-
| Risk | Likelihood | Impact | Mitigation |
|
|
160
|
-
| ------ | ------------ | ------------ | --------------- |
|
|
161
|
-
| Risk 1 | High/Med/Low | High/Med/Low | How to mitigate |
|
|
90
|
+
Tasks must include **Metadata** for dependency tracking:
|
|
162
91
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
## Non-Goals (v1)
|
|
166
|
-
|
|
167
|
-
Explicitly out of scope:
|
|
168
|
-
|
|
169
|
-
- Thing we're not building - why deferred
|
|
170
|
-
|
|
171
|
-
---
|
|
92
|
+
````markdown
|
|
93
|
+
### <Task Title> [category]
|
|
172
94
|
|
|
173
|
-
|
|
95
|
+
<One sentence describing the end state>
|
|
174
96
|
|
|
175
|
-
|
|
97
|
+
**Metadata:**
|
|
176
98
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
99
|
+
```yaml
|
|
100
|
+
depends_on: []
|
|
101
|
+
parallel: true
|
|
102
|
+
conflicts_with: []
|
|
103
|
+
files: []
|
|
104
|
+
```
|
|
105
|
+
````
|
|
180
106
|
|
|
181
107
|
**Verification:**
|
|
182
108
|
|
|
183
|
-
-
|
|
184
|
-
- Another check
|
|
109
|
+
- [Command or check]
|
|
185
110
|
|
|
186
|
-
|
|
111
|
+
```
|
|
187
112
|
|
|
188
|
-
|
|
113
|
+
## Next Steps
|
|
189
114
|
|
|
190
|
-
|
|
115
|
+
After PRD is written, tell the user:
|
|
191
116
|
|
|
192
|
-
|
|
117
|
+
```
|
|
193
118
|
|
|
194
|
-
|
|
195
|
-
- Duplicate email returns 409
|
|
119
|
+
PRD written: .beads/artifacts/<bead-id>/prd.md
|
|
196
120
|
|
|
197
|
-
|
|
121
|
+
Next: Convert to executable tasks:
|
|
122
|
+
skill({ name: "prd-task" })
|
|
198
123
|
|
|
199
|
-
|
|
124
|
+
Or view the full lifecycle:
|
|
125
|
+
skill({ name: "development-lifecycle" })
|
|
200
126
|
|
|
201
|
-
| Question | Owner | Due Date | Status |
|
|
202
|
-
| ---------- | ----- | -------- | ------------- |
|
|
203
|
-
| Question 1 | Name | Date | Open/Resolved |
|
|
204
127
|
```
|
|
205
128
|
|
|
206
129
|
## Key Principles
|
|
@@ -210,3 +133,5 @@ Users can register with email/password.
|
|
|
210
133
|
- Technical Context Enables Autonomy
|
|
211
134
|
- Non-Goals Prevent Scope Creep
|
|
212
135
|
- Risks & Alternatives Show Rigor
|
|
136
|
+
- Include Metadata for parallel execution
|
|
137
|
+
```
|
|
@@ -11,6 +11,8 @@ Convert a markdown PRD into executable JSON format for autonomous task completio
|
|
|
11
11
|
|
|
12
12
|
The PRD defines the **end state** via tasks with verification steps. The agent decides HOW to get there.
|
|
13
13
|
|
|
14
|
+
**Part of:** `development-lifecycle` skill (Phase 3: Task Conversion)
|
|
15
|
+
|
|
14
16
|
## Beads-Native File Locations (Recommended)
|
|
15
17
|
|
|
16
18
|
This template uses Beads artifacts (no `.opencode/state`).
|
|
@@ -66,9 +68,27 @@ Write JSON to `.beads/artifacts/<bead-id>/prd.json`.
|
|
|
66
68
|
"Verify 201 response with user object",
|
|
67
69
|
"Attempt duplicate email, verify 409"
|
|
68
70
|
],
|
|
69
|
-
"passes": false
|
|
71
|
+
"passes": false,
|
|
72
|
+
"metadata": {
|
|
73
|
+
"depends_on": [],
|
|
74
|
+
"parallel": true,
|
|
75
|
+
"conflicts_with": [],
|
|
76
|
+
"files": ["src/routes/auth.ts", "src/db/users.ts"]
|
|
77
|
+
}
|
|
70
78
|
}
|
|
71
|
-
]
|
|
79
|
+
],
|
|
80
|
+
"context": {
|
|
81
|
+
"patterns": ["API routes: src/routes/"],
|
|
82
|
+
"keyFiles": ["src/db/schema.ts"],
|
|
83
|
+
"nonGoals": ["OAuth/social login"]
|
|
84
|
+
},
|
|
85
|
+
"beadMetadata": {
|
|
86
|
+
"depends_on": [],
|
|
87
|
+
"parallel": true,
|
|
88
|
+
"conflicts_with": [],
|
|
89
|
+
"blocks": [],
|
|
90
|
+
"estimated_hours": 4
|
|
91
|
+
}
|
|
72
92
|
}
|
|
73
93
|
```
|
|
74
94
|
|
|
@@ -85,6 +105,25 @@ See `references/prd-schema.json`.
|
|
|
85
105
|
- Text after title becomes `description`
|
|
86
106
|
- Items under `**Verification:**` become `steps`
|
|
87
107
|
- `passes` always starts `false`
|
|
108
|
+
- Extract `**Metadata:**` yaml block for dependency info:
|
|
109
|
+
- `depends_on`: Task titles or IDs that must complete first
|
|
110
|
+
- `parallel`: Can run concurrently (default: true)
|
|
111
|
+
- `conflicts_with`: Tasks modifying same files
|
|
112
|
+
- `files`: Files this task will modify
|
|
113
|
+
|
|
114
|
+
### Bead Metadata
|
|
115
|
+
|
|
116
|
+
Extract the `## Bead Metadata` yaml block from the PRD header:
|
|
117
|
+
|
|
118
|
+
```yaml
|
|
119
|
+
depends_on: [] # Bead IDs
|
|
120
|
+
parallel: true
|
|
121
|
+
conflicts_with: [] # Bead IDs
|
|
122
|
+
blocks: []
|
|
123
|
+
estimated_hours: 2
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Store in `beadMetadata` field in the JSON output.
|
|
88
127
|
|
|
89
128
|
### Steps Are Verification
|
|
90
129
|
|
|
@@ -122,7 +161,12 @@ PRD converted:
|
|
|
122
161
|
- .beads/artifacts/<bead-id>/prd.json
|
|
123
162
|
- .beads/artifacts/<bead-id>/progress.txt
|
|
124
163
|
|
|
125
|
-
Next:
|
|
164
|
+
Next: Create detailed implementation plan
|
|
165
|
+
skill({ name: "writing-plans" })
|
|
166
|
+
|
|
167
|
+
Or start execution directly:
|
|
126
168
|
/start <bead-id>
|
|
127
|
-
|
|
169
|
+
|
|
170
|
+
Full lifecycle reference:
|
|
171
|
+
skill({ name: "development-lifecycle" })
|
|
128
172
|
```
|