Fact-Checking skill for Codex

Trace every claim back to where it started. Codex extracts every checkable claim from a draft, follows each statistic, quote or technical statement back to its original source, and compares the exact wording for shifted scope, stale numbers and dropped qualifiers. Verdicts use a fixed scale that keeps unverifiable separate from false, and each comes with the smallest edit that would make the sentence accurate.

  • Research
  • $fact-checking
  • 142 lines
  • 2 files
  • ~1,550 tokens
  • MIT
  • Updated

Install

curl -fsSL codexskills.dev/install.sh \  | sh -s -- fact-checking

Installs to ~/.agents/skills/fact-checking/ for every project on this machine.

104-line POSIX script. No sudo, no telemetry. Read install.sh

Use it in Codex

Start a prompt with $fact-checking, or pick it from /skills. You can also just describe the task: Codex reads the description below and loads the playbook when your request matches.

What Codex reads before loading it

Verifies specific claims, statistics, quotes and images by tracing each one to its original source with lateral reading, archive lookups and primary data, then rates it on a fixed verdict scale (accurate, mostly accurate, misleading, false, unverifiable) with evidence. Use when asked to fact-check a draft, blog post, deck, README or press release, verify a statistic or quote, check whether a source is credible, or confirm a claim before it ships.

Use it when

  • A draft, deck or press release cites numbers, quotes or 'studies show'
  • You need to know whether a widely shared statistic is real
  • A technical claim about a tool or version must be confirmed before it ships

Use something else when

  • The question is open-ended and needs a researched answer, not verdicts: use deep-research
  • You need to format or manage the reference list itself: use citation-management

How to check the result

Every claim has a verdict linked to its origin source, unverifiable claims list what was searched, and suggested corrections match the source wording on re-read.

The mistake it prevents

Rating a claim false because no support turned up quickly; absence of evidence is unverifiable, not false.

~/.agents/skills/fact-checking/SKILL.md

--- name: fact-checking description: Verifies specific claims, statistics, quotes and images by tracing each one to its original source with lateral reading, archive lookups and primary… license: MIT ---

A fact-check is done when every checkable claim has a verdict, each verdict cites the source closest to the origin of the fact, and a reader could repeat the check from your notes. “I could not verify this” is a valid and useful verdict; a confident guess is not.

Workflow

- [ ] 1. Extract checkable claims from the text
- [ ] 2. Prioritise by impact
- [ ] 3. For each claim: trace to origin, compare, rate
- [ ] 4. Propose corrections in the author's voice
- [ ] 5. Deliver the claim table and a corrected draft (if asked)

Network access is required for almost every check. In a Codex sandbox with network off, extract and prioritise claims, then ask for live web search (--search or web_search = "live") before rating anything.

1. Extract claims

Pull out every statement that could be shown true or false. Skip opinions and predictions, but flag predictions presented as facts.

Claim typeExampleWhat to check
Statistic“73% of developers use AI assistants”Original survey, sample, question wording, year
Attribution / quote“As Knuth said, …”Primary text or recording; misattribution is common
Causal“X caused the outage”Postmortem or data, not correlation
Comparative“fastest JSON parser for Node”Benchmark method, date, versions
Temporal“since 2019”, “the first to”Earliest primary record; “first” claims are often false
Technical“Postgres supports MERGE”Docs for the stated version
Image / chartScreenshot of a tweet, graphReverse image search, original post, axis scales

Number them C1, C2, … and keep the exact wording.

2. Prioritise

Check first the claims that are central to the argument, numeric, surprising, or reputational (about named people or companies). Low-impact background facts get a quick check; central statistics get a full trace.

3. Trace, compare, rate

Use lateral reading: leave the page and see what other sources say about the source and the claim, instead of judging a page by how it looks.

For each claim:

  1. Find the origin. Follow links and citations back until you reach the dataset, document, study, filing or recording that first stated it. Note each hop.
  2. Check the source. Who published it, what is their interest, what is the method, when was it published, has it been corrected or retracted?
  3. Compare wording. Does the claim say exactly what the origin says? Watch for changed populations (“US developers” became “developers”), changed units, rounded numbers, dropped qualifiers (“up to”, “in our sample”), or old figures presented as current.
  4. Seek independent confirmation for central claims: a second source that did not copy the first.
  5. Rate using the scale below.

