deliberation CLAUDE.md

A set of Claude Code instructions for Deliberation, a plugin that asks GPT, Gemini, Grok, or OpenRouter models to advise on or sometimes implement coding tasks.

In plain words
What is it for?
It helps with local plugin testing, installation and removal checks, and development of the plugin's expert subagents and model connections.
Why use it?
It explains how to test the plugin and its setup flow, including which models can edit files and which only give advice.

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/antonbabenko/deliberation/claude-md
Clone the repo
git clone --depth 1 https://github.com/antonbabenko/deliberation
Per session 7,547 This file is loaded in full into every session.
When invoked 7,547 The same file — it is already loaded in full.
Security scan B 1 finding. 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.07547 $0.07547
Opus 5 $0.03773 $0.03773
Sonnet 5 $0.01509 $0.01509
Haiku 4.5 $0.00755 $0.00755

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

Security

Grade B, and why

deliberation CLAUDE.md scanned grade B with 1 finding 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.

Reads agent configuration directoriesmediumAgent snooping

.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.

- **`analyze` tool** (`core/analyze.js` + `commands/analyze.md`) - reads the debug log back (tail-bounded, pre-aggregated server-side) for per-model latency/tokens/error/effort (Lens A) and the session store for verdict
CLAUDE.md · 265 lines

How it starts

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

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

What This Is

A Claude Code plugin that provides GPT (via Codex CLI), Gemini 3 (via the Antigravity CLI agy), Grok (via the xAI HTTP API), and OpenRouter (config-driven, advisory-only, 400+ models) as specialized expert subagents. Seven domain experts that can advise OR implement: Architect, Plan Reviewer, Scope Analyst, Code Reviewer, Security Analyst, Researcher, and Debugger. (Grok and OpenRouter are advisory-only - they cannot edit files. Grok reads attached files via the xAI Files API; OpenRouter inlines text files only.)

Development Commands

# Test plugin locally (loads from working directory)
claude --plugin-dir /path/to/deliberation

# Run setup to test installation flow
/deliberation:setup

# Run uninstall to test removal flow
/deliberation:uninstall

No build step, no dependencies. Codex exposes a native MCP server; Gemini, Grok, and OpenRouter use bundled zero-dependency Node bridges (server/gemini/index.js, server/grok/index.js, server/openrouter/index.js). The Gemini bridge wraps the Antigravity CLI (agy) in print mode. The OpenRouter bridge calls any OpenAI-compatible /chat/completions endpoint.

Architecture

Repository layout

  • core/ - host-neutral, zero runtime deps, strict-typed. Provider interface + toErrorResult + the opinion schema/envelope (types.js / provider.js): OPINION_SCHEMA (recommendation + confidence enum + optional dissent_points/assumptions/tradeoffs string[]), parseOpinion(text) -> OpinionEnvelope (best-effort, never throws; structured = parse provenance), advisory validateOpinion ({valid, wellFormed, warnings}), OPINION_INSTRUCTIONS, and parseReview(text) -> {verdict, criticalIssues} (best-effort, never-throws: fenced-code-skipped verdict ladder - VERDICT: sentinel / same-line keyword / Verdict heading-split / bare token - plus the closed 6-category taxonomy with next-line continuation-join) used by the convergence loop. registry.js (selectForAskAll / selectForConsensus); orchestrate.js (askAll / askOne / consensus / runToConvergence - the non-Claude server-side loop driver); consensus-loop.js (the PURE convergence state machine - the SSOT for round counting, the convergence rule, the configurable max-rounds cap, history, and the confidence label); loop-store.js (ephemeral sliding-TTL + LRU Map holding LoopState across the stateless consensus-step calls; independent of sessions.persist); providers/*.js adapters (codex.js spawns the Codex CLI; antigravity.js / grok.js / openai-compatible.js wrap their bridge via an injectable opts.bridge); paths.js (config + cache path resolver, DELIBERATION_CONFIG override).
  • server/mcp/ - stdio JSON-RPC MCP server over core. Published as @antonbabenko/deliberation-mcp: an esbuild prepack step bundles core + the three bridges into a self-contained dist/index.js (build-time devDep only; dist/ gitignored). server.json at the repo root is the Official MCP Registry manifest.
  • server/{gemini,grok,openrouter}/ - the provider bridges (gemini wraps the agy CLI; grok = xAI HTTP; openrouter = any OpenAI-compatible HTTP) plus openrouter config.js (validateConfig / makeConfigReader, the config SSOT). Registered (with the unified server/mcp server) inline in .claude-plugin/plugin.json under the mcpServers key (deliberation-* / deliberation) - this inline block is the SOLE runtime MCP registration. Claude Code reads MCP servers from a plugin's root .mcp.json OR inline in plugin.json; the inline form is used so the manifest is NOT also auto-loaded as a project-scope .mcp.json when working inside this repo (which would duplicate every server with an unresolved ${CLAUDE_PLUGIN_ROOT}). The args use ${CLAUDE_PLUGIN_ROOT}, which Claude Code resolves to the installed version on every load, so updating is just /plugin marketplace update antonbabenko + /reload-plugins. /deliberation:setup seeds config and installs rules; it does not register MCP servers.
  • Typecheck gate - tsconfig.json strict checkJs over core/** + server/mcp/**/*.js (excludes server/mcp/dist). npm run check = typecheck + node --test test/*.test.js, enforced in CI by .github/workflows/validate.yml.

Read the full file on GitHub · 265 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 · 265 lines · 7,547 tokens per session scan B e489884220ef

Subscribe to this mod's changes

deliberation CLAUDE.md is an instructions file published in the GitHub repository antonbabenko/deliberation (138 stars, last pushed 5d ago), licensed MIT. It adds 7,547 tokens to every session, about $0.0377 per session on Opus 5. A static security scan graded it B with 1 finding (reads agent configuration directories). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.