What problem does it solve? AI-generated answers and documents often contain hallucinated or unverifiable citations because URLs are reconstructed from memory. This Skill eliminates that risk by assigning each retrieved source a stable numeric id in a persistent ledger, so the model only ever emits integers it was handed and the Sources block is rendered mechanically from the ledger. ## Core Features & Use Cases - Citation Ledger: Register URLs at retrieval time with sources.py add or ingest; ids are idempotent, URL-normalized, and stable across multi-turn and multi-subagent work. - Draft Verification: sources.py verify catches unknown citation ids, mismatched Sources blocks, and thin citation coverage via --strict, --min-coverage, and --evidence gates. - Fact-Checking Mode: Attach verbatim quotes to sources (rejected unless they literally appear in the fetched page text), flag model-knowledge claims with [unverified], and render an evidence block showing claim → source → exact supporting text. - Use Case: While writing a market research report, register every page from web_search and web_extract, cite sentences inline as [1][2], then run render --cited-in report.md and verify report.md --min-coverage 0.5 before delivering. ## Quick Start Ask the agent to research a topic across the web and write a report where every factual claim carries an inline numbered citation and a verified Sources list at the end.