PRD Task Skill (Beads-Native)
Convert a markdown PRD into executable JSON format for autonomous task completion.
The PRD defines the end state via tasks with verification steps. The agent decides HOW to get there.
Beads-Native File Locations (Recommended)
This template uses Beads artifacts (no .opencode/state).
code
.beads/artifacts/<bead-id>/ ├── prd.md # PRD created by `prd` skill ├── prd.json # Generated task list with passes field └── progress.txt # Cross-iteration memory (append-only)
Workflow
- •Input: bead id (
bd-...). - •Read
.beads/artifacts/<bead-id>/prd.md. - •Extract tasks from
## Tasks. - •Write
.beads/artifacts/<bead-id>/prd.json. - •Ensure
.beads/artifacts/<bead-id>/progress.txtexists (create if missing).
Input Format
prd-task expects a ## Tasks section with tasks of the form:
markdown
## Tasks ### User Registration [functional] User can register with email and password. **Verification:** - POST /api/auth/register with valid email/password - Verify 201 response with user object - Attempt duplicate email, verify 409
Output Format
Write JSON to .beads/artifacts/<bead-id>/prd.json.
json
{
"beadId": "bd-...",
"prdName": "<optional-slug>",
"tasks": [
{
"id": "functional-1",
"category": "functional",
"description": "User can register with email and password",
"steps": [
"POST /api/auth/register with valid email/password",
"Verify 201 response with user object",
"Attempt duplicate email, verify 409"
],
"passes": false
}
]
}
Task Schema
See references/prd-schema.json.
Conversion Rules
Tasks from Markdown
- •Each
### Title [category]becomes a task - •Generate
idas<category>-<number>(e.g.,api-1,db-2) or a descriptive slug - •Text after title becomes
description - •Items under
**Verification:**becomesteps - •
passesalways startsfalse
Steps Are Verification
Steps must be written as verification steps, not implementation instructions.
Bad: "Add a controller and write a service" Good: "POST /api/foo returns 201" / "bun test passes"
Progress File
If .beads/artifacts/<bead-id>/progress.txt does not exist, create it with:
markdown
# Progress Log Bead: <bead-id> Started: <YYYY-MM-DD> ## Codebase Patterns <!-- Consolidate reusable patterns here --> --- <!-- Task logs below - APPEND ONLY -->
After Conversion
Tell the user:
code
PRD converted: - .beads/artifacts/<bead-id>/prd.md - .beads/artifacts/<bead-id>/prd.json - .beads/artifacts/<bead-id>/progress.txt Next: /start <bead-id> /complete-next-task <bead-id>