Install
openclaw skills install fact-check-verifyThis skill should be used when the user asks to "fact check", "verify this", "is this true", "check the facts", "validate claims", "are these field names correct", "is this API still current", "驗證", "是真的嗎", "確認資訊正確", or when output contains version numbers, API references, model names, dates, or technical claims that could be outdated.
openclaw skills install fact-check-verifyVerify that every claim, reference, and technical detail is backed by current evidence. AI models have training data cutoffs and frequently hallucinate version numbers, API signatures, field names, CLI flags, and dates. This skill provides a systematic process to catch these errors before they reach users.
AI models commonly produce these types of false information:
| Category | Example of Hallucination |
|---|---|
| Model names/versions | Referencing "GPT-5" or "Claude 4" when they don't exist yet |
| API field names | Writing likeCount when the real API returns like_count |
| CLI flags | Using --recursive when the tool only supports -r |
| Library methods | Calling .transformAll() on a library that has no such method |
| Dates | Getting today's date wrong, or citing a "2024 release" that happened in 2025 |
| SDK versions | Referencing v2.0 features when the latest is v1.8 |
| Repo structure | Claiming a file exists at a path where it doesn't |
| Default values | Stating "default is 100" when the actual default is 50 |
For every piece of output that contains technical claims, run this process:
Scan the output and tag every verifiable claim:
| Classification | Meaning | Action |
|---|---|---|
| Verified | Confirmed by tool output, API call, or file read | Mark with evidence source |
| Unverified | Not yet checked | Must verify before output |
| Unverifiable | Cannot be checked with available tools | Label clearly as unverified |
| Stale | Based on information older than 6 months | Re-verify from current source |
For each unverified claim, use the appropriate verification method:
| Claim Type | Verification Method |
|---|---|
| File exists at path | ls /path/to/file or Read tool |
| Function/method exists | grep -r "function_name" /path/to/repo |
| API field name | Make a real API call and inspect the response |
| CLI flag exists | command --help or man command |
| npm package version | npm info package-name version |
| Python package version | pip show package-name |
| GitHub repo info | gh repo view owner/repo |
| PR/Issue status | gh pr view NUMBER --repo owner/repo |
| Current date | date command |
| URL is reachable | curl -s -o /dev/null -w "%{http_code}" URL |
| Git branch/tag exists | git ls-remote --tags origin |
After verification, every claim in the output should be one of:
npm info output")curl -s -o /dev/null -w "%{http_code}" URL before recommending-o /dev/null), don't fetch or render content from untrusted sources (phishing/malware risk)date if you reference it--help or docs to confirm CLI flags existgh commands, not from memorygh pr checks)gh pr view)AI models are frozen at their training cutoff. Always verify:
# Check latest version of a package
npm info @anthropic-ai/sdk version
pip show openai | grep Version
gh release list --repo owner/repo --limit 3
Never guess API response field names. Always run the API and read the actual response:
# Real API call to verify field names
curl -s "https://api.example.com/endpoint" | jq '.[0] | keys'
The most dangerous hallucination. "I did it" when the work is incomplete:
| What was said | What it actually means | How to verify |
|---|---|---|
| "Pushed successfully" | Git push worked | gh pr checks — is CI green? |
| "Responded to review" | Committed a change | Does the new code actually fix the issue? |
| "Found 10 problems" | Listed 10 items | Read the code for each — do they exist? |
| "PR has been reviewed" | Someone looked at it | gh pr view --json reviews — what's the count? |
Referencing things that don't exist:
# Verify a file exists before referencing it
ls /path/to/claimed/file
# Verify a function exists in a codebase
grep -r "functionName" src/
# Verify an npm package exists
npm info claimed-package-name
AI models often get dates wrong, including today's date:
# Always verify current date
date "+%Y-%m-%d"
# Check when a release was published
gh release view v1.0.0 --repo owner/repo --json publishedAt
AI models will fabricate plausible-looking URLs when they don't know the real one:
| Fabricated URL | Why it looks right | Actual URL |
|---|---|---|
https://auth.openai.com/activate | Follows common OAuth patterns | https://auth.openai.com/codex/device |
https://docs.clawhub.ai | Standard docs subdomain | Does not exist (returns 404) |
https://api.example.com/v2/schema | Common API convention | Endpoint may not exist |
Prevention:
curl -s -o /dev/null -w "%{http_code}" URL first.auth.openai.com/activate vs auth.openai.com/codex/device — one character path difference, completely different endpoints.When fact-checking, produce a report like this:
## Fact Check Report
| # | Claim | Status | Evidence |
|---|-------|--------|----------|
| 1 | "API returns `like_count`" | Verified | Real API run, dataset abc123 |
| 2 | "Latest version is v2.3" | Corrected → v2.5 | `npm info package version` |
| 3 | "Supports `--recursive` flag" | Unverified | Cannot test without install |
| 4 | "Default timeout is 30s" | Verified | Source code line 42 |