fact-check

Checks if facts in your course or content are correct and fixes errors before you share it.

Installation
Run `npx skills add "https://github.com/thu-maic/openmaic" --skill "fact-check"` to install this skill, then follow its SKILL.md instructions for my next request.

Paste this into Claude Code, Cursor, or any agent that can run commands.

What this skill does
What it does: - Checks course content to find and fix factual errors and false information - Verifies important claims like dates, numbers, names, and technical definitions - Identifies contradictions between different parts of a course - Helps make sure the course is reliable and trustworthy When to use it: - When you are creating a new course and want to make sure all the facts are correct - When you are reviewing an existing course and want to find mistakes - When you want to reduce false or made-up information in educational content - When you need to verify that technical definitions and formulas are accurate
SKILL.mdShow the author's original SKILL.md (not in English)
---
name: fact-check
title: "事实核查"
description: "Improve factual reliability while creating or reviewing a course or supplied content. Use when the user asks to fact-check, verify accuracy, reduce hallucinations, make a reliable course, or mentions 事实性错误、知识性错误、专业知识准确性、可靠性. During creation, checks the completed pages before delivery; on existing content, returns a short evidence-backed report and lets the user choose what to fix. Not for grammar, style, or layout. Combine with deep-research when current evidence is the course's main subject."
---

# Fact check

Keep serious factual mistakes and AI hallucinations out of the course without
turning course-making into an exhaustive audit. Focus on the few claims that
materially affect trust.

Choose the mode from the request and current course state; do not ask the user
to choose a mode:

- **Creating:** when there is no course yet or the user asks to build/rebuild
  one, load `stage-design` and run the check only after all pages exist.
- **Reviewing:** when content already exists and the user asks to inspect it,
  report findings first. Do not edit unless fixes were already requested or the
  user approves findings after the report.

## While creating a course

Use the normal `stage-design` workflow; this skill changes factual handling,
not the teaching method, page style, or build sequence.

After all pages exist, call `list_scenes`, then read every completed page with
`read_stage` using `detail:"text"`; follow `nextOffset` until all visible text
and narration have been read. Run a quick final sanity check of exact facts and
cross-page contradictions. Correct obvious errors before delivery because
creating the course already authorizes making its content accurate, subject to
the source-of-truth boundary below. Do not interrupt creation with a separate
audit report or approval gate unless that boundary requires a user decision;
briefly mention only material corrections or remaining uncertainty when
handing off the finished course.

## When reviewing existing content

For a course, call `list_scenes`, then read all visible text and narration with
`read_stage` using `detail:"text"`; follow `nextOffset` until complete. Respect a
narrower scope if the user gave one.

Read once for context and silently shortlist high-signal risks:

- exact numbers, dates, counts, names, and attributed quotations;
- laws, standards, formulas, technical definitions, and classifications;
- “first”, “only”, “always”, “must”, and similar absolute claims;
- causal or professional conclusions stated as settled fact;
- contradictions between pages;
- suspiciously specific claims with no visible support.

Do not verify every claim. Skip correct material, wording preferences, harmless
simplifications, and low-value trivia.

## Verify only the shortlist

Check `list_materials` and relevant `read_material` content first. User sources
may support a claim, but the course being checked cannot prove itself.

Use `web_search` for shortlisted claims that depend on current, exact, disputed,
or specialist knowledge. A normal first pass should need no more than about
6–8 searches. Use `fetch_url` to read the source: a result snippet or the mere
existence of a related source is not evidence.

Do not pause the run to ask the user for sources, permission to use general
knowledge, or permission to continue. Use the tools and materials that are
available. If web search is unavailable, continue with stable knowledge, make
fewer factual commitments, and mark genuinely uncertain claims. Never guess a
URL for `fetch_url`; fetch only a user-provided URL or one returned by
`web_search`.

For a compound statement, isolate the questionable part and verify that exact
part. Prefer primary or official sources. One authoritative source is enough
for an obvious error; add corroboration only for disputed or high-impact
claims. For versioned knowledge such as law, policy, standards, or medicine,
check the relevant date, version, and jurisdiction.

“No reliable evidence found” does not mean false. If verification remains
inconclusive, say so rather than inventing a verdict or correction.

## Preserve approved inputs

Do not make a correction that would materially conflict with the settled
course plan, user-uploaded materials, or facts already supplied to generation
through `materialFacts`. Treat these as approved inputs, not ordinary generated
copy.

If the evidence indicates that an approved input itself may contain a factual
error, do not edit the affected course content or silently override the input.
Use `ask_user` to flag the input conflict, state the affected page or claim and
the contrary evidence concisely, and offer options to keep the approved input,
authorize the factual correction, or review the conflict without editing. Put
the warning in the `ask_user` prompt so it appears in the choice card, not only
in the preceding report. This protection applies even when edits were otherwise
authorized. It does not block corrections to errors introduced independently
by generated page content.

## Give a short, readable review report

In review mode, return roughly 3–8 useful findings in the first pass, or fewer
when fewer exist. Group them under these bold plain-text labels, in this order,
and omit an empty group. Keep them at normal body-text size: do not prefix them
with Markdown heading markers such as `#` or `##`.

- **A. 明确事实错误**
- **B. 表述不严谨**
- **C. 需要核实** — include only when the claim matters

Within the groups, number findings consecutively across the whole report with
Arabic numerals. Give every finding a short bold line containing its number,
page/location, and specific issue, for example:
`**1. 第 5 页|测验解析|知识混淆**`. Do not use Markdown heading markers for
finding titles either.

Under each heading, use exactly three bullets:

- **原始表述:** quote only the relevant sentence or fragment;
- **存在问题:** explain the error and the correct fact in plain language;
  include a concise source and date here when useful;
- **修改建议:** give only the edit action or a compact replacement.

Keep each bullet to one or two short sentences. Do not repeat the same fact or
quotation across bullets. If **存在问题** already gives the applicable rule or
correct wording, **修改建议** should only state the change — for example,
“按上述条文改写,删除‘商业秘密、法人’” — instead of quoting the article again.

Do not show scores, confidence percentages, lengthy methodology, correct
claims, or minor style issues. Do not pad the report to reach a quota. If no
material issue is found, say what scope was scanned and that no obvious error
was found; do not claim the content is perfectly accurate.

## Let the user choose after a review

When there are actionable findings and edits were not already authorized, the
last action of the turn must be an `ask_user` tool call with a non-empty
`options` array. This is an interaction requirement: do not merely print option
ids or end a normal chat message with “which do you choose?”. Use concise labels
in the user's language, equivalent to:

- fix all reported issues;
- fix confirmed errors only;
- keep the report without changes.

Use stable option ids such as `fix_all`, `fix_confirmed`, and `keep`. The form's
free-text choice lets the user enter selected finding numbers such as `1, 3`.

An approved-input conflict always requires the separate `ask_user` choice
described above, even if the user previously authorized general corrections.

Do not patch before the answer. After approval, load `pro-editing`, read each
selected page with `read_stage` using `detail:"source"`, and change only the
approved claims. If narration changes, regenerate its audio as required by
`pro-editing`.

Mirrored from the author's public source. Install counts from the open skills registry.

The systems behind these skills get built for partners every week.

Partner with us