anvil CLAUDE.md

anvil CLAUDE.md is an instructions file for coding agents from mulkatz/anvil. It costs 1,139 tokens per session, scanned A, original, MIT.

A Claude Code plugin for examining ideas through a structured debate between an advocate, a critic, and a synthesizer.

In plain words
What is it for?
Use it to review plans, designs, or decisions from several angles. It stores the debate state and routes each stage automatically.
Why use it?
It gives a coding agent a repeatable way to challenge assumptions and combine opposing views before reaching a conclusion.

Instructions file

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/mulkatz/anvil/claude-md
Clone the repo
git clone --depth 1 https://github.com/mulkatz/anvil

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for anvil CLAUDE.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/mulkatz/anvil/claude-md.svg)](https://agentmods.dev/instructions/mulkatz/anvil/claude-md)
Your own site
<a href="https://agentmods.dev/instructions/mulkatz/anvil/claude-md"><img src="https://agentmods.dev/badge/instructions/mulkatz/anvil/claude-md.svg" alt="Measured on agentmods" height="20"></a>
Per session 1,139 This file is loaded in full into every session.
When invoked 1,139 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.01139 $0.01139
Opus 5 $0.00570 $0.00570
Sonnet 5 $0.00228 $0.00228
Haiku 4.5 $0.00114 $0.00114

Measured 3d ago against content hash a5dac10aefd9, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

anvil CLAUDE.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

CLAUDE.md · 93 lines

How it starts

The opening of the file, as written. The whole thing — 93 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Anvil — Adversarial Thinking Plugin

What this is

A Claude Code plugin that enables adversarial thinking through structured debates. Uses stop hook orchestration to rotate through Advocate → Critic → Synthesizer phases, each with distinct role prompts.

Architecture

  • No TypeScript runtime — the plugin is shell scripts + markdown prompts
  • bun is used as package manager only (scripts, formatting)
  • The prompts in prompts/ ARE the product
  • Stop hook (hooks/stop-hook.sh) is the orchestrator — it manages the state machine
  • State lives in .claude/anvil-state.local.md (YAML frontmatter + markdown transcript)

Key files

  • hooks/stop-hook.sh — Core state machine and prompt routing
  • scripts/setup-anvil.sh — Argument parsing, validation, state file creation
  • prompts/{advocate,critic,synthesizer}.md — Role-specific instructions
  • prompts/modes/{analyst,philosopher,devils-advocate}.md — Mode-specific tone
  • commands/anvil.md — Entry point command

Documentation

When a change affects user-facing behavior (new flags, new features, changed defaults, new modes/frameworks/personas), update README.md accordingly:

  • New CLI flag: Add to the options table and, if significant, add a section under Features
  • New mode/framework/persona preset: Add to the relevant Features section with an example
  • Changed behavior: Update any affected descriptions, examples, or the debate flow diagram
  • New script/file: Update the Architecture tree if it's a top-level addition

Conventions

  • ADRs in docs/adr/ for architectural decisions
  • State file uses .local.md suffix (gitignored by Claude Code)
  • All shell scripts use set -euo pipefail
  • Frontmatter parsing with sed, transcript manipulation with awk
  • Atomic file updates via temp file + mv

Testing

Every change to setup-anvil.sh or stop-hook.sh MUST include corresponding test updates. Run bun run check (shellcheck + all bats tests) before committing — it must pass.

Read the full file on GitHub · 93 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 3d ago First seen · 93 lines · 1,139 tokens per session scan A a5dac10aefd9

Subscribe to this mod's changes

anvil CLAUDE.md is an instructions file published in the GitHub repository mulkatz/anvil (1 stars, last pushed 6mo ago), licensed MIT. It adds 1,139 tokens to every session, about $0.0057 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other instructions, from other repositories