Useful tools:

  • Archived and deleted pages: https://web.archive.org/web/*/example.com/page*
  • Exact quotes: search the quote in double quotes plus the supposed speaker; check books via publisher previews or library catalogues.
  • Images: reverse image search (Google Lens, TinEye, Bing), then look for the earliest upload; check EXIF only if the original file is available.
  • Statistics: national statistics offices, regulator filings (SEC EDGAR), survey publishers’ methodology pages.
  • Code and tech claims: the documentation for the exact version, changelogs, or run it.

Verdict scale

VerdictMeaning
AccurateMatches the origin in substance and scope
Mostly accurateRight in substance; minor imprecision (rounding, date) that does not change meaning
MisleadingTechnically traceable but scope, context or framing changes the meaning
FalseContradicted by the best available evidence
OutdatedWas true; newer data says otherwise
UnverifiableNo primary source found after a reasonable search; say what was searched

Never mark a claim false because you could not find support. That is “unverifiable”.

4. Corrections

Propose the smallest edit that makes the sentence accurate, keeping the author’s voice:

C3 original: "Over 90% of companies now use Kubernetes."
Issue: The CNCF 2024 survey reports usage among its respondents (cloud native
practitioners), not all companies.
Suggested: "Among respondents to the CNCF's 2024 survey, most organisations reported
using Kubernetes in production."

If a claim cannot be fixed, recommend cutting it.

Gotchas

  • Circular sourcing: articles citing each other with no origin. If every trail ends at another article, the claim is unverifiable.
  • Survey statistics: check who was asked (vendor’s customers? self-selected readers?), sample size, and question wording before accepting the percentage.
  • “Studies show” with no study: ask the author for the source rather than guessing which one they meant.
  • Quote sites and social posts misattribute constantly. Accept a quote only from a primary text, transcript or recording.
  • Screenshots are trivial to fake. Treat a screenshot as a pointer to the original post.
  • Dates: “last year” and “recently” must become absolute dates in the published text.
  • Claims about private individuals: check only what the task needs, do not compile personal information beyond the claim.
  • For a broad open question rather than a list of claims, use $deep-research.

Verification

  • Every claim in the source text appears in the table, or is listed as skipped with a reason.
  • Each verdict links to the origin source, not to an intermediary.
  • Re-read each suggested correction against the source one last time.
  • Count verdicts and report them so the author sees the overall picture.

Output template

# Fact-check: <document title>
Checked <date>. <n> claims: <a> accurate, <b> mostly accurate, <c> misleading,
<d> false, <e> outdated, <f> unverifiable.

| # | Claim (as written) | Verdict | Origin source | Notes / correction |
|---|---|---|---|---|
| C1 | "..." | Accurate | <title, publisher, date, URL> | - |
| C2 | "..." | Misleading | <...> | Survey of 412 vendor customers, not "developers". Suggested: "..." |

## Unverifiable claims and what was searched
- C7: searched <databases / queries>; no primary source. Ask author for the source or cut.

What the zip contains

SKILL.md plus the interface file below. Nothing runs on install.

agents/openai.yamlgenerated from this page

Gives the Codex app a display name, a one-line description and a starter prompt for this skill.

interface:
  display_name: "Fact-Checking"
  short_description: "Trace every claim back to where it started"
  default_prompt: "$fact-checking Fact-check the statistics in this blog post draft before we publish"

About this skill

Written and maintained by the Codex Skills editors to the same editorial standard as every skill here: a selective description, a real workflow, known pitfalls and a way to verify the work. First published , last updated . MIT licensed. Something wrong or out of date? Tell us.

esc
Just launched

Codex Skills Pro is live

79 premium skills for Codex, each with scripts, references and an evidence report that proves the result.

Bought one by one$882.21
All 79 skills$49
94% off

That's $0.62 a skill, paid once.

Get all 79 for $49Or pick single skills from $4.99 →

Secure checkout by Creem