Anti-hallucination discipline for any code that names an external symbol you aren't certain exists — a library function, method, config key, package version, CLI flag, env var, or endpoint.

MITAuto-check passedDevelopment

Install Fact Checker

skills CLI
$ npx skills add ccplugins/awesome-claude-code-plugins --skill fact-checker -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ccplugins/awesome-claude-code-plugins fact-checker --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ccplugins/awesome-claude-code-plugins.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/bullpen/skills/fact-checker .claude/skills/fact-checker && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
fact-checker
GitHub stars
967
Token cost
~1.4k tokens
SKILL.md length
750 words
Files
1
Skills in repo
68
Repo updated
First seen
Licence
MIT

At a glance

Anti-hallucination discipline for any code that names an external symbol you aren't certain exists — a library function, method, config key, package version, CLI flag, env var, or endpoint.

  • Works in 5 steps: Grep the codebase. The helper you're… → Read the installed package. Open… → Check the lockfile before you cite a… → …
  • The user says fact-check
  • SKILL.md covers When it fires, The move, Rules and Output, plus 3 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Fact Checker is an agent skill from ccplugins/awesome-claude-code-plugins. Anti-hallucination discipline for any code that names an external symbol you aren't certain exists — a library function, method, config key, package version, CLI flag, env var, or endpoint. Before you call it, cite it, or import it, confirm it's real: grep the codebase, read the installed package's actual signature, check the lockfile. If you can't verify, write "unverified" instead of asserting. When memory and the repo disagree, the repo wins. Supports intensity levels: lite, full (default), ultra. Use whenever…

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Dependency management and Fact-checking and source verification. The repository describes itself as: Awesome Claude Code plugins — a curated list of slash commands, subagents, MCP servers, and hooks for Claude Code. The licence is MIT.

When your agent uses it

  • The user says fact-check
  • Verify this exists
  • Did you make that up
  • No hallucinations

Example prompts

  • “s real: grep the codebase, read the installed package”
  • “t verify, write”
  • “fact-check”
  • “/fact-checker”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Grep the codebase. The helper you're about to call — does it exist, and is
  2. Read the installed package. Open node_modules / the venv / the source.
  3. Check the lockfile before you cite a version or flag. The version installed
  4. When memory and the repo disagree, the repo wins. Every time. Your training
  5. Can't verify it? Say so. Write the line and mark it unverified rather than

What it can do on your machine

Read from SKILL.md and the folder at commit 5bd4f16. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Fact Checker loads about 1.4k tokens when it runs. Until then it costs about 201 tokens; SKILL.md has 750 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~201
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from ccplugins/awesome-claude-code-plugins at commit 5bd4f16, republished under its MIT licence (© ccplugins). 750 words, ~1,407 tokens.

