From forager-skills
Verifies claims by searching for supporting and contradicting evidence, then delivers a clear verdict with confidence level and sources. Automatically activates on fact-check requests.
How this skill is triggered — by the user, by Claude, or both
Slash command
/forager-skills:fact-checkThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill verifies a specific claim by searching for evidence on both sides,
This skill verifies a specific claim by searching for evidence on both sides, evaluating source quality, and delivering a clear verdict.
Search — run the packaged Web Forager CLI with uvx:
uvx --python '>=3.10,<3.14' web-forager search "your query" --max-results 8 --output-format json
If uvx cannot run the packaged CLI, use a direct ddgs fallback through uv without
touching the current project environment:
uv run --no-project --python '>=3.10,<3.14' --with 'ddgs>=9.5.2' python - <<'PY'
from ddgs import DDGS
results = DDGS().text(query="your query", max_results=8)
for r in results:
print(r["title"], r["href"], r["body"])
PY
Fetch — call Jina Reader directly to get a URL as clean markdown:
curl -s "https://r.jina.ai/https://example.com"
Or in Python:
import requests
content = requests.get(f"https://r.jina.ai/{url}").text
If MCP search/fetch tools are available in the session (e.g., mcp__web_forager__search,
mcp__duckduckgo__search, or similar), prefer those over the above.
Identify the specific, verifiable claim. If the user's statement is vague or compound, break it into distinct claims and address each one. Restate the claim back to the user so they can confirm you understood it correctly.
Bad: "AI is taking over" (too vague to verify) Good: "OpenAI's revenue exceeded $3 billion in 2024" (specific, verifiable)
If the claim is inherently subjective or a matter of opinion ("React is better than Vue"), say so upfront — opinion claims can't be fact-checked, only contextualized.
Search for sources that would confirm the claim. Frame queries to find the claim stated as fact:
Now actively look for the other side. This is the step most people skip, and it's the most important one. Frame queries to find disagreement:
From both searches, pick the 2–4 most authoritative sources to fetch in full. Prioritize:
Weigh the evidence. Consider:
## Claim
> [The claim being checked, stated clearly]
## Verdict: [CONFIRMED / LIKELY TRUE / UNVERIFIED / DISPUTED / FALSE]
[2–3 sentence explanation of the verdict — why this rating, what the key evidence is]
## Evidence supporting the claim
- [Specific finding with source citation] — [Source Name](url)
- ...
## Evidence against the claim
- [Specific finding with source citation] — [Source Name](url)
- ...
(If no contradicting evidence was found, say so explicitly)
## Caveats
[Anything that limits confidence: old data, limited sources, nuance the binary
verdict doesn't capture]
## Sources
1. [Title](url) — [brief note on what this source is]
Be honest about uncertainty. "Unverified" is a perfectly valid result — it's better than guessing. If the evidence is mixed, say so and explain why.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub cyranob/web-forager --plugin forager-skills