Research a topic in Claude and fact-check every claim
Ask a question and get an answer whose claims were checked by a step that did not write them. Research searches the web, a fact-check with fresh eyes drops any claim its source does not support, and the answer comes with links. It runs in an ordinary Claude chat through the connector.
3 steps in 3 stages · 3 subagents · a kit of 7 files
Free. Built in your browser; nothing is uploaded. No API key, no account.
How it runs
Steps in the same stage start at the same time. Each subagent gets only what its incoming edges carry, and a step in a fresh context never sees the reasoning of the steps before it. A gate decides whether the work passes, and a failed gate re-runs the work it checks.
- Stage 1
Research · Worker
sonnet · WebSearch, WebFetch
- Stage 2
Fact check · Checker
opus · WebSearch, WebFetch · fresh context
Gate: Every kept claim has a source that says it, and no kept claim is contradicted by a more reliable or more recent source.
- Stage 3
Answer · Writer
sonnet · WebFetch
Use it when
- You want an answer you can check, with sources.
- The topic is one where confident wrong answers are common.
- You are not a developer and use Claude in the browser or app.
Change these first
- Ask for the answer length and reading level you want.
- Name sources to prefer or avoid in your request.
Need a workflow built for your team? Fixed-price packages
What you get
An orchestrating SKILL.md, one Claude Code subagent per step with its own tools and model, and the same skill as a Cursor rule. Your agent runs it with its own subagents; nothing on this site calls a model.
- .claude/skills/research-and-fact-check/SKILL.mdorchestrator
- .claude/skills/research-and-fact-check/graph.skill.mdgraph source
- .claude/agents/research-and-fact-check-research.mdsubagent
- .claude/agents/research-and-fact-check-fact-check.mdsubagent
- .claude/agents/research-and-fact-check-answer.mdsubagent
- .cursor/rules/research-and-fact-check.mdcCursor rule
- README.mdreadme
--- name: research-and-fact-check description: "Researches a question on the web, fact-checks every claim against its source with fresh eyes, then writes a short answer with sources." --- # research-and-fact-check Researches a question on the web, fact-checks every claim against its source with fresh eyes, then writes a short answer with sources. This skill is a graph: each step has its own prompt and context, and only the payloads named below move between steps. ## Plan Run the stages in order. Every model step runs in its own subagent; do not do a step's work yourself. Only command steps and approvals are yours to run. Steps in the same stage do not depend on each other: start them together, in one message with several subagent calls. The input (`question`) is the user's goal: their request, word for word, handed on under `### question`. Ask for it if the user has not given one. ### Stage 1 · 1 step - **RESEARCH** (`research`) → subagent `research-and-fact-check-research` - Hand it: the user's goal. - Expect: `claims` (markdown). ### Stage 2 · 1 step - **FACT CHECK** (`fact_check`) → subagent `research-and-fact-check-fact-check` · fresh context - Hand it: the user's goal; the output of RESEARCH (`research`). Nothing else: no notes of your own, no other step's reasoning, no earlier conversation. - Expect: `checked_claims` (markdown). - Gate: Every kept claim has a source that says it, and no kept claim is contradicted by a more reliable or more recent source. It ends with `GATE: PASS` or `GATE: FAIL` and one line per step to redo. - On `GATE: FAIL`: re-run only the steps it names, handing each its previous output and its line of the verdict; keep every other output (at most 1 time). Then re-run, in plan order, every step between a re-run step and this one (commands too), so this step judges fresh outputs, not stale ones. Then run this step again. If it still fails, stop and show the user the gate result. ### Stage 3 · 1 step - **ANSWER** (`answer`) → subagent `research-and-fact-check-answer` - Hand it: the user's goal; the output of FACT CHECK (`fact_check`). ## Final answer Return the output of **ANSWER** to the user as it is. … 19 more lines in the kit
Run it in a Claude chat
Add Skill Graph to Claude as a connector, then ask. Claude runs each step and the connector checks every answer before the next one starts.
Set up the connectorAsk Claude
Use Skill Graph to run the research-and-fact-check workflow on: Is intermittent fasting better than calorie counting for weight loss?The graph file
The whole workflow is one Markdown file, graph.skill.md: the steps and edges in the frontmatter, one prompt per step below it. The guide explains every field.
graph.skill.md · 79 lines
---
name: research-and-fact-check
description: Researches a question on the web, fact-checks every claim against its source with fresh eyes, then writes a short answer with sources.
spec: skill-graph/1
topology:
nodes:
- id: question
type: input
label: WHAT TO RESEARCH
- id: research
type: worker
label: RESEARCH
model: sonnet
tools: [WebSearch, WebFetch]
- id: fact_check
type: verifier
label: FACT CHECK
isolated_context: true
model: opus
tools: [WebSearch, WebFetch]
gate: Every kept claim has a source that says it, and no kept claim is contradicted by a more reliable or more recent source.
on_fail: retry
max_retries: 1
- id: answer
type: synthesizer
label: ANSWER
model: sonnet
tools: [WebFetch]
edges:
- from: question
to: [research, fact_check, answer]
- from: research
to: fact_check
contract: claims
- from: fact_check
to: answer
contract: checked_claims
contracts:
claims:
format: markdown
description: A numbered list of claims, each with its source (title and link) and the source's date.
checked_claims:
format: markdown
description: The claims that held up, each with its source, then the claims that were dropped and why.
---
# Node Prompts & Edge Contracts
## @node: research
Research this question on the web:
{{question}}
Find 5 to 10 claims that answer it, from the most reliable sources you can find: official sites, papers and established news. Prefer recent sources.
Return a numbered list of claims. For each one give the claim in one sentence, its source (title and link) and the source's date.
## @node: fact_check
You are a fact checker. Check these claims as if a stranger wrote them.
The question: {{question}}
The claims:
{{research}}
Open each source and confirm it says what the claim says. Look for a second source on every claim the answer depends on. Drop claims no source supports, mark claims that are out of date, and correct wrong numbers.
Return the claims that held up, each with its source, then a short list of the claims you dropped and why.
## @node: answer
Answer the question for someone who is not an expert, using only the checked claims.
The question: {{question}}
The checked claims:
{{fact_check}}
Return a short answer in Markdown: the answer in two or three sentences first, then the details. Put the source link after each sentence it supports. End with one line on what is still uncertain, if anything.
More workflows for a chat
- Review my essay against a rubricScore each rubric criterion with quotes, suggest line edits, re-check every score, then the feedback
- Compare productsShortlist, research each one on the same criteria, check every price and spec, then a pick
- Plan a trip and check the budgetDay-by-day plan with prices, a budget check that sends it back while it is over, then a booking list