Skip to content
Back to skills

Citation Enforcer

ASecurity

Forces every code-related claim to include file:line citations. No citation means the claim must be verified or removed. Use when building documentation, writing code reviews, or any output that others will rely on.

  • 14 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added May 27, 2026
data-aigoapidocumentation

Works with

  • api

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add a-ariff/ariff-claude-plugins --skill citation-enforcer --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Citation Enforcer?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Citation Enforcer
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/a-ariff-citation-enforcer/badge)](https://www.skillsdirectory.com/skills/a-ariff-citation-enforcer)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: citation-enforcer
description: Forces every code-related claim to include file:line citations. No citation means the claim must be verified or removed. Use when building documentation, writing code reviews, or any output that others will rely on.
---

# 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:

1. Find every mention of a function, file, class, or variable
2. Does each one have a file:line citation?
3. 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

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…