- Introduced `critic`, an independent adversarial reviewer for security and correctness. - Added `fable-orchestrator` to manage task routing and verification. - Implemented `gauntlet-critic` for fresh-context evaluation of gauntlet rounds. - Created `planner` for generating executable implementation plans with dependencies. - Developed `security-auditor` for application security reviews and audits. - Established `system-steward` to improve agent prompts and skills based on verified failures. - Added `dev-loop` skill for autonomous development loops over repositories. - Implemented `gauntlet-loop` skill for iterative quality benchmarking against reference standards. - Updated project settings to utilize the new orchestrator agent. - Created documentation for `GAUNTLET.md`, `PROGRESS.md`, and `REFERENCE_BAR.md` to track project status and quality benchmarks. - Added detailed prompting style guide to enhance understanding of prompt patterns and agentic loops.
4.2 KiB
4.2 KiB
name, description, allowed-tools
| name | description | allowed-tools |
|---|---|---|
| gauntlet-loop | Run reference-benchmarked improvement rounds on an outcome that must match or beat a concrete quality bar — decompose into independently judgeable parts, then loop builder → fresh-context gauntlet-critic on the single biggest gap until parity, diminishing returns, or budget. Use for quality-benchmarked deliverables, not routine maintenance (that is dev-loop). | Read Grep Glob Bash Write Edit Skill Agent |
Iterate work against a concrete reference until a fresh-eyes referee calls parity — the Gauntlet Loop (Matt Shumer's method behind "Claude of Duty"). Opus owns routing and acceptance; this skill is the loop discipline.
Preconditions — refuse to start until all three hold
- The bar is concrete.
docs/REFERENCE_BAR.mdnames at least one inspectable reference artifact per part in scope (file, screenshot, URL, sample output, recording) and how to compare against it. An adjective is not a bar; "make it amazing" starts nothing. If the bar is missing, request it from the owner as a decision-ready item — that request never stalls other lanes. - A budget exists. Max tokens/time per part and for the whole gauntlet, written into the orchestration record and the
docs/GAUNTLET.mdrow. - The bar is not gameable. The referee judges the artifact as a user would experience it; any single metric is supporting evidence, never the target.
Round protocol (per part)
- Decompose once. Opus splits the outcome into the smallest parts that can be improved and judged separately — coupled work stays one part. Each part gets a row in
docs/GAUNTLET.md: part, bar reference, budget, status. - Build. One builder owns the part and returns the artifact plus exact instructions to render/run/see it. The builder never assesses its own round against the bar.
- Referee. Spawn
gauntlet-criticfresh. Its packet is the part contract, the bar, and artifact access — no builder narrative, no prior round reports (round history lives on the board as one-line entries, not in the referee's context). It returns verdict, single biggest gap, evidence, also-observed list, stop signal. Referee effort ishigh; raise toxhighonly for a final parity verdict at the high-risk gate. - Log. Append one line to Round history in
docs/GAUNTLET.md: part, round, verdict, gap, spend. - Loop. The builder's next packet targets exactly the named gap (plus any P0 from the also-observed list). Never pre-commit to a round count — "do three rounds and stop" defeats the method.
- Parallelize across parts freely: different parts may sit in different rounds, with one builder and one referee per part per round.
Stop conditions (per part)
- Parity or better — the referee's verdict says the output matches or beats the bar.
- Diminishing returns — two consecutive rounds where the named gap is cosmetic or the improvement is negligible.
- Budget exhausted — record the last verdict and open gap on the board; surface to the owner.
- Recurring gap — the same gap survives two rounds with no new strategy: park it decision-ready (short options, recommended default) and move to the next part.
- Boundary — a round would need a destructive, external, or permission-crossing action: stop and escalate; never proceed on referee authority.
Endgame
When every part has stopped: run one integration pass (integrator merges, verifier re-runs the full checks) so independently polished parts still work as a whole; apply the normal quality gates for the risk level; and if the per-part bars were partial views, run one final whole-artifact referee round against the bar. Record final verdicts on the board, then compress the outcome into HANDOFF.md and PROGRESS.md in owner language: what reached the bar, what stopped short and why.
Guardrails
- Builders never self-grade; referees never see builder narrative; Opus never overrides a verdict without observable evidence.
- Evidence is observable — rendered pixels, command output, test results, a cold read of the finished writing — never a summary of them.
- Consequential actions (deploy, spend, delete, credentials) stay behind explicit owner authorization regardless of loop momentum.