sandcastle
Hand a backlog of tickets to Sandcastle's sandboxed agents and let them work AFK — one ticket per iteration, implement then review, each folded onto one feature branch — then open a PR. The loop runs until the backlog is dry (an iteration lands no commits) or the iteration cap is hit.
Sandcastle (@ai-hero/sandcastle) orchestrates coding-agent CLIs inside isolated sandboxes, driven from a .sandcastle/ directory in the repo. This skill wires that directory to your backlog, runs the loop, and ships the result as a PR. Prereqs: Docker running, plus tokens for the agent (CLAUDE_CODE_OAUTH_TOKEN) and GitHub (GH_TOKEN).
1. Resolve the backlog
Find where the tickets live — GitHub, Linear, or a JSON list — and turn it into one fetch that returns exactly the set to work. Read references/ticket-sources.md for your source's fetch recipe, the filter that scopes the AFK pool (so specs and human-in-the-loop tickets stay out), the commit trailer that ties each commit to its ticket, and how a ticket gets marked done.
Done when: one command (or file) prints the exact ticket set, it returns at least one ticket, and you have that source's commit-trailer and mark-done convention.
2. Wire the harness
The loop runs from .sandcastle/.
- Exists already (a repo already set up for Sandcastle): adapt it — point the implement prompt at the step-1 backlog, set the verify commands to this repo's, confirm
.envcarries the tokens. - Missing: scaffold it with
npx sandcastle init(check--help; pick the sequential-reviewer template — implement-then-review), then adapt as above.
Into the implement prompt put: the backlog fetch from step 1, this repo's build/verify commands (the ones that gate a commit), and the commit + mark-done convention. Keep the review phase.