一键导入
prd-to-beads
Convert PRDs to Beads tasks for Reeds autonomous execution. Creates an epic with child beads for each user story.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Convert PRDs to Beads tasks for Reeds autonomous execution. Creates an epic with child beads for each user story.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
| name | prd-to-beads |
| description | Convert PRDs to Beads tasks for Reeds autonomous execution. Creates an epic with child beads for each user story. |
| version | 0.1.0 |
| allowed-tools | Read,Bash(bd:*) |
Converts PRDs to Beads (epic + child tasks) for Reeds autonomous execution.
Adapted from ralph-tui (MIT License).
Take a PRD (markdown file or text) and create beads in .beads/beads.jsonl:
/reeds:reeds-startLook for the "Quality Gates" section in the PRD:
## Quality Gates
These commands must pass for every user story:
- `make test` - Run tests
- `make lint` - Linting
For UI stories, also include:
- Manual browser verification
Extract:
make test)If no Quality Gates section exists: Ask the user what commands should pass, or use a sensible default like go test ./....
Beads use bd create command with HEREDOC syntax to safely handle special characters:
# Create epic (link back to source PRD)
bd create --type=epic \
--title="[Feature Name]" \
--description="$(cat <<'EOF'
[Feature description from PRD]
EOF
)" \
--external-ref="prd:./path/to/prd.md"
# Create child bead (with quality gates in acceptance criteria)
bd create \
--parent=EPIC_ID \
--title="[Story Title]" \
--description="$(cat <<'EOF'
[Story description with acceptance criteria INCLUDING quality gates]
EOF
)" \
--priority=[1-4]
CRITICAL: Always use
<<'EOF'(single-quoted) for the HEREDOC delimiter. This prevents shell interpretation of backticks,$variables, and()in descriptions.
Each story must be completable in ONE Reeds iteration (~one agent context window).
Reeds spawns a fresh agent instance per iteration with no memory of previous work. If a story is too big, the agent runs out of context before finishing.
Rule of thumb: If you can't describe the change in 2-3 sentences, it's too big.
Stories execute in dependency order. Earlier stories must not depend on later ones.
Correct order:
Wrong order:
bd dep addUse the bd dep add command to specify which beads must complete first:
# Create the beads first
bd create --parent=epic-123 --title="US-001: Add schema" ...
bd create --parent=epic-123 --title="US-002: Create API" ...
bd create --parent=epic-123 --title="US-003: Build UI" ...
# Then add dependencies (issue depends-on blocker)
bd dep add reeds-002 reeds-001 # US-002 depends on US-001
bd dep add reeds-003 reeds-002 # US-003 depends on US-002
Syntax: bd dep add <issue> <depends-on> — the issue depends on (is blocked by) depends-on.
Reeds will:
Correct dependency order:
Each bead's description should include acceptance criteria with:
status column to orders table with default 'pending'"status: "open"If a PRD has big features, split them:
Original:
"Add order tracking with status updates"
Split into:
Each is one focused change that can be completed and verified independently.
Input PRD:
# PRD: Order Status Tracking
Add ability to track order status through lifecycle.
## Quality Gates
These commands must pass for every user story:
- `make test` - Run tests
- `make lint` - Linting
For UI stories, also include:
- Manual browser verification
## User Stories
### US-001: Add status field to orders table
**Description:** As a developer, I need to track order status.
**Acceptance Criteria:**
- [ ] Add status column: 'pending' | 'processing' | 'complete' (default 'pending')
- [ ] Generate and run migration successfully
### US-002: Add status badge to order list
**Description:** As a user, I want to see order status in the list.
**Acceptance Criteria:**
- [ ] Each row shows status badge with color
- [ ] Badge colors: pending=yellow, processing=blue, complete=green
### US-003: Filter orders by status
**Description:** As a user, I want to filter orders by status.
**Acceptance Criteria:**
- [ ] Filter dropdown: All | Pending | Processing | Complete
- [ ] Filter persists in URL params
Output beads:
# Create epic (link back to source PRD)
bd create --type=epic \
--title="Order Status Tracking" \
--description="$(cat <<'EOF'
Track order status through lifecycle
EOF
)" \
--external-ref="prd:./docs/order-status-prd.md"
# US-001: No deps (first - creates schema)
bd create --parent=reeds-abc \
--title="US-001: Add status field to orders table" \
--description="$(cat <<'EOF'
As a developer, I need to track order status.
## Acceptance Criteria
- [ ] Add status column: 'pending' | 'processing' | 'complete' (default 'pending')
- [ ] Generate and run migration successfully
- [ ] make test passes
- [ ] make lint passes
EOF
)" \
--priority=1
# US-002: UI story (gets browser verification too)
bd create --parent=reeds-abc \
--title="US-002: Add status badge to order list" \
--description="$(cat <<'EOF'
As a user, I want to see order status in the list.
## Acceptance Criteria
- [ ] Each row shows status badge with color
- [ ] Badge colors: pending=yellow, processing=blue, complete=green
- [ ] make test passes
- [ ] make lint passes
- [ ] Manual browser verification
EOF
)" \
--priority=2
# Add dependency: US-002 depends on US-001
bd dep add reeds-002 reeds-001
# US-003: UI story
bd create --parent=reeds-abc \
--title="US-003: Filter orders by status" \
--description="$(cat <<'EOF'
As a user, I want to filter orders by status.
## Acceptance Criteria
- [ ] Filter dropdown: All | Pending | Processing | Complete
- [ ] Filter persists in URL params
- [ ] make test passes
- [ ] make lint passes
- [ ] Manual browser verification
EOF
)" \
--priority=3
# Add dependency: US-003 depends on US-002
bd dep add reeds-003 reeds-002
Beads are written to: .beads/beads.jsonl
After creation, start Reeds:
/reeds:reeds-start
Reeds will:
bd ready --limit 1 for the next taskREEDS COMPLETE when all tasks are donebd dep add after creating beads