Fact Check logo

Fact Check

OrganizationPopular
THU-MAIC
fact-check

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.

Overview

PublisherTHU-MAIC
RepositoryOpenMAIC
Skill namefact-check
Stars
37.6K
Forks
5.9K
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by THU-MAIC on GitHub. Read the source before you install it.

Installation

Install the Fact Check AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/THU-MAIC/OpenMAIC.git /tmp/OpenMAIC
mkdir -p .claude/skills
cp -r /tmp/OpenMAIC/skills/agent-runtime/fact-check .claude/skills/fact-check
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Fact Check in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Fact Check on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Fact Check is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

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.

Frequently asked questions

What does the Fact Check AI skill do?

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.

Why use Fact Check on TypingMind?

Because you install it once and use it with any model. Fact Check is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Fact Check in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/THU-MAIC/OpenMAIC/tree/main/skills/agent-runtime/fact-check. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Fact Check?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Fact Check?

As many as you like. As long as a model supports skills, you can use Fact Check with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Fact Check AI skill free?

Yes. It is published on GitHub by THU-MAIC under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