beads-schema
Scannednpx machina-cli add skill GantisStorm/essentials-claude-code/beads-schema --openclawBeads CLI (bd) reference from Beads. Use this when creating, editing, or managing beads issues.
When to Use
Invoke /beads-schema before working with bd commands. Invoke /beads-schema validate to check that bd is initialized and working.
Core Concepts
Beads is a git-backed issue tracker. Issues are stored as JSONL in .beads/ and sync via git. The CLI is bd.
Conversion from Plans
Beads are typically created by /beads-converter from architectural plans (.claude/plans/*-plan.md). The pipeline:
/plan-creator (or /bug-plan-creator, /code-quality-plan-creator)
↓ writes
.claude/plans/{slug}-{hash5}-plan.md
↓ consumed by
/beads-converter <plan-path>
↓ runs
bd create (epic) + bd create (child tasks) + bd dep add
↓ stored in
.beads/beads.jsonl
↓ executed by
/beads-loop or /beads-swarm or ralph-tui
How plan sections map to bead fields:
| Plan Section | Bead Field | CLI Flag |
|---|---|---|
## Summary | Epic title + description | bd create "Title" -t epic -d "..." |
## Files | One bead per file (typically) | bd create "Title" --parent <epic> |
### Requirements | Bead description (exit checklist) | -d "## Requirements\n..." |
### Reference Implementation | Bead description (full code) | -d "## Reference Implementation\n..." |
### Migration Pattern | Bead description (before/after) | -d "## Migration Pattern\n..." |
## Dependency Graph | Bead dependencies | bd dep add <child> <parent> |
## Exit Criteria | Bead description (exit criteria) | -d "## Exit Criteria\n..." |
Each bead's description must be 100% self-contained — the executor agent receives only the bead description, never the source plan. All code, requirements, and verification commands are copied verbatim from the plan into the bead.
Issue Types (core)
| Type | Description |
|---|---|
task | General work item (default) |
bug | Bug report or defect |
feature | New feature or enhancement (enhancement is alias) |
chore | Maintenance or housekeeping |
epic | Large body of work spanning multiple issues |
Statuses
| Status | Description |
|---|---|
open | Ready to work (default) |
in_progress | Currently being worked on |
blocked | Waiting on dependency |
deferred | Deliberately put on ice |
closed | Finished |
Priority (0-4, lower = higher)
| Priority | Meaning |
|---|---|
| P0 | Critical |
| P1 | High |
| P2 | Medium (default) |
| P3 | Low |
| P4 | Backlog |
Supports both --priority 1 and --priority P1 formats.
Hierarchical IDs
Beads supports parent-child hierarchies via dotted IDs:
bd-a3f8(Epic)bd-a3f8.1(Task under epic)bd-a3f8.1.1(Sub-task)
Use --parent <epic-id> when creating to auto-generate child IDs.
Essential Commands
Create
# Create a task (default type)
bd create "Fix login bug" -p 1
# Create with type and parent
bd create "Add toggle switch" --type task --parent bd-a3f8
# Create epic
bd create "User Authentication" --type epic
# Full flags
bd create "Title" \
--type task \
--priority 1 \
--parent bd-a3f8 \
--description "Detailed description" \
--acceptance "Criteria for completion" \
--labels frontend,auth \
--deps bd-001,bd-002
Create flags:
| Flag | Short | Description |
|---|---|---|
--type | -t | Issue type (default: task) |
--priority | -p | Priority 0-4 or P0-P4 (default: 2) |
--parent | Parent issue ID (creates child) | |
--description | -d | Issue description |
--acceptance | Acceptance criteria | |
--design | Design notes | |
--notes | Additional notes | |
--labels | -l | Comma-separated labels |
--deps | Dependencies (format: id or type:id) | |
--assignee | -a | Assignee |
--id | Explicit issue ID | |
--due | Due date (+6h, tomorrow, 2025-01-15) | |
--defer | Hide from bd ready until date | |
--silent | Output only the issue ID | |
--json | JSON output |
Update
# Update status
bd update bd-a3f8 --status in_progress
# Update multiple fields
bd update bd-a3f8 --title "New title" --priority 1 --description "Updated desc"
# Append to notes (vs replace)
bd update bd-a3f8 --append-notes "Additional context"
Do NOT use bd edit — it opens an interactive editor. Use bd update with flags instead.
Close
# Close one or more issues
bd close bd-a3f8 --reason "Completed"
bd close bd-001 bd-002 bd-003 --reason "All done"
Show
bd show bd-a3f8 # Human-readable
bd show bd-a3f8 --json # JSON output
List
bd list # All open issues
bd list --type epic # Only epics
bd list --parent bd-a3f8 # Children of epic
bd list --status open # Filter by status
bd list --label frontend # Filter by label
bd list --json # JSON output
Ready
bd ready # Tasks with no open blockers
bd ready --json # JSON output
Shows tasks that are open, have all dependencies resolved (closed/cancelled), and are not deferred.
Dependencies
# Add dependency: child depends on parent (child blocked until parent closes)
bd dep add bd-child bd-parent
# Dependency types
bd dep add bd-child bd-parent # Default: "blocks"
bd dep add bd-child bd-parent --type related # Non-blocking relation
# Remove dependency
bd dep remove bd-child bd-parent
Dependency types that block readiness:
| Type | Effect |
|---|---|
blocks | Child blocked until parent closes (default) |
parent-child | Auto-created via --parent flag |
Non-blocking dependency types: related, discovered-from, replies-to, relates-to, duplicates, supersedes
Labels
bd label add bd-a3f8 frontend
bd label remove bd-a3f8 frontend
Sync
bd sync # Export to JSONL, commit, pull, import, push
Always run bd sync after making changes to persist them.
Task Selection Order
bd ready selects tasks by:
- Filter to
status: open - Filter to tasks with all blocking dependencies resolved (
closed/cancelled) - Filter out deferred tasks (past
defer_until) - Sort by priority (P0 first)
- Return matches
Issue Fields Reference
Core fields (used by essentials commands)
| Field | JSON key | Type | Required |
|---|---|---|---|
| ID | id | string | auto-generated |
| Title | title | string | yes (max 500 chars) |
| Description | description | string | no |
| Status | status | string | yes (default: open) |
| Priority | priority | int 0-4 | yes (default: 2) |
| Type | issue_type | string | yes (default: task) |
| Acceptance Criteria | acceptance_criteria | string | no |
| Design | design | string | no |
| Notes | notes | string | no |
| Assignee | assignee | string | no |
| Labels | labels | string[] | no |
| Dependencies | dependencies | object[] | no |
Timestamp fields (auto-managed)
| Field | JSON key |
|---|---|
| Created | created_at |
| Updated | updated_at |
| Closed | closed_at |
| Created by | created_by |
| Close reason | close_reason |
Common Workflows
Create epic with tasks
# 1. Create epic
bd create "User Authentication" --type epic --json
# Returns: bd-a3f8
# 2. Add tasks as children
bd create "Login form" --type task --parent bd-a3f8 -p 1
bd create "Auth API" --type task --parent bd-a3f8 -p 1
bd create "Integration tests" --type task --parent bd-a3f8 -p 2
# 3. Add dependency (tests depend on form + API)
bd dep add bd-a3f8.3 bd-a3f8.1
bd dep add bd-a3f8.3 bd-a3f8.2
# 4. Check ready tasks
bd ready --json
Work on a task
bd update bd-a3f8.1 --status in_progress
# ... do work ...
bd close bd-a3f8.1 --reason "Login form implemented with validation"
bd sync
Instructions
Parse $ARGUMENTS to determine mode.
If $ARGUMENTS is validate:
Check beads is set up and working:
# Check bd is installed
bd version
# Check beads is initialized
ls .beads/
# List all issues
bd list --json
# Check for ready tasks
bd ready --json
Report the beads version, issue count, and any issues.
If $ARGUMENTS is empty:
Output the quick reference:
Beads CLI (bd) Quick Reference
Types: task (default), bug, feature, chore, epic
Statuses: open, in_progress, blocked, deferred, closed
Priority: P0 (critical) → P4 (backlog), default P2
Create: bd create "Title" --type task -p 1 --parent <epic-id>
Update: bd update <id> --status in_progress
Close: bd close <id> --reason "Done"
Ready: bd ready --json
List: bd list --parent <epic-id> --json
Deps: bd dep add <child> <parent>
Sync: bd sync
Do NOT use "bd edit" (interactive). Use "bd update" with flags.
Source
git clone https://github.com/GantisStorm/essentials-claude-code/blob/main/essentials/skills/beads-schema/SKILL.mdView on GitHub Overview
Beads is a git-backed issue tracker using the bd CLI. The beads-schema offers a reference for issue types, statuses, priorities, dependencies, and common commands. It guides you through creating, linking, and validating beads as they are generated from architectural plans.
How This Skill Works
Beads stores issues as JSONL in .beads/ and uses bd to create, link, and manage them. The beads-schema guides the mapping from plan sections to bead fields, with hierarchical IDs (bd-a3f8) and parent-child relationships. Use /beads-schema before operations and /beads-schema validate to confirm bd is initialized.
When to Use It
- Before working with bd commands, to confirm the schema and avoid misconfigurations.
- When converting architectural plans to beads via the beads-converter pipeline.
- When creating or editing epics and tasks, ensuring correct type, priority, and parentage.
- When wiring dependencies between beads using bd dep add.
- When validating that bd is initialized and functioning with beads-schema validate.
Quick Start
- Step 1: Run /beads-schema to verify bd is initialized.
- Step 2: Create an epic, e.g., bd create 'User Authentication' --type epic
- Step 3: Create a task under that epic, e.g., bd create 'Add login screen' --type task --parent bd-a3f8
Best Practices
- Always specify --type and --parent when creating hierarchical beads.
- Use either --priority 0-4 or --priority P0-P4 for clarity.
- Keep bead descriptions 100% self-contained by copying plan content into -d.
- Use bd dep add to correctly declare dependencies (child, parent) to maintain flow.
- Run /beads-schema validate before major changes to catch misconfig.
Example Use Cases
- bd create 'User Authentication' --type epic
- bd create 'Add login button' --type task --parent bd-a3f8
- bd dep add bd-a3f8.1 bd-a3f8
- bd create 'Fix login bug' -t bug -p 1 -d 'Bug details and repro steps'
- bd create 'Feature toggle' --type feature --parent bd-a3f8