Loading...
Loading...
Use Beads (bd tool) for dependency-aware task tracking and long-horizon planning in coding projects. This skill should be used when working on complex multi-step projects that span multiple agent sessions, when discovering new work during implementation, or when explicit task dependency management would improve workflow organization and prevent context loss between sessions.
npx skill4agent add tdimino/claude-code-minoan beads-task-trackerbdbd versioncurl -fsSL https://raw.githubusercontent.com/steveyegge/beads/main/scripts/install.sh | bashbd~/.zshrcexport PATH="$PATH:$HOME/go/bin"~/.bashrc~/.bash_profileexport PATH="$PATH:$HOME/go/bin"source ~/.zshrc # or source ~/.bashrc/Users/[username]/go/bin/bdbd init.beads/issues.jsonl*.dbbd create "Task title" -d "Description" -p 1 -t task --jsontaskfeaturebugepicchore01234bd create -f plan.md --json## Issue Title### Priority### Type### Description### Dependenciesbd create "Add auth" -l "backend,security,p1" --json# Format: bd dep add <dependent> <blocker>
bd dep add bd-5 bd-3 # bd-5 depends on bd-3 completing firstblocksparent-childbd dep add bd-task bd-epic --type parent-childdiscovered-frombd dep add bd-new bd-current --type discovered-fromrelatedbd dep tree bd-42 --jsonbd dep cycles --json# All ready work
bd ready --json
# Filter by priority
bd ready --priority 1 --json
# Filter by labels
bd ready --label backend --json
# Limit results
bd ready --limit 5 --json# List all open tasks, sorted by ID number (highest/newest first)
bd list --status open --json | jq -r '.[] | .id' | sort -t'-' -k3 -n -r | head -20
# Show full details of highest-numbered tasks
bd list --status open --json | jq 'sort_by(.id | sub(".*-"; "") | tonumber) | reverse | .[0:10]'
# Find tasks in a specific number range (e.g., 120-150)
bd list --json | jq '[.[] | select(.id | test("Twilio-Aldea-1[2-5][0-9]"))] | sort_by(.id | sub(".*-"; "") | tonumber) | reverse | .[] | {id, title, status, priority}'# 1. First, check what the highest task numbers are
HIGHEST=$(bd list --json | jq -r '.[].id' | grep -oE '[0-9]+$' | sort -n | tail -1)
echo "Highest task number: $HIGHEST"
# 2. View tasks in the recent range (e.g., last 30 tasks)
RANGE_START=$((HIGHEST - 30))
bd list --json | jq --arg start "$RANGE_START" '[.[] | select(.id | test(".*-([0-9]+)$") and (.id | match(".*-([0-9]+)$").captures[0].string | tonumber) >= ($start | tonumber))] | sort_by(.id | sub(".*-"; "") | tonumber) | reverse'
# 3. Find ready work among recent tasks
bd ready --json | jq -r '.[] | .id' | sort -t'-' -k3 -n -r | head -10bd ready --jsonin_progressbd update bd-42 --status in_progress --jsonopenin_progressclosedbd update bd-42 --priority 0 --json
bd update bd-42 --assignee alice --jsonbd close bd-42 --reason "Implementation complete, tests passing" --json# 1. Create the discovered issue
NEW_ID=$(bd create "Fix discovered bug in auth" -t bug -p 1 --json | jq -r '.id')
# 2. Link back to parent work
bd dep add $NEW_ID bd-current --type discovered-from --json
# 3. Decide: handle now or defer?
# If blocking current work: switch to new issue
# If not blocking: continue current work, new issue will show in bd readybd list --status open --json
bd list --priority 1 --json
bd list --label backend,urgent --json # AND: must have ALL
bd list --label-any frontend,backend --json # OR: at least onebd show bd-42 --jsonbd blocked --jsonbd stats --json--jsonjq# Get first ready issue
ISSUE=$(bd ready --json | jq -r '.[0]')
ISSUE_ID=$(echo "$ISSUE" | jq -r '.id')
ISSUE_TITLE=$(echo "$ISSUE" | jq -r '.title')
# Check if any ready work exists
READY_COUNT=$(bd ready --json | jq 'length')
if [ "$READY_COUNT" -eq 0 ]; then
echo "No ready work. Check blocked issues:"
bd blocked --json
fi
# Get highest task number and list recent tasks
HIGHEST=$(bd list --json | jq -r 'max_by(.id | sub(".*-"; "") | tonumber) | .id | sub(".*-"; "")')
echo "Highest task: #$HIGHEST"
bd list --json | jq --arg num "$HIGHEST" '[.[] | select((.id | sub(".*-"; "") | tonumber) >= (($num | tonumber) - 20))] | sort_by(.id | sub(".*-"; "") | tonumber) | reverse | .[] | {id, title, status, priority}'bd initbd readybackendfrontendurgent.beads/issues.jsonlbd dep cycles# 1. Check for ready work
bd ready --json
# 2. If no ready work, check what's blocked
bd blocked --json
# 3. Start working on highest-priority ready issue
bd update bd-5 --status in_progress --json
# 4. During work, discover new issue
bd create "Fix validation bug" -t bug -p 0 --json
bd dep add bd-new bd-5 --type discovered-from --json
# 5. Complete original work
bd close bd-5 --reason "Feature implemented" --json# 1. Check ready work (newly created bd-new is now ready)
bd ready --json
# 2. See discovered issue from previous session
# 3. Continue work seamlessly without context loss
bd update bd-new --status in_progress --jsonreferences/quick-reference.mdreferences/workflow-patterns.mdbd quickstartAGENTS.mdCLAUDE.md## Task Tracking with Beads
We track implementation work using Beads (`bd`), a dependency-aware issue tracker. Use `bd ready --json` to see unblocked work, `bd create` to add tasks, and `bd update <id> --status in_progress` to claim work. Run `bd quickstart` for full documentation.quick-reference.mdworkflow-patterns.md