From fact-checker
Automated fact-checking for AI-generated documents. Extracts verifiable claims and citations from text or files (Markdown, PDF, DOCX), verifies each claim via web search and headless-browser source retrieval (Puppeteer), runs verification tasks in parallel, and generates a comprehensive Markdown fact-check report. Use when a user wants to verify the accuracy of AI-generated content, check cited references, validate statistics or quotes, or audit a research report for factual correctness. Triggers on requests like "fact-check this document", "verify these claims", "check if the references are real", or "audit this report for accuracy".
npx claudepluginhub dobachi/claude-skills-marketplace --plugin fact-checkerThis skill uses the workspace's default tool permissions.
> **Language:** Respond in the user's language. If unclear, default to the language of the user's message.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Analyzes competition with Porter's Five Forces, Blue Ocean Strategy, and positioning maps to identify differentiation opportunities and market positioning for startups and pitches.
Language: Respond in the user's language. If unclear, default to the language of the user's message.
Automated, parallel fact-checking for AI-generated documents. Extract claims, verify them against real sources (via web search and headless browser), and produce a structured Markdown report.
1. Ingest document (read text/file, normalize to plain text)
2. Extract claims (identify checkable assertions and citations)
3. Verify claims (parallel: web search + headless browser fetch)
4. Evaluate evidence (score each claim)
5. Generate report (Markdown fact-check report)
The 5-phase workflow below. Use this when the user asks for a general fact-check or claim verification.
Activated when:
In this mode, apply the 7 verification dimensions defined in references/workflow.md:
| Dimension | Code | What it checks |
|---|---|---|
| Link Validity | D-LINK | HTTP status of all cited URLs |
| Source Content Matching | D-CONTENT | Field-by-field comparison of claims vs. source |
| Citation Granularity | D-GRANULARITY | Whether citations point to specific sections |
| Numeric Accuracy | D-NUMERIC | Exact match of numbers, dates, amounts |
| Fact/Speculation Distinction | D-FACTSPEC | Whether speculation is mixed with facts |
| Source Reliability | D-RELIABILITY | Tier (1-4) and ABC classification of sources |
| Cross-Section Consistency | D-CONSISTENCY | Contradictions between document sections |
The standard 5-phase workflow still applies, but each phase is augmented with dimension-specific steps as described below.
Determine input type and extract text:
Markdown / plain text in conversation -> Use directly. File path provided -> Read the file. For PDFs, use the Read tool (supports PDF). For DOCX, use python-docx or similar extraction.
Scan the document for verifiable claims. See references/workflow.md for detailed extraction criteria, claim types, and priority assignment.
For each claim, record: claim ID, exact text, type (factual / citation / statistic / quote / causal / comparative), cited source (if any), and priority (high / medium / low).
Focus on high-priority claims first. Skip subjective opinions and unfalsifiable statements.
When in Structured Checklist Mode, also extract:
Run verification for all claims concurrently using the Task tool with background agents. This allows the user to step away while verification proceeds.
Claim cites a URL:
node <skill-path>/scripts/fetch_page.js <url> --pdf <outdir>/<id>.pdf --text <outdir>/<id>.txt
Claim cites a paper/book (no URL):
Claim is a statistic or factual assertion (no citation):
When many URLs need fetching, create a manifest JSON and use batch_fetch.js:
# Create manifest
cat > /tmp/fc-manifest.json << 'MANIFEST'
{
"urls": [
{ "url": "https://example.com/article1", "id": "C1" },
{ "url": "https://example.com/article2", "id": "C2" }
]
}
MANIFEST
# Fetch all in parallel
node <skill-path>/scripts/batch_fetch.js /tmp/fc-manifest.json --outdir /tmp/fact-check-output --concurrency 4
The script produces results.json in the output directory with per-URL status, plus .pdf and .txt files for each successfully fetched page.
Launch one background Task agent per claim (or per batch of related claims):
For each claim or batch:
-> Task agent (background): verify claim using web search + fetch_page.js
-> Collect result when done
Aggregate all results before proceeding to report generation.
When in Structured Checklist Mode, perform these additional verification steps after the standard claim verification:
D-LINK — Link Validity Check:
batch_fetch.js to check all URLs in parallelresults.json and build an HTTP status table from the httpStatus fieldD-CONTENT — Source Content Matching:
D-GRANULARITY — Citation Granularity:
D-NUMERIC — Numeric Accuracy:
D-FACTSPEC — Fact vs. Speculation Distinction:
D-RELIABILITY — Source Reliability Classification:
D-CONSISTENCY — Cross-Section Consistency:
For each claim, assign a verdict based on the evidence found. See references/workflow.md for the full verdict scale:
Produce a Markdown report following the template in references/workflow.md. The report includes:
Save the report to the working directory as fact-check-report.md.
When in Structured Checklist Mode, append these sections after the standard report content:
See references/workflow.md for the detailed output format of each dimension table.
| Script | Purpose | Key Options |
|---|---|---|
scripts/fetch_page.js | Fetch single URL via Puppeteer | --pdf, --text, --screenshot, --timeout, --wait |
scripts/batch_fetch.js | Fetch multiple URLs in parallel | --outdir, --concurrency, --pdf, --text, --screenshot |
Both scripts use headless Chromium with a realistic user-agent to handle sites that block simple HTTP requests.
Prerequisites: Node.js and Puppeteer must be installed. Install with:
npm install puppeteer
<skill-path> with the actual path to this skill's directory when running scripts.