Use Beads (bd) for issue tracking.
Purpose: Git-native task & memory system for long-running coding agents.
Storage: .beads/ (JSONL, versioned by git).
Model: DAG of work items with dependencies.
Rule:
- Create tasks from user instructions
- Agent always queries
bd readybefore starting work.
bd init # initialize beads in repo (creates `.beads/` folder)
bd init --stealth # local-only (no commit)
bd list # List all tasks
bd ready # List unblocked tasks (agent entry point)
bd show <id> # Show full task
bd dep add <child> <parent> # Add dependency (child blocked by parent)
bd dep add bd-101 bd-100 # Task 101 is blocked by task 100
bd sync # Sync `.beads/` with branch & remotebd help # Full CLI reference; list commands
bd help create # Get help for `create` commandbd create --title "Title" --description "Description" --priority 0Title is of the form:
<scope>: <concrete action>Description is of the form:
Goal:
Definition of Done:
Notes:When we need to change business logic, we also need a unit test. Create a required sub-task for the unit test implementation. The unit test needs to test the intention (use case) of the user and execute successully.
bd-a3f8 # Epic
bd-a3f8.1 # Task
bd-a3f8.1.1 # Sub-task
bd ready- Select highest-priority ready task
bd show <id>- Execute work
- Update / create follow-up tasks
- Use
bd syncto syncronize beads database with JSONL file in the.beads/folder - Commit code +
.beads/ - Repeat
| Priority | Meaning |
|---|---|
| 0 | Critical path / blocking |
| 1 | High |
| 2 | Normal |
| 3 | Low |
| 4 | Backlog |
- Working without a bead
- Working on blocked beads
- Creating tasks without dependencies
- Letting .beads/ drift from git