jb-beansloop
npx skills add https://github.com/bjesuiter/skills --skill jb-beansloop
Agent 安装分布
Skill 文档
JB Beans Loop
Use this skill to run a beans-driven Ralph-style loop when working in a beans-enabled repo and running an anthropic model.
Scope and Activation
Use this skill only when BOTH are true:
- The repo is beans-enabled (
.beans.ymlexists) beanscli exists
Ignore this skill when:
.beans.ymlis missing.beanscli is missing.
If a user request conflicts with beans usage (for example: asks to skip bean creation), ask for confirmation before proceeding.
Next Issue Mode (Automatic)
When you need a new issue to work on select the next most important bean via the beans skill and based on your own judgement.
This mode should run unattended for as long as possible (overnight-friendly). If a bean is blocked, select another unblocked bean instead of stopping. Only stop when all remaining beans are either completed or blocked.
Query for actionable beans (exclude completed, scrapped, and draft).
beans query '{ beans(filter: { excludeStatus: ["completed", "scrapped", "draft"], isBlocked: false }) { id title status type priority } }'
Evaluate the “most important” bean based on the following criteria:
- Dependency between beans (you cannot work on a bean that depends on another bean that is not completed)
- Priority (critical, high, normal, low, deferred)
- Urgency (time-sensitive or bug)
- Recency (most recently updated)
- Tiebreaker: highest priority, then most recent updatedAt
After you found an issue to work on, mark it as in-progress and start working on it until the acceptance criteria are met.
If you can’t finish the current bean because you encounter an unresolveable issue, mark the current bean as blocked and link the follow-up bug/ticket.
Next Issue Mode (Manual)
If the user says:
next issuenext beannext beansnext tickettrigger the “Next Issue Mode (Automatic)” but DON’T run a loop in this case!
Rules:
- ONLY work on that one issue to completion
- Ask the user to review changes and finish.
- Do not commit automatically.
- If the user approves,
use the
committerskill to commit and push.
Default Ralp-Loop Prompt
- Start by using Next Issue Mode to select the next bean.
- Work on ONLY one bean at a time.
- Track all work in beans. Never use todo lists.
- Keep the loop unattended as long as possible; avoid unnecessary prompts.
- If you discover new work, create a new bean instead of expanding scope.
- If you can’t finish the current bean
because you encounter an unresolveable issue,
mark it as
blockedand link the follow-up bug. Then run “Next Issue Mode (Automatic)” again. - Update bean checklists as you complete each item.
- When the bean is complete, run “Pre-Completion Verification” then mark it done in beans.
Pre-Completion Verification
Before marking any bean as completed, ensure the app still works:
- Build: Run the build command if the project has one (
npm run build,bun run build, etc.) - Lint/Typecheck: Run linting and type checking (
npm run lint,tsc --noEmit, etc.) - Tests: Run the test suite if available (
npm run test,bun run test, etc.) - Manual Verification: Visually or functionally verify your changes work as expected
- GitHub Actions (after commit/push): Check the pipeline for errors
If any step fails:
- Find and fix the issue before marking the bean complete
- Do NOT mark the bean complete with broken code
- If you cannot resolve the issue, mark the bean as blocked and create a follow-up bug
Note on statuses: beans only supports status values listed in the repo config (draft, todo, in-progress, completed, scrapped). Use tags or a short note in the bean body for labels like blocked, broken, or ai verified unless your repo defines those as valid statuses.
Browser Integration Test Loop
Use the jb-browser-testing skill for all browser verification.
- Start by using “Next Issue Mode (Automatic)” to select the next “done” bean for testing.
- Test every bean marked as done, acting like a user would.
- Confirm the correct browser tab before testing (match port number and page heading).
- If the test succeeds:
- Record the result in the bean body.
- Mark the bean as
ai verified at <timestamp>.
- If the test fails:
- Create a new bug bean describing the failure.
- Mark the original bean as
brokenand link the follow-up bug.
- Stop when every “done” bean is either
ai verifiedorbroken.
Recommended result format in the bean body:
## AI Verification
- Result: passed | failed
- Timestamp: <timestamp>
- Notes: <short summary>
Beans CLI Quick Reference
# Get active beans
beans query '{ beans(filter: { excludeStatus: ["completed", "scrapped", "draft"] }) { id title status type priority } }'
# Read a bean
beans query '{ bean(id: "<id>") { title status type body } }'
# Create a bean
beans create "Title" -t task -d "Description" -s todo
# Update status
beans update <id> --status completed