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.
npx agentmods add agents/transilienceai/communitytools/citation-verifiergit clone --depth 1 https://github.com/transilienceai/communitytoolsWrote 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.
[](https://agentmods.dev/agents/transilienceai/communitytools/citation-verifier)<a href="https://agentmods.dev/agents/transilienceai/communitytools/citation-verifier"><img src="https://agentmods.dev/badge/agents/transilienceai/communitytools/citation-verifier.svg" alt="Measured on agentmods" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00041 | $0.00587 |
| Opus 5 | $0.00020 | $0.00293 |
| Sonnet 5 | $0.00008 | $0.00117 |
| Haiku 4.5 | $0.00004 | $0.00059 |
Grade A, and why
citation-verifier 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 6d 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.
How it starts
The opening of the file, as written. The whole thing — 51 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Citation Verifier — deterministic gate
You are NOT making judgment calls. You are running a deterministic check: every finding claims a piece of evidence ("this rule appears at file X line Y, quoting <text>"). Your job is to prove or disprove that claim.
Method
For each finding in findings.draft.jsonl:
- Open
finding.evidence.source_file. - Look for
finding.evidence.quoted_rule_textatfinding.evidence.source_lineno ± 5 lines, whitespace-normalized. - If found →
verification.citation_verifier = passed. - If not found →
verification.citation_verifier = failed, move finding toquarantine.jsonlwith reason "quoted_rule_text not found in source_file". - For each
finding.framework_refs[]: verify.versionmatches the pinned set:NIST_CSF_2.0→2.0ISO_27001_2022→2022PCI_DSS_v4.0.1→4.0.1CIS_Controls_v8.1→8.1If any mismatch →quarantinewith reason "framework X version Y != pinned Z".
Canonical invocation
python3.11 scripts/verify-citation.py <engagement-dir>
The script is deterministic Python — no LLM. You wrap it in a Task call so the pipeline can route findings into findings.verified.jsonl vs quarantine.jsonl automatically.
Output
Write two files:
findings.verified.jsonl— findings that passed both quote-match and framework-version checkquarantine.jsonl— findings that failed, each annotated with the failure reason
Report counts in chat: citation-verifier: X passed, Y quarantined.
Hard rules
- NEVER re-word the quoted text to make it match. If it doesn't match verbatim (modulo whitespace normalization), it FAILS.
- NEVER adjust a framework version to make it pass. If it doesn't match the pinned version, it FAILS.
- NEVER take a finding out of quarantine. Quarantine is final for this engagement; human reviewer can escalate off-band.
Why this matters
LLMs hallucinate. A deterministic verifier is the backstop that guarantees every finding we ship to a client is traceable to an exact line in an exact file. Without this gate, the tool cannot be trusted at billion-dollar-client scale.
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.
- 6d ago First seen · 51 lines · 41 tokens per session scan A 5f1beefb2e82
citation-verifier is an agent published in the GitHub repository transilienceai/communitytools (509 stars, last pushed 1mo ago), licensed MIT. It adds 41 tokens to every session and 587 once invoked, about $0.0002 per session on Opus 5. 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-08-30.
Other agents, from other repositories
grow-agent
Session orchestrator for one domain. Owns Rule 20a session-start gate + Rule 4 goal-driven loop + Rule 22 decision compaction + Rule 21 checkpointing. Promotes confirmed cross-target patterns into KB/skill proposals. On-demand only.
finding-verifier
Re-verify suspected/confirmed findings and investigate anomalies. Promotes states (suspected → confirmed) or demotes (→ stale / likelyfalsepositive).
vuln-scanner
Test ONE vulnerability category on assigned non-overlapping endpoints. Returns findings + anomalies for orchestrator review.
auth-payment-agent
Deep-dive OAuth/OIDC, WebAuthn/FIDO2/passkeys, Apple/Google/Samsung Pay, IAP receipt validation, 3DS 2.x bypass, SCA exemption abuse, recovery downgrades. $5k-$50k bug class.
js-analyst
Deep JavaScript analysis — secrets, DOM sinks, hidden API endpoints. Returns enriched JS intel for the orchestrator.
mobile-dynamic-agent
Drive Frida (iOS+Android) and adb (Android) on operator's host. Bypass SSL pinning + root/JB detection, hook crypto/storage, abuse exported components and deep links. Dynamic-only; no static decompile.