wholehog-loop
Installation
SKILL.md
Wholehog Loop
Drive a task to a target quality bar by alternating implementation passes with independent critique, until the stopping criterion is met or a real blocker stops progress. By default, the critique is wholehog-score and the stopping criterion is a numeric score goal. The user may instead name a different critique method, rubric, or stop condition. The main agent only orchestrates — it never edits or judges directly. Each role is a separate subagent so the builder and the judge stay independent.
Roles
- Main agent (orchestrator). Establishes scope, runs the loop, decides against the criterion, relays the critique report's next steps to the implementer, detects blockers, and reports progress to the user in the standardized format (see Reporting). It does not write code or assign outcomes itself.
- Implementation subagent. Does each
wholehogpass against the real repo. Keep one implementer across iterations (continue it with each new work list) so it retains what it already built and why. - Critique subagent. Independently critiques the current state. By default it uses the
wholehog-scoreskill; if the user provides another critique method or stopping criterion, use the appropriate rubric/tool. Spawn a fresh one every iteration so the judge never anchors on prior work or its own past findings.
Required Input
- Stopping criterion. Default: a target wholehog score (0–100), e.g. "wholehog-loop to 95". The user may instead provide an alternate critique/stopping criterion, e.g. "loop until the reviewer finds no P0/P1 issues", "loop until the Playwright screenshots are clean", or "loop until the security critique passes". If the user provides neither a target score nor a criterion, ask for one before starting.
- Scope. The obvious in-context task, or whatever the user named before/after the skill invocation. State it in one line so it does not drift across iterations.
- (optional) Iteration cap. Default: none. The user may set one as a runaway guard; when unset, continue until the stopping criterion is met or a real blocker stops progress.
The Loop
Each iteration, the orchestrator: