| name | work |
| description | Pick one open task and implement it end-to-end as a unit of work. Use when the user asks to pick a task. |
| user-invocable | true |
Task management is done with beans:
!beans prime
Workflow
Do the following, in this specific order:
- Load project memories in order to avoid repeating previous mistakes.
- Pick one and only one open & unblocked bean task.
- Implement it, following your TDD skill to the letter.
- Do a code review.
- Address the code review feedback.
- Update the bean as done when the acceptance criteria are met.
- Commit both the code and the bean.
- Update project memories with things you've learned: steering correction from the code review or the user.
- You are done.
Important
- Only pick one task at a time. This is the "work loop" pattern: pick one task, do it, then say you are done.
- Always commit the bean along with the code. The bean is the source of truth for task management, so it must be updated to reflect the work done.
- Load best practices from memory, and remember
- Update bean files by editing the markdown directly (Edit/Write on the file under
.beans/). Do not use beans query GraphQL mutations for updates — direct edits are simpler, easier to review in the diff, and avoid quoting issues. The CLI's beans update flags are fine for status-only changes; longer body edits go through Edit on the bean file.
Commit message format
Use semantic commit messages with the following format:
<body>
Closes <bean ID>
The <body> should be short & concise (1-2 paragraphs at most), describing why the work was done, not what (that's in the code itself).
If the why can be trivally inferred from the bean contents, omit it entirely.
Only add relevant context you encountered while doing the work, such as design decisions, tradeoffs, or implementation details that aren't obvious from the code itself.
The Closes <bean ID> line is important for traceability and automation.
Memory
- Always load project memories before starting work.
- If new learnings have surfaced during work & review, add them to the project memory.
When writing memories, extract the core lesson learned, don't focus on specific implementation details that can go stale.
Use positive reinforcement phrasing: "when doing X, prefer using Y", rather than "don't do Z".