Use bd (beads) for issue tracking. Trigger when starting work, completing tasks, discovering new work, or ending a session.
IMPORTANT: This project uses bd (beads) for ALL issue tracking. Do NOT use markdown TODOs, task lists, or other tracking methods.
Before asking "what should I work on?", check for unblocked issues:
bd ready --json
Output format:
[
{
"id": "bd-42",
"title": "Add email validation",
"type": "task",
"priority": 1,
"created": "2025-03-16T10:00:00Z"
}
]
If work is available:
Claim it atomically:
bd update bd-42 --claim --json
Start working on it
If no ready work:
Syntax:
bd create "Issue title" --description="Detailed context" -t TYPE -p PRIORITY --json
Issue Types:
bug - Something brokenfeature - New functionalitytask - Work item (tests, docs, refactoring)epic - Large feature with subtaskschore - Maintenance (dependencies, tooling)Priorities:
0 - Critical (security, data loss, broken builds)1 - High (major features, important bugs)2 - Medium (default, nice-to-have)3 - Low (polish, optimization)4 - Backlog (future ideas)Example:
bd create "Add markdown linting" --description="Install markdownlint-cli and add lint:md script" -t task -p 1 --json
When you find a bug, missing feature, or technical debt:
Create a linked issue with discovered-from dependency:
bd create "Fix null pointer in getUserProfile" \
--description="Found during bd-42: getUserProfile crashes when user has no email" \
-t bug \
-p 1 \
--deps discovered-from:bd-42 \
--json
The discovered-from link:
When you've finished implementing, testing, and committing:
bd close bd-42 --reason "Completed: added email validation with tests" --json
Before closing, verify:
If work is incomplete:
Update status instead of closing:
bd update bd-42 --status in-progress --json
When ending a work session, you MUST complete ALL steps below. Work is NOT complete until git push succeeds.
File issues for remaining work
Create issues for anything that needs follow-up:
bd create "Finish XYZ" --description="Still need to..." -t task -p 2 --json
Run quality gates (if code changed)
pnpm test
pnpm lint:check
pnpm type
pnpm build
Update issue status
Close finished work:
bd close bd-42 --reason "Completed" --json
Update in-progress items:
bd update bd-43 --status in-progress --json
PUSH TO REMOTE (MANDATORY)
git pull --rebase
bd dolt push
git push
git status # MUST show "up to date with origin"
Clean up
git stash clear # If you used stash
git remote prune origin # Clean remote-tracking branches
Verify
git status # Should show "nothing to commit, working tree clean"
git log origin/main..HEAD # Should be empty (all commits pushed)
Hand off
Provide context for next session:
--json flag for programmatic usediscovered-from dependenciesbd ready before asking "what should I work on?"git push succeedsCheck ready work:
bd ready --json
Claim work:
bd update <id> --claim --json
Create issue:
bd create "Title" --description="Details" -t TYPE -p PRIORITY --json
Create discovered work:
bd create "Title" --description="Details" -t TYPE -p PRIORITY --deps discovered-from:PARENT_ID --json
Close issue:
bd close <id> --reason "Reason" --json
Sync with remote:
bd dolt push
bd dolt pull
bd automatically syncs via Dolt:
bd dolt push/bd dolt pull for remote syncSee:
README.md in the bd repositorydocs/QUICKSTART.md in the bd repositorybd --help