Close twenty issues at once
Hand one brief that names twenty issues, and twenty workers take one each, side by side.
A backlog is a list of parallel jobs. Treat it like one.
- twenty stub functions
- a lint cleanup per package
- one migration per service
When a backlog is a list of small independent issues, there is no reason to close them one at a time. In this playbook one /task brief names every issue, and the run splits into one part per issue, all working at once. You can steer any single part while it runs, and when the run ends, one sentence lands the branch on main.
Steps
Our repository, textkit, had 20 open issues in ISSUES.md, each a stub function in textkit.go with a failing test.
- Optional: cap what any one task may spend. Type
/crew cap task 3and press Enter; CodeAF answersper-task limit · $3. - Hand over the whole list in one brief:
/task Close all 20 open issues in ISSUES.md. Each issue is one function stub in textkit.go with a failing test in textkit_test.go. Hand them all out at once, one part per issue; each part implements its function and runs its own test. At the end run go vet and go test on the package and list each issue as done or not.- The chat prints the crew and an estimate,
task 1 crew · open-ended · worker glm-5.3-flash (openrouter) · planner claude-opus-5.5 · checker claude-opus-5.5 · est $0.431, and the column on the right fills withIssue #1: ReversethroughIssue #20: Wrap, all running at once. - To steer one part while it runs, say it in the chat:
Note for the Wrap part only: its doc comment must also say that a word longer than width gets a line of its own.- When the run ends, land it:
if go vet and go test pass on that branch, merge it into mainWhat you see
The steering note is picked up by the one part it names: the chat answered Noted the Wrap requirement on task #4.20, and the landed Wrap function's comment says a word longer than the width gets a line of its own. The run ends with one line, done · 1m42s · 22 files · branch kept, and the name of its branch. The landing sentence checks the branch and fast-forwards main.
In our run
All 20 tests went green in 1 minute and 42 seconds of wall time, for $0.77 against an estimate of $0.43. The phrase "one part per issue" is what splits the work, so keep it in the brief.
Make it yours
- Trade time for money. Leave out "one part per issue" and one worker closes the list in order. In our run that took 12 minutes instead of under 2, and cost $0.09 instead of $0.77.
- Cap every task.
/crew cap taskalso changes who does the work: under a very small cap, CodeAF picks the cheapest crew that fits before it starts. See Budgets at every level. - Give every part the same rule. Rules in the brief reach every part. Our second run asked each part for a doc comment on its function, and 20 parts ran again, done in about two minutes for $0.90.
Go further
Steer work while it runs: Add a note to a running task, stop it when it goes wrong, and run it again on a stronger crew, without starting over by hand.
Coming soon: describe the org you want and CodeAF builds it: teams, managers, budgets, standing orders.