arbiterforge/codearbiter-ca-sprint
Autonomous sprint — one interactive spec gate, then plan-to-PR execution with every auto-decision SMARTS-scored and logged. Hard gates remain true stops.
npx skills add https://github.com/arbiterForge/codeArbiter --skill ca-sprint
The autonomy mode. Brainstorm a sprint spec with the user — the one interactive gate — then execute
the approved plan end-to-end without per-batch checkpoints, deciding "as the user" via SMARTS on
every non-hard-gate point. Every auto-decision lands in .codearbiter/sprint-log.md (append-only)
with a confidence flag; the low-confidence entries are exactly what the user reviews afterward.
Nothing is hidden behind autonomy.
Load and follow <plugin-root>/SPRINT.md — it is the procedure. In brief:
brainstorming scoped to a sprint, then writing-plans. Explicit userapproval of spec AND plan before autonomy begins.
subagent-driven-development runs the plan; test-first viatdd, two-pass reviewed, fresh-run verified. SMARTS decides non-hard-gate points; everything logs.
commit-gate, then finishing-a-development-branch, whichauto-selects open-PR. /ca-sprint never merges and never discards; the merge decision is the user's.
Hard gates — security-controls, crypto/secrets/auth, irreversible ops, /override, an
unresolvable [CONFIRM-NN], merge-to-default — are NEVER auto-decided. They halt and surface.
"goal" — seed for the sprint-spec brainstorm.--farm — cost-arbitrage backend: cheap workers implement under the same gates; Claude stillauthors spec, failing tests, plan, and reviews everything. Pre-flights FARM_API_KEY.
<plugin-root>/SPRINT.md (mode body), which routes through brainstorming,
writing-plans, subagent-driven-development, commit-gate, finishing-a-development-branch.
/ca-feature.a thin spec makes hard-gate stops frequent instead of rare.
Take arbiterforge/codearbiter-ca-sprint from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.