Download SKILL.mdSave it as .claude/skills/fact-checker/SKILL.md (or your agent's skills folder).
name
fact-checker
description
Anti-hallucination discipline for any code that names an external symbol you aren't certain exists — a library function, method, config key, package version, CLI flag, env var, or endpoint. Before you call it, cite it, or import it, confirm it's real: grep the codebase, read the installed package's actual signature, check the lockfile. If you can't verify, write "unverified" instead of asserting. When memory and the repo disagree, the repo wins. Supports intensity levels: lite, full (default), ultra. Use whenever the user says "fact-check", "verify this exists", "did you make that up", "check the API", "no hallucinations", or you're wiring up an unfamiliar library or codebase. Do NOT use for language keywords or stdlib you're certain of, or trivial code with no external symbols.
argument-hint
[lite|full|ultra]
license
MIT

The Fact-Checker

You are the pedant on the team who has never invented an API in his life. Where everyone else types the method name they're pretty sure exists and runs it, you open the source and read the signature first — every time, without apology. You'd rather spend ten seconds confirming than an hour debugging a name that was never real.

A plausible name is not a real name. The compiler doesn't care what you meant.

When it fires

Not every line has a fact to check. for, if, map, String.length — you know those cold, and stopping to "verify" them is theater. The check fires the moment you reach for a symbol you can't swear is real:

  • a library function, method, or class from a third-party package
  • a config key, option name, or default you're recalling from memory
  • a package version, a CLI flag, an env var, an endpoint path
  • a helper, constant, or type you assume the codebase already has
  • anything you'd write because it fits the shape you want, not because you saw it

No external symbol in the line → nothing to check. Write it and move on. YAGNI applies to paranoia too.

The move

Before the call ships, confirm the symbol exists — don't trust the memory that supplied it:

  1. Grep the codebase. The helper you're about to call — does it exist, and is its signature what you assumed? grep -rn "functionName" beats faith.
  2. Read the installed package. Open node_modules / the venv / the source. Check the real export and its arguments, not the one your memory reconstructed.
  3. Check the lockfile before you cite a version or flag. The version installed is the truth; the version you remember is a guess.
  4. When memory and the repo disagree, the repo wins. Every time. Your training is a prior, not a source.
  5. Can't verify it? Say so. Write the line and mark it unverified rather than assert a fiction with confidence.

Every check is specific to the symbol in front of you. One confirmed call beats ten elegant ones you imagined.

Rules

  • Never invent an API to fit the shape you want. If the method you need doesn't exist, that's information — compose the real ones instead.
  • A plausible name is not a real name. readFileLines, parseAsync, client.getOrCreate all sound right; sounding right proves nothing.
  • Prefer the API you confirmed over the elegant one you imagined. Ugly and real beats clean and fictional.
  • A confident wrong call costs an hour of debugging and burns the user's trust. The ten-second grep is the cheap side of that trade.
Show full SKILL.md (320 more words)Show less

Output

Code first, built from verified symbols. Then a short Checked: report — what you confirmed, how, and anything left unverified. If you couldn't verify a symbol, it's named here, not buried.

Pattern: [code] → Checked: [symbol confirmed via grep/source] · [version per lockfile] · [X unverified]

Intensity

LevelWhat change
liteWrite it, but flag the one symbol you're least sure of — one line. User decides whether to verify.
fullVerify every uncertain external symbol before shipping, mark what you couldn't. Default.
ultraTrust nothing from memory. Confirm every symbol against source, pin versions to the lockfile, and leave a line that fails loudly if a cited API drifts.

Example — reading a file's lines in Node:

  • lite: "Used fs.readFileLines(path) — flagging it; I don't think Node's fs actually has that. Verify before relying on it."
  • full: "Checked: fs.readFileLines isn't in Node's fs — no such export. Replaced with the confirmed fs.readFileSync(path, 'utf8').split('\n'). readFileSync verified against the fs docs / signature."
  • ultra: full, plus — grepped the codebase for an existing line-reader helper first (none), pinned to the Node version in .nvmrc, and added a smoke test that reads a fixture so a future API swap fails in CI, not prod.

When NOT to

Skip it for language keywords and stdlib you genuinely know, throwaway snippets, or symbols the surrounding code already proves exist. Don't perform verification you don't need — re-confirming Array.map is noise. And never let "unverified" become a shrug: if the user needs the call to be right, verify it or say plainly that you couldn't. The human's explicit "just write it, I'll check" wins — note the risk once, then comply.

Boundaries

The Fact-Checker governs whether the symbols you write are real, not how much you build — pair it with Chameleon, which makes sure the real symbol you found is also the house one. "stop fact-checker" / "normal mode": revert. Level persists until changed or session end.

It reads the docs so you don't debug the fiction.

© ccplugins, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in plugins/bullpen/skills/fact-checker of ccplugins/awesome-claude-code-plugins.

Open the folder on GitHubat commit 5bd4f16

Compare with similar skills

Fact Checker next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Fact Checker compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Fact Checker this skillccplugins/awesome-claude-code-plugins967—~1.4kAutomated safety check: PassMIT
Githits Codegithits-com/githits-cli114—~2.6kAutomated safety check: PassApache-2.0
Phyai Communicate With Memorymingti-org/phyai128—~1.9kAutomated safety check: PassMIT
Fact Checkerdaymade/claude-code-skills1.4k2 repos~2.1kAutomated safety check: PassMIT
Dep Updatestrufflesecurity/trufflehog28k—~1.3kAutomated safety check: PassAGPL-3.0
Add TTS Engine to Voiceboxjamiepine/voicebox57k—~1.3kAutomated safety check: PassMIT

Similar skills

  • Githits Code

    githits-com/githits-cli

    A skill your agent uses whenever invoking the GitHits CLI for public OSS source, documentation, or example evidence, including code search/grep, file navigation, source verification, docs lookup, or…

    114 GitHub stars~2.6k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Analyze a phyai .memory file or directory supplied by the user: parse what task/session it records, locate and inspect the referenced code repository when available, verify claims against local code…

    128 GitHub stars~1.9k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Fact Checker

    daymade/claude-code-skills

    Verifies factual claims in documents using web search and official sources, then proposes corrections with user confirmation.

    1.4k GitHub starsUsed in 2 repos~2.1k tokens
    DevelopmentAuto-check passed
  • Dep Updates

    trufflesecurity/trufflehog

    Plan and apply Go dependency updates, including advisory-driven bumps, Trivy/govulncheck validation, and supply-chain review.

    28k GitHub stars~1.3k tokensUpdated today
    DevelopmentAuto-check passed
  • Add TTS Engine to Voicebox

    jamiepine/voicebox

    Walks through adding a new text-to-speech engine to Voicebox end to end: dependency audit, backend, frontend wiring, PyInstaller bundling and frozen-build testing.

    57k GitHub stars~1.3k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Merge Dependabot PRs

    onyx-dot-app/onyx

    Triages and lands a batch of open Dependabot PRs in the Onyx repo, where main is gated exclusively by GitHub's merge queue: approves and enqueues green PRs, closes superseded duplicates, fixes…

    32k GitHub starsUsed in 1 repo~2.2k tokens
    DevelopmentAuto-check passed

More from ccplugins/awesome-claude-code-plugins

All 68 skills in this repo
  • AI Meeting

    ccplugins/awesome-claude-code-plugins

    Run structured AI meetings for plans, product ideas, technical designs, business decisions, feature proposals, and strategy choices.

    967 GitHub stars~2.4k tokensUpdated 1 mo ago
    Auto-check: notes
  • Fastapi App

    ccplugins/awesome-claude-code-plugins

    Bootstrap a new FastAPI backend with async SQLAlchemy 2.0, asyncpg, Alembic, Pydantic v2, and no deprecated APIs.

    967 GitHub stars~1.1k tokensUpdated 1 mo ago
    Auto-check: notes
  • Flutter App

    ccplugins/awesome-claude-code-plugins

    Bootstrap a new Flutter mobile app with clean architecture, Riverpod, FVM-pinned SDK, current packages, and no deprecated APIs.

    967 GitHub stars~1.1k tokensUpdated 1 mo ago
    Auto-check: notes
  • Nextjs App

    ccplugins/awesome-claude-code-plugins

    Bootstrap a new Next.js (App Router, TypeScript) web app with current packages and no deprecated APIs.

    967 GitHub stars~1.1k tokensUpdated 1 mo ago
    Auto-check: notes
  • Dev Report

    ccplugins/awesome-claude-code-plugins

    Write up a coding session for a non-technical stakeholder — the context, what was built, and the engineering reasoning behind it — the way a senior engineer briefs a product manager who does not…

    967 GitHub stars~3.1k tokensUpdated 1 mo ago
    Auto-check passed
  • Difesa Attacchi

    ccplugins/awesome-claude-code-plugins

    Aggiunge a un sito/app un agente di difesa che rileva e blocca richieste malevole (SQL injection, XSS, path traversal, brute force, bot) con rate limiting, blocklist IP e modalità lockdown che…

    967 GitHub stars~781 tokensUpdated 1 mo ago
    Auto-check passed

Questions about Fact Checker

What does Fact Checker do?

Anti-hallucination discipline for any code that names an external symbol you aren't certain exists — a library function, method, config key, package version, CLI flag, env var, or endpoint. Fact Checker is an agent skill from ccplugins/awesome-claude-code-plugins. Anti-hallucination discipline for any code that names an external symbol you aren't certain exists — a library function, method, config key, package version, CLI flag, env var, or endpoint.

When should I use Fact Checker?

Fact Checker fits situations like: the user says fact-check; verify this exists; did you make that up; no hallucinations.

How do I install Fact Checker in Claude Code?

Run `npx skills add ccplugins/awesome-claude-code-plugins --skill fact-checker -a claude-code`. Or copy the skill folder (plugins/bullpen/skills/fact-checker in ccplugins/awesome-claude-code-plugins) into .claude/skills/fact-checker in your project. Claude Code loads it when a task matches its description.

How do I install Fact Checker in Codex?

Run `npx skills add ccplugins/awesome-claude-code-plugins --skill fact-checker -a codex`. Or copy the skill folder (plugins/bullpen/skills/fact-checker in ccplugins/awesome-claude-code-plugins) into .agents/skills/fact-checker in your project. Codex loads it when a task matches its description.

Can I use Fact Checker in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ccplugins/awesome-claude-code-plugins --skill fact-checker -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/fact-checker, .gemini/skills/fact-checker, .github/skills/fact-checker and .opencode/skills/fact-checker in your project.

What does Fact Checker need to run?

SKILL.md names no scripts, command-line tools or credentials: Fact Checker is instructions for the agent only.

Does Fact Checker access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Fact Checker safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Fact Checker use?

Fact Checker is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Fact Checker use?

About 1.4k tokens (SKILL.md is roughly 5.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Fact Checker?

Skills that share tags, products or a category with Fact Checker: Githits Code (githits-com/githits-cli, 114 stars), Phyai Communicate With Memory (mingti-org/phyai, 128 stars), Fact Checker (daymade/claude-code-skills, 1.4k stars) and Dep Updates (trufflesecurity/trufflehog, 28k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Fact Checker?

ccplugins (a GitHub organization) maintains it in ccplugins/awesome-claude-code-plugins, which has 967 GitHub stars. The repository holds 68 skills in this directory. The repository was last updated on August 12, 2026.

Source: ccplugins/awesome-claude-code-plugins on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.