| name | using-anvil |
| description | Bootstrap loader for the DG-Anvil plugin. Enumerates the five primitives, seven skills, five commands, and the core loop. Loaded at session-start. |
Overview
DG-Anvil enforces the Anvil loop as structural gates, not advisory prompts.
Five primitives: Contract, Plan, Loop, Ledger, Court.
Seven skills that compose the loop:
contracting - turn an intent into a machine-readable contract with four verification levels per criterion.
planning - decompose the contract into an atomic task DAG with wave ordering; every task cites contract criterion ids.
executing - dispatch a task to a fresh subagent in an isolated worktree.
verifying - run the four verification probes (Exists, Substantive, Wired, Functional) against the task output.
judging - dispatch the Court on evidence-only inputs to adjudicate the verification result.
resetting - on fail, append a non-null lesson to the ledger and re-queue the task.
authoring-skills - meta-skill governing how skills themselves are written, reviewed, and retired.
Five commands surfaced by the plugin:
/start - begin a run: draft and confirm the contract, then produce the plan.
/continue - resume the loop at the next task.
/ship - finalize and integrate passing work.
/abort - stop the run, capture a lesson if appropriate.
/ledger - query the global lesson ledger.
Invoking the Anvil CLI: the CLI binary is cli/anvil.js inside the plugin directory and is NOT on PATH. Always invoke it as node "$CLAUDE_PLUGIN_ROOT/cli/anvil.js" <subcommand> .... Every command example in every skill should be read this way.
When to Use
Loaded by hooks/session-start on every fresh Claude Code session and after any /clear or /compact. Re-load it at the start of any sub-session where the contract must be rehydrated into context.
Process
- Read the active contract at
./anvil/contract.yml. If absent, route to contracting.
- Read the active plan at
./anvil/plan.yml. If absent, route to planning.
- For the next queued task, dispatch
executing in a fresh worktree.
- On task completion, run
verifying against all four levels named on the criterion.
- If any level fails, dispatch
judging; otherwise mark the task verified.
- On Court verdict fail, run
resetting: append a non-null lesson, re-queue the task.
- When all tasks pass, run
/ship.
Rationalizations
Reject the following shortcuts (failure-taxonomy row citations in parentheses):
- "The contract is obvious; skip to plan." (row 7: skipping the contract step.)
- "This task is small; verify informally." (row 24: verification by agent claim.)
- "One fail is fine; proceed to next task." (row 28: ignoring a fail by minimising it.)
Red Flags
If any of these conditions obtain, stop and route back to the loop:
- Contract missing the four verification levels on any criterion (row 8: contract without levels).
- Plan with a task that cites no criterion id (row 14: plan drift from contract).
- Agent attempting to mark a task verified without running all named levels (row 25: claim-over-check).
Verification
Check the current loop state with node "$CLAUDE_PLUGIN_ROOT/cli/anvil.js" contract --validate anvil/contract.yml and node "$CLAUDE_PLUGIN_ROOT/cli/anvil.js" plan --validate anvil/plan.yml --contract anvil/contract.yml. Both must exit 0 for the loop to proceed. If either exits non-zero, the structured error names the failing invariant and the skill to route to.