Get the FREE Ultimate OpenClaw Setup Guide →

beads-schema

Scanned
npx machina-cli add skill GantisStorm/essentials-claude-code/beads-schema --openclaw
Files (1)
SKILL.md
9.0 KB

Beads 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 SectionBead FieldCLI Flag
## SummaryEpic title + descriptionbd create "Title" -t epic -d "..."
## FilesOne bead per file (typically)bd create "Title" --parent <epic>
### RequirementsBead description (exit checklist)-d "## Requirements\n..."
### Reference ImplementationBead description (full code)-d "## Reference Implementation\n..."
### Migration PatternBead description (before/after)-d "## Migration Pattern\n..."
## Dependency GraphBead dependenciesbd dep add <child> <parent>
## Exit CriteriaBead 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)

TypeDescription
taskGeneral work item (default)
bugBug report or defect
featureNew feature or enhancement (enhancement is alias)
choreMaintenance or housekeeping
epicLarge body of work spanning multiple issues

Statuses

StatusDescription
openReady to work (default)
in_progressCurrently being worked on
blockedWaiting on dependency
deferredDeliberately put on ice
closedFinished

Priority (0-4, lower = higher)

PriorityMeaning
P0Critical
P1High
P2Medium (default)
P3Low
P4Backlog

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:

FlagShortDescription
--type-tIssue type (default: task)
--priority-pPriority 0-4 or P0-P4 (default: 2)
--parentParent issue ID (creates child)
--description-dIssue description
--acceptanceAcceptance criteria
--designDesign notes
--notesAdditional notes
--labels-lComma-separated labels
--depsDependencies (format: id or type:id)
--assignee-aAssignee
--idExplicit issue ID
--dueDue date (+6h, tomorrow, 2025-01-15)
--deferHide from bd ready until date
--silentOutput only the issue ID
--jsonJSON 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:

TypeEffect
blocksChild blocked until parent closes (default)
parent-childAuto-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:

  1. Filter to status: open
  2. Filter to tasks with all blocking dependencies resolved (closed/cancelled)
  3. Filter out deferred tasks (past defer_until)
  4. Sort by priority (P0 first)
  5. Return matches

Issue Fields Reference

Core fields (used by essentials commands)

FieldJSON keyTypeRequired
IDidstringauto-generated
Titletitlestringyes (max 500 chars)
Descriptiondescriptionstringno
Statusstatusstringyes (default: open)
Prioritypriorityint 0-4yes (default: 2)
Typeissue_typestringyes (default: task)
Acceptance Criteriaacceptance_criteriastringno
Designdesignstringno
Notesnotesstringno
Assigneeassigneestringno
Labelslabelsstring[]no
Dependenciesdependenciesobject[]no

Timestamp fields (auto-managed)

FieldJSON key
Createdcreated_at
Updatedupdated_at
Closedclosed_at
Created bycreated_by
Close reasonclose_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

  1. Step 1: Run /beads-schema to verify bd is initialized.
  2. Step 2: Create an epic, e.g., bd create 'User Authentication' --type epic
  3. 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

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers