beads
bd (beads) issue-tracking workflow; use when `.beads/` exists or when running `bd` commands.
$ Installieren
git clone https://github.com/tkersey/dotfiles /tmp/dotfiles && cp -r /tmp/dotfiles/codex/skills/beads ~/.claude/skills/dotfiles// tip: Run this command in your terminal to install the skill
name: beads
description: bd (beads) issue-tracking workflow; use when .beads/ exists or when running bd commands.
Beads
When to use
- A
.beads/directory exists.- If unsure:
rg --files -g '.beads/**' --hidden --no-ignore.
- If unsure:
- The user asks for
bdcommands (bd ready,bd create,bd close,bd sync, âŠ). - The user wants beads to act as a work ledger (plan/progress/decisions recorded during implementation).
Principle: bead as work ledger
- The active bead is the canonical place for plan, progress, decisions, and verification.
- Prefer recording facts into the bead over long chat narration; the bead must survive session resets.
Molecules (workflow steps as beads)
A molecule is how beads turns âdo this workâ into a durable, stepwise workflow.
- Formula: workflow source file (discover via
bd formula list). - Proto: cooked template epic (solid phase).
- Mol: persistent instantiation of a proto (liquid phase) created by
bd mol pour. - Wisp: ephemeral instantiation (vapor phase) created by
bd mol wisp.
In a mol, each step is a real bead, so âlog per stepâ becomes natural.
Per-step ledger contract (mol step beads)
For each step bead you complete:
- Ensure
noteshas current Now/Next/Blockers/Verify. - Add exactly one Markdown ChangeLog comment (template below).
- Close the step with an outcome-focused reason.
Recommended close reason:
bd close <step-id> --reason "Implemented: <one-line behavioral outcome>"
Workflow loop (implementation-aware)
- Prime context:
bd prime. - Pick the work:
bd ready(general)bd ready --mol <mol-id>(within a molecule)bd mol current <mol-id>(where am I in this molecule?) Thenbd show <id>.
- Start/claim:
bd update <id> --claim(orbd update <id> --status in_progress). - Seed a mini-plan (rolling):
- `bd update --notes "$(cat <<'EOF'
Status
- Now: âŠ
- Next: âŠ
- Blockers: âŠ
Verification
- # expected: EOF )"`
- Implement in small slices; after each slice, add a durable log entry:
bd comments add <id> "âŠ"- Update
--designwhen you make a real decision. - Update
--acceptancewhen you learn/clarify verification.
- Close with an outcome-focused reason:
bd close <id> --reason "âŠ". - Sync when appropriate:
bd sync.
What to record during implementation
notes (rolling status board)
- Keep short and current; overwrite freely.
- Best for: Now/Next/Done, blockers, the current verification command(s).
Comments (append-only timeline)
- Use comments for incremental planning and âwhat changedâ snapshots.
- Recommended comment types:
- Checkpoint: what you just did + next.
- Decision: decision + rationale + alternatives.
- Patch summary: paths changed + the behavioral delta.
- Verification: command(s) run + success/failure signal.
- Handoff: current state + what to do next.
Example:
bd comments add bd-123 "$(cat <<'EOF'
Checkpoint: tighten parser guardrails
- Changed: src/foo.rs (parse), src/foo_test.rs (cases)
- Decision: reject empty input early
- Verify: cargo test -p foo # pass
EOF
)"
design (durable decisions)
- Keep longer-lived architecture notes here so they donât get lost in the scrollback.
- Update when a decision is made:
- `bd update --design "$(cat <<'EOF'
Decisions
- âŠ
Alternatives
- âŠ
Invariants / gotchas
- ⊠EOF )"`
Discoveries (scope control)
- File newly discovered work as new beads, donât silently expand scope.
bd create "..." --type=task --priority=2
- Link it back so itâs traceable:
bd dep add <new-issue> <current-issue> -t discovered-from
Alternate uses (beyond tickets)
Encode âwhat changedâ without pasting diffs
- After any meaningful slice (or before handoff/close), add a ChangeLog comment.
- Goal: a new session can answer âwhat changed?â and âwhatâs left?â in 30 seconds.
Template (Markdown-only, high-signal, no diffs):
bd comments add <id> "$(cat <<'EOF'
ChangeLog
- Intent: <what this step was trying to accomplish>
- Files: <paths, short list>
- Behavior: <what is now true / user-visible change>
- Risk: <regressions to watch>
- Verify: <exact command> # <pass/fail>
- Next: <next concrete action>
EOF
)"
Optional add-ons when they exist:
Commit: <sha>PR: <url>
Beads as agents (first-class workers)
Gas Town treats agents as beads so liveness/state is queryable and durable. You can adopt this pattern in any repo that uses beads.
Conventions (so you can find these across repos):
- Create one agent bead per durable identity.
- Always set labels that make lookup easy:
agent(broad)agent:<name>(stable lookup key)role:<role>(polecat/crew/witness/refinery/mayor/deacon)
Create:
bd create --type=agent --role-type=polecat --agent-rig <rig> \
--labels agent,agent:<name>,role:polecat \
--title "<name>"
Find later:
bd list --label agent:<name> --allbd search "agent:<name>"
As the agent works, keep its state current:
bd agent state <agent-id> working|stuck|donebd agent heartbeat <agent-id>
Track orthogonal operational dimensions (creates an event + caches label):
bd set-state <agent-id> health=healthy|failing --reason "..."bd set-state <agent-id> mode=normal|degraded --reason "..."
Monitor progress across agents/issues in real time:
bd activity --follow(add--townif you use routing)
Command quick reference
bd primeâ load AI-optimized workflow context.bd readyâ list unblocked work.bd show <id>â inspect issue details.bd create "Title" --type=task --priority=2â create a new issue.bd update <id> --claimâ atomically claim and start work.bd update <id> --notes ...â update rolling status/plan.bd comments add <id> ...â append progress log entries.bd update <id> --design ...â update durable decisions.bd update <id> --acceptance ...â keep verification criteria correct.bd dep add <id> <depends-on> -t discovered-from|blocks|tracks|related|...â link issues.bd lint [id...]â check missing template sections.bd set-state <id> <dimension>=<value> --reason "..."â event + cached label state.bd agent state <agent-id> <state>â update agent state + last_activity.bd agent heartbeat <agent-id>â update last_activity only.bd activity --followâ watch live progress.bd close <id> --reason "..."â close with outcome + signal.bd syncâ sync beads with git remote (typically end of session).
Safety notes
bd hooks install,bd init,bd config set ..., andbd syncmutate the repo (and/or git history); ask first unless explicitly requested.
