chain-of-verification

chain-of-verification is a skill for Claude Code from uqeu/estelle-cli. It costs 0 tokens per session (1,125 once invoked), scanned A, original, Apache-2.0.

A draft-checking method that turns each claim into questions designed to disprove it, then revises the answer using independent evidence.

In plain words
What is it for?
It helps check multi-claim answers or code changes before release, remove unsupported statements, and repair problems found by tests.
Why use it?
It reduces confident mistakes caused by simply rereading the same draft and treating its claims as facts.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the estelle plugin — 26 skills, 4 agents, 9 hooks shipped together

Good fit It helps check multi-claim answers or code changes before release, remove unsupported statements, and repair problems found by tests.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/uqeu/estelle-cli/chain-of-verification
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.

Any agent
npx skills add uqeu/estelle-cli --skill chain-of-verification
Clone the repo
git clone --depth 1 https://github.com/uqeu/estelle-cli

Made for: Claude Code.

Or install estelle, the plugin that ships this one along with the rest of its 26 skills, 4 agents, 9 hooks.

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 chain-of-verification

README.md
[![agentmods](https://agentmods.dev/badge/skills/uqeu/estelle-cli/chain-of-verification/github.svg)](https://agentmods.dev/skills/uqeu/estelle-cli/chain-of-verification)
Your own site
<a href="https://agentmods.dev/skills/uqeu/estelle-cli/chain-of-verification"><img src="https://agentmods.dev/badge/skills/uqeu/estelle-cli/chain-of-verification/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for chain-of-verification

Your own site · 80×15
<a href="https://agentmods.dev/skills/uqeu/estelle-cli/chain-of-verification"><img src="https://agentmods.dev/badge/skills/uqeu/estelle-cli/chain-of-verification.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 0 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,125 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
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.1 $0.00000 $0.01125
Opus 5.5 $0.00000 $0.00450
Sonnet 5.5 $0.00000 $0.00225
Haiku 4.5 $0.00000 $0.00112

Measured 1mo ago against content hash ee7d4be9da1c, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

chain-of-verification 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 1mo 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.

estelle-plugin/skills/chain-of-verification/SKILL.md · 61 lines

How it starts

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

chain-of-verification

Estelle's Chain-of-Verification skill (Dhuliawala et al., Meta AI, arXiv:2309.11495). A model asked to re-read its own draft tends to re-justify its own mistakes — the error is already in context, so it reads as fact. CoVe breaks that loop by decomposing the draft into targeted verification questions and answering each one from FRESH, draft-independent recall — retrieve_cited (serve/memory_pipeline.py, hybrid RRF) keyed on the QUESTION, not the draft — then revising the answer to keep only what the independent evidence supports and proving the result through the verify→test→repair loop (ground_report_and_repair, agent/grounding.py; run_and_repair_suite / parse_suite_output, agent/verify_suite.py). Distinct from self-eval and verify-gate: those check a finished answer against ground truth once — this is the question-generation-and-decontamination mechanism that repairs the draft before either gate sees it.

When to run

After drafting a multi-claim answer or change but before it reaches the release gate — especially when the draft was written from the model's own reasoning and you suspect it carried a confident error through. CoVe's edge is exactly the case where a single re-read won't help, because the model would only re-derive the same mistake from the same contaminated context.

Procedure

  1. Hold the draft as a baseline, not a conclusion. Take the drafted answer as a hypothesis to be interrogated — the CoVe baseline. It is the thing verification will revise, never the thing it sets out to defend.
  2. Generate verification questions. Ask the model (an injected ask, the same shape best_of_n uses in agent/candidates.py) to plan a short list of targeted questions — one per checkable claim in the draft ("does retrieve_cited return source pairs?", "is FRONTIER the default tier?"). Each question must isolate exactly one claim; a question that bundles two claims can't be cleanly answered.
  3. Answer each question with FRESH, INDEPENDENT recall. The crux: answer every verification question by NEW retrieval keyed on the QUESTION, not the draft — retrieve_cited with the question as the query, hybrid RRF (fuse_ranked_texts, serve/hybrid.py), cited via cite_block. Because the draft never conditions the retrieval, the same confabulation cannot re-surface to justify itself (CoVe's factored / decontaminated variant). This independence is exactly what a self-eval re-read of the finished answer cannot give you.
  4. Compare each draft claim to its independent answer. Supported = the fresh answer agrees; Unsupported = it can't confirm; Contradicted = it disagrees. The verdict comes from the decontaminated recall, not from re-reading the draft in place — so a claim the draft stated confidently but the fresh recall won't back is caught here.
  5. Revise: strike or rewrite the unsupported clauses. Produce the final answer keeping ONLY what the independent verification supports — unsupported clauses struck, contradicted ones corrected to match the cited evidence. The revision is the CoVe output; the draft's unverified confidence does not survive into it.
  6. Prove the revised answer through the verify→test→repair loop. Now that it's decontaminated, verify it: ground_report_and_repair checks every symbol against the real CodeGraph, then run_and_repair_suite / parse_suite_output runs the repo's OWN pytest — green ONLY when the summary line truly says so — repairing while red up to the round budget. Question-generation decontaminates; the loop confirms.
  7. Bank the caught contradictions. Each struck or corrected clause is a real caught mistake: learn_from_grounding / ExperienceStore.record (agent/reflect.py + agent/experience.py) records it keyed on the prompt, so the next similar draft recalls the correction instead of re-making it.
  8. Emit the revised answer with its verification trail. Ship the revised answer alongside the question → independent-answer → verdict trail, each independent answer carrying its [source] citation — the audit of what was checked, what was struck, and why.

Read the full file on GitHub · 61 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. 1mo ago First seen · 61 lines · 0 tokens per session scan A ee7d4be9da1c

Subscribe to this mod's changes

chain-of-verification is a skill published in the GitHub repository uqeu/estelle-cli (0 stars, last pushed 14d ago), licensed Apache-2.0. It costs nothing until one of its globs matches a file; then it loads 1,125 tokens. 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-09-12.

Related

Other skills, from other repositories

cocosearch-review-pr

Use when reviewing a GitHub PR or GitLab MR by URL. Fetches diff and metadata via API, then uses CocoSearch for blast radius analysis, dependency impact, pattern consistency, and test coverage assessment. Read-only by default; optionally pushes findings back as inline PR/MR comments after your confirmation.

VioletCranberry/coco-search · 68 tokens

find-simplifications

Use for a periodic repo-wide sweep of qwen-code for accumulated excess surface — dead components and files, orphaned locale keys, exports nothing consumes, added-then-removed scaffolding — filing candidates on a tracking issue and landing only what a maintainer has said yes to. Repo-wide and evidence-first; every…

QwenLM/qwen-code · 103 tokens

swarm-pr-review

Run a graph-guided, tool-augmented PR review using context packing, parallel exploration, mandatory repository-agnostic risk-family coverage with dispatch scaled to diff size and risk, independent reviewer validation, critic challenge, and metrics writeback. Use for deep pull request review with low false-positive…

ZaxbyHub/opencode-swarm · 91 tokens

code-review

You are a senior code reviewer. You receive diffs via stdin.

jrswab/axe · 0 tokens

include-test-files-that-assert-on-behavior-being-changed-in-decl

When delegating a task affected by this skill, include.

ZaxbyHub/opencode-swarm · 29 tokens

review

Adversarial fresh-context review and risk check of an increment before it ships; every finding cites path:line and is re-verified. Use for "review", "qa", "quality check", "critique this".

anton-abyzov/specweave · 45 tokens