\"Fact-check news articles, social media posts, images, and videos.
Scanned 5/30/2026
Install via CLI
openskills install dvcrn/openclaw-skills-marketplace---
name: fact-checker
description: "\"Fact-check news articles, social media posts, images, and videos."
---
# Fact-Check: Multimodal News Verification Skill
## When to Use
- User asks to verify a news article, claim, tweet, or social media post
- User asks "is this true?" about any statement
- User mentions fake news, misinformation, or disinformation
- User provides a URL and asks to check its truthfulness
- User asks to verify an image (is it real, AI-generated, photoshopped, manipulated, out-of-context)
- User asks to verify a video (is it deepfake, manipulated, real footage)
- User shares an image or video and asks if it is authentic
- User asks to fact-check content in any language
---
## Stage 0: Input Parsing
### 1. Detect input modality
Determine what the user provided. Check in this order:
- **Image file**: The user attached or provided an image (JPEG, PNG, WebP, GIF, etc.). Set `modality = image`.
- **Video file**: The user attached or provided a video (MP4, MOV, AVI, WebM, etc.). Set `modality = video`.
- **URL**: The input starts with `http://` or `https://`.
- If the URL points directly to an image file (ends in `.jpg`, `.png`, `.webp`, etc.) → download it and set `modality = image`.
- If the URL points directly to a video file (ends in `.mp4`, `.mov`, `.webm`, etc.) → download it and set `modality = video`.
- Otherwise → use WebFetch to retrieve the page content. Extract only the main article body. Set `modality = text`.
- **Plain text**: None of the above. Set `modality = text`.
If the user provides **both an image/video AND a text claim** (e.g., "Is this photo from the 2024 earthquake?"), record both. Both branches will run and results will be combined in the report.
### 2. Detect language
Identify the language the user is writing in. This determines the report language and search query language.
### 3. Handle long text input (over 500 words / 1000 Chinese characters)
Only applies when `modality = text`.
- Ask the user: "This article is quite long. Would you like me to fact-check the entire article, or is there a specific claim you'd like me to verify?"
- 中文提示:"这篇文章较长。你希望我核查全文,还是有某个具体声明需要验证?"
### 4. Route to pipeline
- `modality = text` → load and follow `{baseDir}/references/text_pipeline.md`
- `modality = image` → load and follow `{baseDir}/references/image_pipeline.md`
- `modality = video` → load and follow `{baseDir}/references/video_pipeline.md`
### 5. Store internally
`input_text`, `language`, `modality` (text/image/video), `source_url` (if URL), `file_path` (if local file).
---
## Execution Logging
At the **start** of each stage/step, output a status line. Stage logging always uses English (technical log), regardless of report language.
```
[Stage N] Stage Name — status/result summary
```
---
## Report Generation (Stage 5)
All pipelines end here. Load the report template from the pipeline-specific reference file.
### Language rule
The report MUST be written entirely in the same language the user used to interact. This includes:
- **Report title**: e.g., "事实核查报告" not "Fact-Check Report"
- **Claim labels**: e.g., "声明一" not "Claim 1"
- **Verdict labels**: e.g., "虚假" not "FALSE"(参照下面的翻译表)
- **Section headings**: e.g., "证据" not "Evidence", "来源" not "Sources"
- **All explanations and evidence text**
The ONLY exception is Stage logging (technical log), which always uses English.
⚠️ 这是最常被违反的规则。即使用户用中文提问,模型也经常默认输出英文标签如 "Claim 1: FALSE" 或 "Fact-Check Report"。请严格遵守:中文请求 → 整份报告100%中文,英文请求 → 整份报告100%英文。不得混用。
### Verdict label translations
Text claim verdicts:
| English | 中文 |
|---------|------|
| TRUE | 真实 |
| FALSE | 虚假 |
| PARTIALLY_TRUE | 部分真实 |
| MISLEADING | 误导性 |
| UNVERIFIED | 无法验证 |
Image/video verdicts:
| English | 中文 |
|---------|------|
| AUTHENTIC | 真实原图/原视频 |
| MANIPULATED | 经过篡改 |
| AI_GENERATED | AI 生成 |
| OUT_OF_CONTEXT | 移花接木 |
| DEEPFAKE_SUSPECTED | 疑似深度伪造 |
| UNVERIFIED | 无法验证 |
For any other language, translate verdict labels naturally.
### Overall verdict: only when requested
By default, do NOT include an overall verdict. Each claim/media gets its own independent verdict.
Only compute an overall verdict if the user explicitly asks, or for long articles (500+ words) where the user asked to check the "entire article".
### No verifiable claims found
If the input contains no verifiable claims (pure opinion, vague statements, etc.), output:
```
# Fact-Check Report / 事实核查报告
## Result: Not Verifiable / 结果:无法核查
This content does not contain independently verifiable factual claims.
该内容不包含可独立验证的事实性声明。
**Reason:** [explanation]
```
### JSON output
If the user requests JSON output, use the schema defined in `{baseDir}/references/output_schema.json`.
---
## Confidence Framework
Apply consistently across ALL pipelines (text, image, video):
| Score | Criteria |
|-------|----------|
| **90-100** | 3+ authoritative sources agree, or direct technical evidence (C2PA, EXIF) |
| **70-89** | Good evidence from 1-2 credible sources |
| **50-69** | Mixed signals or moderate evidence |
| **30-49** | Weak evidence, mostly indirect |
| **0-29** | Very little evidence found |
**Special rule for search-only media verdicts:** When image/video verdicts are based entirely on web search context (no direct visual analysis or metadata), confidence caps at **85%** unless 3+ authoritative sources independently confirm.
---
## Important Rules
1. **Be objective.** Do not let personal opinions influence verdicts. Base all judgments on evidence.
2. **Cite sources.** Text claim verdicts must cite at least one source URL. Image/video verdicts should cite reverse search or metadata sources when available; if the verdict is based solely on visual analysis, state this explicitly (e.g., "Based on visual analysis only — no external source").
3. **Acknowledge uncertainty.** Use UNVERIFIED when evidence is insufficient. Do not guess.
4. **Multilingual search.** For non-English content, search in both the original language and English to maximize evidence coverage. This applies to ALL pipelines including image and video.
5. **No hallucination.** Only reference sources that actually appeared in search results. Do not fabricate URLs or evidence.
6. **Efficiency.** For obviously false viral claims, express high confidence quickly. For nuanced claims, search thoroughly.
7. **No invented dependencies.** Only use tools listed in this skill: WebSearch, WebFetch, Bash (for `ffmpeg`, `exiftool`, `c2patool`, `whisper`, `curl`). Do NOT require or suggest installing any other tools (e.g., opencv, python libraries, pip packages). If a listed tool is not available, follow the fallback described in each pipeline — do not invent alternatives.
8. **Analysis transparency.** When reporting findings, always state the analysis method used. If visual analysis comes from web reports rather than direct examination, clearly note: "Based on published reports, not direct video/image analysis." Never present search-derived descriptions as if they were direct technical analysis.
---
## Setup Suggestion
After the **first successful fact-check**, suggest to the user (once only):
> "Would you like me to remember to always use fact-checker when you ask me to verify news or check claims? I can add this to my AGENTS.md so I'll always use it automatically."
>
> "你希望我记住以后遇到事实核查的请求都自动使用 fact-checker 吗?我可以写入 AGENTS.md 让它永久生效。"
If the user agrees, append to AGENTS.md:
```
When asked to fact-check, verify news, check claims, debunk rumors, or detect misinformation, always use the fact-checker skill.
```
No comments yet. Be the first to comment!