grounded-citations

Grounds answers and documents in numbered, verifiable source citations via a ledger script.

Updated Sep 20, 2026
One-click install
npx skills add https://github.com/GreenyZA/neo-light --skill grounded-citations-greenyza
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: grounded-citations
Source: https://github.com/GreenyZA/neo-light/tree/main/.hermes-home/skills/research/grounded-citations
Command: npx skills add https://github.com/GreenyZA/neo-light --skill grounded-citations-greenyza

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve? LLM-generated answers and reports often contain hallucinated URLs or citations that do not support the claims they reference. This Skill eliminates that risk by owning the URL-to-number mapping in a persistent ledger, so the model only ever emits small integer ids it was handed at retrieval time and never types a URL from memory. ## Core Features & Use Cases - Citation Ledger: Registers sources at retrieval time with idempotent, URL-normalized ids, then mechanically renders the Sources block in markdown, plain, footnotes, bibtex, or evidence styles. - Fact-Checking Mode: Attaches verbatim quotes to each source (rejected unless they literally appear in the fetched page text), flags model-knowledge claims with [unverified], and fails drafts whose cited sources carry no evidence. - Draft Verification: Checks that every [n] in a draft exists in the ledger, the Sources block matches the ledger, and citation coverage meets a configurable threshold. - Use Case: While writing a market research report from web searches, register each fetched page with the ledger, cite claims inline as [1][2], then run verify before delivery to guarantee no fabricated or mismatched references. ## Quick Start Ask the agent to research a topic using web search, register every retrieved source in the citation ledger, and write a cited answer ending with a rendered Sources list.

Frequently Asked Questions about grounded-citations

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add verifiable citations to AI-generated answers?▼

Register each retrieved URL with the sources.py ledger at fetch time, which returns a stable numeric id. Cite claims inline as [n] while drafting, then render the Sources block mechanically so URLs come from the ledger, never from model memory.

How to fact-check an LLM research report against its sources?▼

Attach verbatim quotes to each source using the quote command, which rejects text not literally present in the fetched page. Then run verify with the --evidence flag to fail any draft whose cited sources carry no supporting quote.

Does the citation ledger work with any web retrieval tool?▼

Yes, the ledger is retrieval-agnostic and works with web_search, web_extract, browser_navigate, curl, or any CLI. The ingest subcommand can also parse URLs directly from JSON tool output.

Can multiple parallel subagents share one citation ledger?▼

Yes, point all subagents at the same ledger file using the --ledger flag or HERMES_CITATION_LEDGER environment variable. A lockfile prevents concurrent add calls from assigning duplicate ids.

When should inline citations be skipped in answers?▼

Skip citations when retrieval is incidental, such as quick syntax lookups mid-coding, casual conversation, or creative writing. The skill targets deliverables that quote, paraphrase, or report outside facts the reader may want to check.

Why does the quote command reject my evidence text?▼

Quotes must appear verbatim in the fetched page text, matched insensitively to whitespace, case, and markdown markup. Paraphrased or retyped text is rejected; copy the exact sentence from the extracted page instead.