ワンクリックで
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 ページを確認してインストールできます。
SOC 職業分類に基づく
| 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