/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
$ npx -y skills add rohitgehe05/mindpowers --skill fact-checking --agent claude-codeHow 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.mdname: 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
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
Your AI should ask better questions before it writes. Most AI writing tools turn ambiguity into polished prose.
Repo: rohitgehe05/mindpowers
Other skills on mindpowers.
- /calibrating
Use after a knowledge-work deliverable ships or gets human edits. Triggers on "that draft worked", "they rewrote half of it", "remember this for next time", or when the user returns with feedback on a shipped doc. Not for code retrospectives.
Open skill - /drafting
Use when a mindpowers spec exists and the user wants the actual deliverable written, such as "draft it", "write the memo from the spec", or right after mindstorming locks a spec. Not for code; not for drafting without a spec (offer mindstorming first).
Open skill - /mindstorming
Use before drafting any non-code knowledge-work deliverable, including strategic memos, business reviews, OKR defences, PRDs, decision docs, briefing docs, exec talking points, Slack messages to leadership, frameworks, post-mortems, one-pagers, BRDs. Triggers on asks like "help
Open skill - /reviewing-docs
Use when the user has a finished or near-finished document (memo, business review, PRD, decision doc, briefing, comms, framework, talking points, post-mortem) and wants it pressure-tested before it ships, such as "review this doc", "poke holes in this", "is this ready to send".
Open skill - /validating-problems
Use when a user wants to test, sharpen, frame, or gather evidence for a customer or business problem before pitching a direction, prioritising work, or writing a PRD.
Open skill

