agentleFS
atgreenatgreen/hackinator/skills/using-beads/SKILL.md

using-beads

Skill1 starsChanged 3 months agoMITView on GitHub

Use for durable task tracking when the current work is inside a Git repository — tasks, deferred TODOs, bugs, dependencies, "beads", "bd", "backlog", "file an issue", or "what's ready". Not for temporary or non-Git scratch work, even when writing code

The file

We split this skill into the rules it gives an agent

4 rules. About 0 are common, 2 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈2

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    The rule here is: always, and frequently: If you catch yourself holding a work item only in your head or buried in a // TODO comment, that …

    line 15
  2. Very specific:

    If the repo has no beads yet: bd init (fresh repo) or bd bootstrap (fresh clone of a repo that already uses beads).

    line 31
  3. Distinctive:

    Don't defer capture. The builder's "write it down, don't do it" and the whittler's "that's out of scope" are bead-creating moments:

    line 36
  4. Distinctive:

    When sync is authorized, do it before handoff so shared memory is actually shared.

    line 109

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Using Beads

Overview

Core principle: In any git-hosted work, track it in beads — continuously, not as an afterthought. bd is a git-native, dependency-aware issue tracker. Every task, deferred TODO, discovered bug, and follow-up becomes a bead, so nothing is lost between sessions, ready-vs-blocked work is always visible, and parallel agents (you, Codex, a future session) share one work-list.

The rule here is: always, and frequently. If you catch yourself holding a work item only in your head or buried in a // TODO comment, that is the signal — make it a bead now.

Beads vs. the harness todo list: the in-session todo list is ephemeral scratch for this turn; beads is the durable, git-shared, cross-session record. Use beads for anything that outlives the current train of thought or that another agent might pick up.

The Habit

At the start of any git-hosted activity

bd ready            # what's unblocked and claimable right now?
bd status           # database overview, if you want the lay of the land

If the repo has no beads yet: bd init (fresh repo) or bd bootstrap (fresh clone of a repo that already uses beads). Run bd prime any time you want the full, up-to-date agent workflow.

Capture the moment work appears

Don't defer capture. The builder's "write it down, don't do it" and the whittler's "that's out of scope" are bead-creating moments:

bd create "Handle the empty-input edge case" -t task -p 2
bd q "Flaky test in writer_test — investigate"     # quick capture, prints only the ID
bd create "Refactor parser" --deps discovered-from:hackinator-12   # link where it came from

Model what blocks what

The whole payoff of beads is that ready work surfaces itself once dependencies are recorded:

bd dep add hackinator-5 hackinator-3    # 5 is blocked by 3 (3 must finish first)
bd dep tree hackinator-5                # visualize

Move work through its states

bd update hackinator-5 --status in_progress   # claim it
bd comment hackinator-5 "Root cause was X"    # progress notes live on the bead
bd close hackinator-5                          # done

Share it when remote sync is authorized

Local issue tracking and remote synchronization are separate actions. Update local Beads state as the work changes. Run a remote sync only when the active profile, repository policy, or user grants that authority:

bd sync             # pull, reconcile, push the federation loop
# or, minimally:
bd dolt push        # push beads to the remote so other sessions/agents see them

With Parallel Agents

Beads is how a fan-out shares work without racing (see dispatching-subagents). Each agent can atomically claim the next ready item instead of you hand-partitioning:

bd ready --claim --json    # atomically claim the first ready issue; returns it as JSON

File the work as beads with dependencies, then let agents pull ready issues. Blocked work stays hidden until its blocker closes.

Quick Reference

DoCommand
See claimable workbd ready
Create an issuebd create "Title" -t task -p 2
Quick capture (ID only)bd q "Title"
Record a blockerbd dep add <blocked> <blocker>
Claim / progress / finishbd update <id> --status in_progress · bd comment <id> "…" · bd close <id>
Push to remote, when authorizedbd sync (or bd dolt push)
Full agent workflowbd prime

When It's Overkill

Genuinely one-shot work in no repo, or throwaway scratch — skip it. Everywhere else in a git repo, the default is on. When unsure, file the bead; a cheap bead beats a lost thought.

Common Mistakes

  • Keeping work in your head or in code comments. That's the exact failure beads exists to prevent. File it.
  • Batch-filing at the end. Capture as work appears — end-of-session recall drops the small stuff, which is most of it.
  • Recording no dependencies. Beads without deps is just a list; the ready/blocked view is the point. Link blockers.
  • Syncing without authority. Local tracking does not imply permission for a remote side effect. When sync is authorized, do it before handoff so shared memory is actually shared; otherwise report the unsynced local state.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.