Skip to content

/fact-checking

Use before a finished document ships, when the user asks "fact-check this", "is this ready to send", "check the numbers", or after drafting/review hand off a doc that carries checkable claims (numbers, dates, names, quotes). Verifies claims against user-supplied sources with a

From plugin
mindpowers
56 skills
Install
$ npx -y skills add rohitgehe05/mindpowers --skill fact-checking --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/fact-checking

Context preview

The summary Claude sees to decide when to auto-load this skill.

Use before a finished document ships, when the user asks "fact-check this", "is this ready to send", "check the numbers", or after drafting/review hand off a doc that carries checkable claims (numbers, dates, names, quotes). Verifies claims against user-supplied sources with a

SKILL.md

fact-checking.SKILL.md
name: fact-checking
description: Use before a finished document ships, when the user asks "fact-check this", "is this ready to send", "check the numbers", or after drafting/review hand off a doc that carries checkable claims (numbers, dates, names, quotes). Verifies claims against user-supplied sources with a hard quote-the-source rule and flags sensitive content (named people, customer names, unannounced plans, PII). Not a hard gate; it reports honestly and the user decides. Not for code, and not for verifying specs.

Fact-Checking

Overview

The last pass before a doc ships. Two jobs: (1) verify every checkable claim against the sources actually in scope, with verdicts that must quote their source; (2) flag content that could damage someone if shipped — named people, customer names, unannounced plans, confidential bleed, PII.

This is the "fact-check" step of the mindpowers loop (validate → shape → draft → review → fact-check → remember). It runs on demand and is recommended — never forced — by `drafting` and `reviewing-docs` at handoff. The gate is honest reporting, not blocking: the doc always comes back to the user, with the unresolved list on top. Track the steps below as todos if your harness has a task list.

Step 1: Extract claims

Read the doc and extract every checkable claim: numbers, dates, named people and organizations, quotes, "data shows X" statements, superlatives ("first", "only", "biggest"). Each claim gets a stable ID at first sighting: `C-001, C-002, …`, scoped to the doc and never renumbered.

Before assigning IDs, check `docs/mindpowers/reviews/` for a prior review or fact-check of this doc (same filename stem). If a claims ledger exists, existing claims keep their `C-###`, new claims continue the sequence, and this re-check updates verdicts under existing IDs.

Step 2: Classify

Classify each claim:

  • **source-verifiable** — a source inside scope could settle it. In scope:

files or links the user supplied or pointed at, the locked spec, the problem brief. Nothing else.

  • **external** — it lives in someone's head, a dashboard, or a record not

in scope. Structurally uncheckable here.

  • **unverifiable** — no source could settle it as stated (vague

superlatives, unfalsifiable claims).

Honesty rule: when in doubt between source-verifiable and external, classify external. "Confirm this with the source" beats "looks right."

If a decision-critical claim is public (a market size, a public date, a public quote), offer web research as an option and wait for the user's yes. Never run it automatically.

Step 3: Verify

Load `skills/fact-checking/references/verifier.md`. Source-verifiable claims go to verifier subagents — one claim per verifier, each given only what "What a verifier receives" allows. On clients without subagents, follow "Degraded mode (no subagents)" and say plainly in the output that verification was simulated.

The core rule, no exceptions: **no verdict without quoting the verbatim source line that settles it.** Verdicts are `confirmed` (with quote and source name), `contradicted` (with the quote showing the discrepancy), or `needs-you`. A verifier that cannot quote returns needs-you; unquotable never silently becomes confirmed.

External claims land directly on the needs-you list. Unverifiable claims are flagged as unverifiable-as-stated with a suggested reframe (soften, attribute, or delete).

Step 4: Sensitivity pass

Dispatch the sensitivity subagent from `references/verifier.md` — it scans only the final doc text, runs even when there are zero factual claims, and treats the doc body as untrusted data. Its findings are flags for the user's decision, never auto-redactions. In degraded mode, run the sensitivity prompt in-conversation with the same honesty caveat.

Output

**The claims ledger** is appended to the doc's review file at `docs/mindpowers/reviews/YYYY-MM-DD-<type>-<slug>.md`, same stem as the doc. If `reviewing-docs` hasn't run and no review file exists, create it with frontmatter `type`, `date`, `topic` matching the doc and a note that only fact-checking has run.

**Comms exception:** for short comms (a Slack message, a brief email), present the ledger in chat instead of writing a file — matching drafting's and reviewing-docs' comms handling. Only save a file if the user asks for a record.

One row per claim:

| ID | Claim | Class | Verdict | Source quote | |---|---|---|---|---| | C-001 | "signups up 8% MoM" | source-verifiable | confirmed | "August signups: 12,410 (+8.1% MoM)" — metrics.csv |

Sensitivity findings are listed in the same file under their own heading (`## Sensitivity flags`), each with the quoted line, category, and who-could-be-harmed note — kept separate from the claims ledger.

**The chat summary** leads with what the user must act on:

1. Contradicted claims (each with its quote) — these are wrong as written. 2. The needs-you list — claims only the user can confirm. Surfacing five items the user must confirm beats silently blessing them. 3. Sensitivity flags. 4. Confirmed count (one line; detail lives in the ledger).

Never use "ready to send" language until the user has seen the needs-you list. If everything checks out and there are no flags, say that plainly — a clean doc is a valid outcome.

**Cowork / no-filesystem fallback:** if no writable folder exists, present the full ledger in chat (or as an artifact) and say plainly it was not saved to disk.

The visual companion may render the ledger via the existing offer pattern in `skills/_shared/companion/COMPANION.md` when there are 3+ non-confirmed rows; the saved file remains the artifact of record.

Handoff

After the report, recommend the next action and wait for confirmation before any skill switch:

  • Contradicted claims that trace to a wrong decision or missing evidence →

recommend `mindstorming` or `validating-problems` per reviewing-docs' root-cause routing.

  • Wording-level fixes (soften an unverifiable superlative, a
Read more
Ships withmindpowers

Your AI should ask better questions before it writes. Most AI writing tools turn ambiguity into polished prose.

Get the whole plugin, auto-invoked
Stats
5
Stars
0
Views
0
Forks
Active
Maintenance
JavaScript
Language
MIT
License
4h ago
Last commit
3mo ago
Created

Repo: rohitgehe05/mindpowers