What problem does it solve? AI-generated answers and reports often contain hallucinated URLs or citations reconstructed from memory, making claims impossible to verify. This Skill eliminates that failure mode by having a ledger script own the URL-to-number mapping, so the model only ever emits small integer ids it was handed at retrieval time. ## Core Features & Use Cases - Citation Ledger: Register sources at retrieval time with sources.py add or ingest; ids are stable, idempotent, and URL-normalized, then rendered mechanically into a Sources block (markdown, plain, footnotes, bibtex, or evidence styles). - Fact-Checking Mode: Attach verbatim quotes to each source (rejected unless they literally appear in the fetched page text), flag unsourced claims with [unverified], and gate delivery with verify --evidence --min-coverage. - Draft Verification: verify catches unknown citation ids, Sources blocks that disagree with the ledger, thin citation coverage, and over-cited sentences before delivery. - Use Case: While writing a market research brief, register every page fetched via web search, cite claims inline as [1][2], then run render --cited-in brief.md and verify brief.md --min-coverage 0.5 so every factual sentence traces to a real retrieved URL. ## Quick Start Ask the agent to research a topic using web search, register each retrieved source in the citation ledger, and write a cited answer ending with a rendered Sources list.