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 skills add a-ariff/ariff-claude-plugins --skill citation-enforcergit clone --depth 1 https://github.com/a-ariff/ariff-claude-pluginsWrote 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/skills/a-ariff/ariff-claude-plugins/citation-enforcer)<a href="https://agentmods.dev/skills/a-ariff/ariff-claude-plugins/citation-enforcer"><img src="https://agentmods.dev/badge/skills/a-ariff/ariff-claude-plugins/citation-enforcer/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.
<a href="https://agentmods.dev/skills/a-ariff/ariff-claude-plugins/citation-enforcer"><img src="https://agentmods.dev/badge/skills/a-ariff/ariff-claude-plugins/citation-enforcer.svg" alt="Reviewed on agentmods" width="80" 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.00046 | $0.00520 |
| Opus 5 | $0.00023 | $0.00260 |
| Sonnet 5 | $0.00009 | $0.00104 |
| Haiku 4.5 | $0.00005 | $0.00052 |
Grade A, and why
citation-enforcer 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 10d 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.
What it actually says
Citation Enforcer
Every code claim needs a citation. file:line or it didn't happen.
The rule
When you mention any of these, include the file path and line number:
- A function name -> "validateToken() at src/auth.ts:42"
- A variable -> "the MAX_RETRIES constant at src/config.ts:15"
- A class -> "the UserService class at src/services/user.ts:1"
- An import -> "imported from @auth/core at src/auth.ts:3"
- A config value -> "timeout set to 30000 at config/default.json:12"
- An error message -> "the error 'Invalid token' thrown at src/auth.ts:67"
Citation format
Standard: file:line
Example: src/auth.ts:42
With range: file:line-line
Example: src/auth.ts:42-58
With context: description at file:line
Example: "the validateToken function at src/auth.ts:42"
Self-check
Before sending a response, scan it for uncited claims:
- Find every mention of a function, file, class, or variable
- Does each one have a file:line citation?
- If not, either: a. Use Read/Grep to find the actual location and add it b. Remove the claim if you can't find it c. Clearly state "I haven't verified where this is located"
Examples
Bad: "The authentication middleware checks for valid tokens." Good: "The authentication middleware at src/middleware/auth.ts:15-30 checks for valid tokens by calling validateToken()."
Bad: "There's a bug in the error handling." Good: "The catch block at src/api/users.ts:87 swallows the error without logging it."
Bad: "The config file has the wrong timeout." Good: "The timeout at config/production.json:23 is set to 5000ms, which may be too low for this API call."
When citations aren't needed
- General programming concepts ("REST APIs use HTTP methods")
- Suggestions that aren't about existing code ("you could add a retry mechanism")
- Questions to the user ("what error are you seeing?")
- Tool output that already includes file references
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.
- 10d ago First seen · 60 lines · 46 tokens per session scan A 49d6932aada0
citation-enforcer is a skill published in the GitHub repository a-ariff/ariff-claude-plugins (14 stars, last pushed 5mo ago), licensed MIT. It adds 46 tokens to every session and 520 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 skills, from other repositories
loop-verifier
The checker half of a maker/checker loop. Independently reviews a proposed fix before it becomes a PR. Has authority to REJECT. Never makes changes itself.
ast-analyzer
Deep Abstract Syntax Tree analysis for understanding code structure, dependencies, impact analysis, and pattern detection at the structural level across multiple programming languages.
quality-standards
Defines code quality benchmarks, standards compliance, and best practices for maintaining high-quality codebases.
pull-request-feedback-loop
Handles PR review feedback by fetching comments, grouping issues, fixing one group at a time, and verifying before replies.
code-review-pipeline
Multi-dimensional code review across correctness, security, performance, and maintainability with confidence-gated reporting and remediation loops.
verification
Verification-before-completion discipline ensuring all success criteria are met, tests pass, and reviews complete before declaring work done.