How to install beads
npx skills add https://github.com/boshu2/agentops --skill beadsFull instructions (SKILL.md)
Source of truth, from boshu2/agentops.
name: beads description: Track issues with bd/br, triage with bv, and convert plans to beads. practices:
- agile-manifesto
- pragmatic-programmer hexagonal_role: driven-adapter consumes:
- bd-issue produces:
- bd-issue context_rel:
- kind: supplier-to with: crank
- kind: supplier-to
with: ratchet
skill_api_version: 1
context:
window: fork
intent:
mode: task
sections:
exclude:
- HISTORY intel_scope: topic metadata: tier: library dependencies: [] internal: true output_contract: beads (via bd/br/bv CLI)
Beads - Persistent Task Memory for AI Agents
Graph-based issue tracker that survives conversation compaction.
Overview
bd and br (beads_rust) replace markdown task lists with a dependency-aware graph stored in git. bv adds graph-aware triage using PageRank and betweenness centrality.
Key Distinction:
- bd/br: Multi-session work, dependencies, survives compaction, git-backed
- bv: Graph analysis, priority triage, bottleneck detection, parallel execution planning
- Task tools (TaskCreate/TaskUpdate/TaskList): Single-session tasks, status tracking, conversation-scoped
Decision Rule: If resuming in 2 weeks would be hard without bd, use bd.
br vs bd: br is the Rust rewrite. Commands are the same except: br never auto-commits (git is your job), and bd sync becomes br sync --flush-only. Use whichever is installed.
bv safety: NEVER run bare bv — it launches interactive TUI and blocks the terminal. Always use --robot-* flags.
Don't re-learn the command surface here. bd --help / br --help (and per-subcommand --help) self-describe every command and flag — run them before specifying enforcement commands; compose primitives, don't invent (composition-over-invention.md). Full catalogs ship in CLI_REFERENCE.md (bd), BR_REFERENCE.md (br), and BV_TRIAGE.md (bv robot flags). This skill carries the operating doctrine.
Operating Rules
- Treat live
bdreads as authoritative. Usebd show,bd ready,bd list, andbd exportto inspect current tracker state. Do not treat.beads/issues.jsonlas the primary decision source when livebddata is available. - Before selecting new ready work after CI, release, or rollout activity, prefer
ao reconcile --jsonwhen available. Treatbd readyas planning input only after high-severity main/release/bead evidence findings are resolved or explicitly superseded. - Treat
.beads/issues.jsonlas a git-friendly export artifact. If the repo tracks.beads/issues.jsonland you mutate tracker state, refresh it explicitly withbd export -o .beads/issues.jsonl. - After closing or materially updating a child issue, reconcile the open parent in the same session. Update stale "remaining gap" notes immediately, and close the parent when the child resolved the parent's last real gap.
- Before closing a child issue, include scoped closure proof in the
bd close --reasontext. Name the touched files or explicit no-file evidence artifact, validation command(s), and parent reconciliation outcome. Do not use generic closure reasons such as "done" or "implemented" for child beads. - If
bd readyreturns a broad umbrella issue, do not implement directly against vague parent wording. First narrow the remaining gap into an execution-ready child issue, then land the child and reconcile the parent. - Normalize stale queue items instead of silently skipping them. Rewrite broad or partially absorbed beads to the actual remaining gap.
- Use this post-mutation sequence when tracker state changed:
bd ... # mutate tracker state
bd export -o .beads/issues.jsonl # if tracked in git
bd vc status
bd dolt commit -m "..." # if tracker changes are pending
bd dolt push # only if a Dolt remote is configured
Session ending pattern (br — sync is EXPLICIT, never automatic):
git pull --rebase
br sync --flush-only # DB → JSONL (reverse: --import-only after pull)
git add .beads/ && git commit -m "Update issues"
git push
Prerequisites
- bd CLI: Version 0.34.0+ installed and in PATH
- Git Repository: Current directory must be a git repo
- Initialization:
bd initrun once (humans do this, not agents)
Examples
User says: /validate
This skill loads via dependency: the agent reads issue metadata with bd show <id>, links validation findings to the issue under check, and cites the issue ID in the validation report — no manual bd lookups.
User says: /implement ag-xyz-123
This skill loads to manage the issue lifecycle: bd show ag-xyz-123 for the body, check dependencies, and bd close ag-xyz-123 (with scoped closure proof) after completion.
bv Graph Triage
NEVER run bare bv. Always use --robot-* flags (--robot-triage, --robot-next, --robot-plan, --robot-insights, --robot-priority, --robot-alerts — selection guide in BV_TRIAGE.md).
Key metrics: PageRank = everything depends on this (fix first). Betweenness = bottleneck (blocks multiple paths). High both = critical bottleneck, drop everything.
Plan-to-Beads Workflow
Convert a markdown plan into fully dependency-wired beads:
- Read the full plan, AGENTS.md, README, linked intent issue, and acceptance criteria.
- Create beads with
br createfor each issue, including full context in the description. - For every feature, bug, or product-facing behavior, include a fenced
gherkinblock or link to a filled intent issue. Mechanical chores may omit Gherkin only when their acceptance criteria are fully command/file based. - Include the
hexagon:boundary block fromdocs/architecture/intent-to-loop-hexagon.mdfor substantial beads: inbound port, bounded context, adapters, context packet, and done state. - Wire dependencies with
br dep add/bd dep add. Do not hand-edit JSONL or database files. - Polish iteratively (usually 6-9 passes) until steady-state. Check for lost features, oversimplification, missing tests, unclear boundaries, missing e2e coverage, and weak logging.
- Validate:
br dep cyclesmust be empty; runbv --robot-insightsfor graph health; usebv --robot-nextfor the first bead. Never run barebv. - Sync explicitly before commit:
br sync --flush-only, thengit add .beads/and commit tracker changes when appropriate.
Beads should be so detailed that a fresh agent can implement without consulting the original plan. Ready-to-implement beads have clear scope, explicit dependencies, BDD or mechanical acceptance, unit/e2e test expectations, detailed logging expectations, a named done state, and no dependency cycles.
Troubleshooting
Symptom → fix table (command not found, not-a-git-repo, init missing, ID prefix errors, bv hangs, dependency cycles, sync direction confusion): TROUBLESHOOTING.md. The two most common: a hung bv means a robot flag was omitted; br sync confusion means the direction (--flush-only vs --import-only) wasn't specified.
Reference Documents
-
references/beads.feature — Executable spec: bd-mandatory tracker, create-before-code, ready-detection, discovered-from links, live-reads-authoritative (soc-qk4b)
-
references/composition-over-invention.md — Run
bd <subcmd> --helpbefore specifying enforcement commands; compose primitives, don't invent
Related skills
More from boshu2/agentops and the wider catalog.
council
Run multi-judge consensus. Use when: an irreversible or high-stakes decision needs independent judges before committing — architecture forks, one-way doors, scoring options.
swarm
Dispatch parallel agents. Triggers: "swarm", "dispatch parallel agents.", "swarm skill".
doc
Generate and validate repo docs, READMEs, and OSS doc packs. Triggers: "doc", "generate and validate repo docs", "doc skill".
evolve
Run autonomous improvement loops.
pre-mortem
Stress-test plans before work. Use when: a plan is drafted but not yet executed and you want to surface failure modes, risks, and what would prove it wrong before committing.
research
Explore and write findings. Triggers: "research", "explore and write findings.", "research skill".