skills/jb-beans/SKILL.md
Use when the repo has .beans or the user mentions beans, beans-prime, flat-file issues, task tracking, or issue status changes.
npx skillsauth add bjesuiter/skills jb-beansInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use beans to track work as markdown files alongside a project.
Before starting work in a beans-enabled project, run:
beans prime
Read and follow its output. It may define project-specific workflow rules, issue types, statuses, and expectations for how agents should create/update beans.
.beans/--json, structured relationships, and context priming# Via Bun
bun i -g beans
# Via Homebrew
brew install hmans/beans/beans
# Via Go
go install github.com/hmans/beans@latest
# Initialize beans in the current project
beans init
# Validate config and bean graph
beans check
# Show build/version info
beans version
# If the current build prints only a commit SHA, verify package semver
bun pm ls -g beans
All commands support these global flags:
--config <path> # Use a specific .beans.yml
--beans-path <path> # Override the data directory
Many subcommands also support --json. For agent workflows, prefer --json whenever the specific command offers it.
# 1. Inspect project-specific guidance
beans prime
# 2. Find existing work
beans list --json --ready
beans list --json -S "login"
# 3. Create work if needed
beans create --json "Add login screen" -t feature -s todo -d "Build the initial login UI"
# 4. Start work
beans update --json <id> -s in-progress
# 5. Keep the bean current while working
beans update --json <id> --body-append "## Notes\n\nStarted implementation"
# 6. Finish work
beans update --json <id> -s completed --body-append "## Summary of Changes\n\nImplemented the feature and validated behavior."
Current CLI-supported types:
milestoneepicbugfeaturetaskCurrent CLI-supported statuses:
in-progresstododraftcompletedscrappedCurrent CLI-supported priorities:
criticalhighnormallowdeferredbeans prime
Outputs instructions for AI coding agents, often including:
Always check this first in beans-enabled repos.
# Minimal
beans create "Implement user login" -t feature
# Agent-friendly
beans create --json "Fix auth race" -t bug -s in-progress -p high -d "Repro under parallel refresh"
# With tags
beans create --json "Refactor API client" -t task --tag tech-debt --tag networking
# With relationships
beans create --json "Add billing UI" -t feature --parent <epic-id>
beans create --json "Ship migration" -t task --blocked-by <other-id>
beans create --json "Unblock deploy" -t task --blocking <other-id>
# Read body from stdin or file
printf 'Implementation notes' | beans create "Document rollout" -t task -d -
beans create "Import fixtures" -t task --body-file notes.md
Useful flags:
-t, --type-s, --status-p, --priority-d, --body--body-file--tag--parent--blocking--blocked-by--prefix--json# List everything
beans list
beans list --json
# Ready to start
beans list --json --ready
# Filter by status/type/tag/priority
beans list --json -s todo -t bug
beans list --json --tag urgent
beans list --json -p high
# Search
beans list --json -S "login"
beans list --json -S 'title:login'
beans list --json -S 'body:authentication'
beans list --json -S '"user login"'
beans list --json -S 'login~'
# Relationship filters
beans list --json --parent <id>
beans list --json --has-parent
beans list --json --no-parent
beans list --json --has-blocking
beans list --json --no-blocking
beans list --json --is-blocked
# Other output modes
beans list --json --full
beans list --quiet
beans list --sort updated
Notes:
--ready excludes blocked, in-progress, completed, scrapped, and draft beans.--quiet outputs only IDs, one per line.beans show <id>
beans show <id> <id2>
beans show --json <id>
beans show --body-only <id>
beans show --raw <id>
beans show --etag-only <id>
Use --etag-only when doing optimistic locking with updates.
# Status/title/type/priority
beans update --json <id> -s in-progress
beans update --json <id> --title "New title"
beans update --json <id> -t feature -p high
# Tags
beans update --json <id> --tag urgent --tag auth
beans update --json <id> --remove-tag urgent
# Relationships
beans update --json <id> --parent <epic-id>
beans update --json <id> --remove-parent
beans update --json <id> --blocked-by <other-id>
beans update --json <id> --remove-blocked-by <other-id>
beans update --json <id> --blocking <other-id>
beans update --json <id> --remove-blocking <other-id>
# Replace body entirely
beans update --json <id> -d "Updated body"
beans update --json <id> --body-file notes.md
# Append to body
beans update --json <id> --body-append "## Notes\n\nExtra context"
printf '## Summary\n\nDone.' | beans update --json <id> --body-append -
# Exact single replacement in body
beans update --json <id> \
--body-replace-old "- [ ] Add tests" \
--body-replace-new "- [x] Add tests"
# Combine metadata + body edits
beans update --json <id> \
-s completed \
--body-append "## Summary of Changes\n\nImplemented and verified."
ETAG=$(beans show <id> --etag-only)
beans update --json <id> --if-match "$ETAG" -s in-progress
Use --if-match to avoid overwriting concurrent edits.
beans delete <id>
beans delete <id> <id2>
beans delete --json <id> # implies --force
beans delete -f <id>
If other beans reference the target, beans warns and removes those references after confirmation. -f skips prompts and warnings.
beans archive
beans archive --json
Moves all completed and scrapped beans into .beans/archive/.
Archive only when appropriate for the project workflow or when the user asks. Archived beans are preserved for project memory and remain visible in queries.
beans check
beans check --json
beans check --fix
Checks for:
--fix can repair broken links and self-links automatically.
beans roadmap
beans roadmap --json
beans roadmap --include-done
beans roadmap --status todo
beans roadmap --no-status completed
beans roadmap --link-prefix https://example.com/beans/
beans roadmap --no-links
Use this for milestone/epic rollups and markdown planning views.
# The command is beans graphql; beans query is an alias
beans graphql '{ beans { id title status } }'
beans graphql --json '{ bean(id: "abc") { title body } }'
beans graphql -v '{"id":"abc"}' 'query GetBean($id: ID!) { bean(id: $id) { title } }'
beans graphql --schema
Examples:
# Actionable work
beans graphql --json '{ beans(filter: { excludeStatus: ["completed", "scrapped"], isBlocked: false }) { id title status type } }'
# High priority bugs
beans graphql --json '{ beans(filter: { type: ["bug"], priority: ["critical", "high"] }) { id title } }'
# Traverse relationships
beans graphql --json '{ bean(id: "abc") { title parent { title } children { id title status } blockedBy { id title } } }'
The current CLI does not expose a built-in beans tui command.
Use the separate beans-tui tool if you want a terminal UI.
Beans support structured relationships:
Examples:
beans update --json child-1 --parent epic-1
beans update --json task-2 --blocked-by task-1
beans update --json infra-1 --blocking release-1
beans list --json --ready
beans show --json <id>
beans create --json "Title" -t task
beans update --json <id> -s in-progress
Use body content for:
When updating checklists or notes, use exact replacement instead of rewriting the whole body when possible:
beans update <id> \
--body-replace-old "- [ ] Ship release" \
--body-replace-new "- [x] Ship release"
Use --parent, --blocking, and --blocked-by instead of only mentioning dependencies in freeform notes.
The beans prime output can be injected into agent context via an OpenCode plugin.
At minimum, add a rule to project instructions like:
Before starting work in this repo, run `beans prime` and follow its output.
beans prime first in beans-enabled projects--json for agent-readable outputbeans version, not beans --version; if it prints a commit SHA instead of semver, verify the installed package version with bun pm ls -g beansbeans graphql for advanced filtering and relationship traversalbeans-tui tooling if you need a terminal UIbeans check after large edits or relationship changestesting
Use when the user mentions Clawpatch/clawpatch.ai, semantic feature review, repo-wide AI audit, persistent findings, or clawpatch init/map/review/report/fix/revalidate.
development
Use when the user asks for autoreview, Codex/Claude second-model review, or final review of dirty changes, a branch, commit, or PR before ship.
testing
Use when the user asks to cut, prepare, publish, tag, or verify a release, especially npm/package releases.
tools
Use when adding, writing, fixing, or exposing a script for the Tuna macOS launcher.