Deep Research
One workflow, three modes. Pick the mode from the user's intent:
| Mode |
Use when |
| trends |
"what's happening in X", "emerging patterns", "who are the players" |
| analyze |
"go deep on X", "tradeoffs of X", "SWOT", "compare perspectives" |
| factcheck |
document or list of claims handed in for verification |
All three share the same workspace + checkpoint discipline below. Read this section once, then jump to your mode.
Workspace & Checkpointing (all modes)
Workspace: .research/<YYYY-MM-DD>/<mode>_<session>/
00_plan.md # written before any research
notes.md # rolling findings, source URLs
checkpoint_NNN.md # batch results (factcheck) or section drafts (trends/analyze)
report.md # final output, assembled from disk — never from memory
Rules that apply to every mode:
- Plan first. Write
00_plan.md before searching anything. Include the question, sub-questions, and the sources you intend to hit.
- Disk is truth, memory is scratch. Append findings to
notes.md as you go with source URLs. If the session dies, you resume from disk.
- Checkpoint on a budget. Every ~10 research steps OR when context approaches ~150K tokens, write a checkpoint and drop detailed research from working memory — keep only 2–3 line summaries.
- Assemble the final report from disk. Use
cat / Read over checkpoints. Never reconstruct from memory.
- Resume, don't restart. On error,
ls the workspace, read the last checkpoint, continue from the next unprocessed item.
Mode: trends
Goal: identify the current state and trajectory of a space.
- Plan sub-questions: who are the players, what's new in the last 6–12 months, what are adoption signals, what are the contrarian takes.
tavily_search for each sub-question. For technical topics, also resolve-library-id + query-docs (Context7) to ground claims in current docs.
- Note publication dates aggressively — anything older than 12 months gets flagged as "background, not signal."
- Final
report.md:
- State of the space (2–3 paragraphs)
- Key players (table: name, focus, signal)
- Emerging patterns (bullets, each with a dated source)
- Contrarian / risk signals
- Where this is heading (1 paragraph, clearly labeled as opinion)
Prioritize actionable insight over exhaustive coverage.
Mode: analyze
Goal: deep, balanced decomposition of a single topic.
- Plan: break the topic into core components, stakeholder perspectives, and decision axes.
- Research each component with
tavily_search / tavily_extract. For each, capture both the strongest case for and the strongest case against.
- Final
report.md:
- Executive summary (3–5 sentences, no hedging)
- Components (one section each)
- Perspectives & counterarguments
- SWOT (or equivalent: tradeoffs, risks, opportunities)
- Recommendation with reasoning, clearly separated from facts
Depth over breadth. Nuance over coverage.
Mode: factcheck
Goal: extract every factual claim from a document and label each one with evidence.
Setup
Read the document.
- Extract every factual claim (statements presented as objective truth — stats, dates, quotes, attributions, causal claims). Write all of them, numbered, to
00_claims_extracted.md before any verification.
- Skip opinions, predictions, value judgments. Mark them in a separate
opinions.md if useful for the final summary.
- Categorize: statistical / historical / scientific / attributional. Order by significance.
Verification (batches of 8–10)
For each batch:
tavily_search for current/breaking and synthesis-heavy claims, tavily_extract for primary-source verification.
- Aim for ≥2 independent sources per claim. Note publication dates and source authority.
- Watch for context manipulation (accurate quote, misleading framing) and outdated facts presented as current.
- Write
checkpoint_NNN.md with full findings for the batch, then drop the details from memory — keep only claim# | verdict | confidence lines.
Checkpoint format:
# Checkpoint NNN — Claims X–Y
## Claim #X: <verbatim claim>
**Status**: VERIFIED | FALSE | MISLEADING | UNVERIFIABLE | OUTDATED
**Evidence**: <urls>
**Analysis**: <what the sources say vs. the claim>
**Confidence**: HIGH | MEDIUM | LOW
Final report
Read all checkpoints from disk and assemble report.md:
## FACT-CHECK REPORT: <doc title>
### Summary
<N claims checked: V verified, F false, M misleading, U unverifiable, O outdated>
### Detailed Findings
<one block per claim, same format as checkpoint>
### Overall Assessment
<one paragraph on the document's factual reliability>
Be impartial. Distinguish FALSE (contradicted by evidence) from UNVERIFIABLE (insufficient evidence either way). Cite sources for every verdict.
Cross-mode rules
- Never fabricate sources. If you can't find evidence, say so.
- Never include raw page dumps in the final report — summarize and link.
- Flag conflicting evidence rather than picking a winner silently.
- Mask any PII / credentials encountered during searches.
1---2name: deep-research3description: Use when the user asks to 'research trends', 'analyze a topic', 'fact-check this', 'verify claims', 'what's the state of X', or hands you a document to vet. A disk-first, checkpointed research workflow with three modes — trend research, topic analysis, and fact-checking.4license: Apache-2.05---67# Deep Research89One workflow, three modes. Pick the mode from the user's intent:1011| Mode | Use when |12|---|---|13| **trends** | "what's happening in X", "emerging patterns", "who are the players" |14| **analyze** | "go deep on X", "tradeoffs of X", "SWOT", "compare perspectives" |15| **factcheck** | document or list of claims handed in for verification |1617All three share the same workspace + checkpoint discipline below. **Read this section once, then jump to your mode.**1819## Workspace & Checkpointing (all modes)2021Workspace: `.research/<YYYY-MM-DD>/<mode>_<session>/`2223```2400_plan.md # written before any research25notes.md # rolling findings, source URLs26checkpoint_NNN.md # batch results (factcheck) or section drafts (trends/analyze)27report.md # final output, assembled from disk — never from memory28```2930Rules that apply to every mode:31321. **Plan first.** Write `00_plan.md` before searching anything. Include the question, sub-questions, and the sources you intend to hit.332. **Disk is truth, memory is scratch.** Append findings to `notes.md` as you go with source URLs. If the session dies, you resume from disk.343. **Checkpoint on a budget.** Every ~10 research steps OR when context approaches ~150K tokens, write a checkpoint and drop detailed research from working memory — keep only 2–3 line summaries.354. **Assemble the final report from disk.** Use `cat` / `Read` over checkpoints. Never reconstruct from memory.365. **Resume, don't restart.** On error, `ls` the workspace, read the last checkpoint, continue from the next unprocessed item.3738## Mode: trends3940Goal: identify the current state and trajectory of a space.41421. Plan sub-questions: who are the players, what's new in the last 6–12 months, what are adoption signals, what are the contrarian takes.432. `tavily_search` for each sub-question. For technical topics, also `resolve-library-id` + `query-docs` (Context7) to ground claims in current docs.443. Note publication dates aggressively — anything older than 12 months gets flagged as "background, not signal."454. Final `report.md`:46 - **State of the space** (2–3 paragraphs)47 - **Key players** (table: name, focus, signal)48 - **Emerging patterns** (bullets, each with a dated source)49 - **Contrarian / risk signals**50 - **Where this is heading** (1 paragraph, clearly labeled as opinion)5152Prioritize actionable insight over exhaustive coverage.5354## Mode: analyze5556Goal: deep, balanced decomposition of a single topic.57581. Plan: break the topic into core components, stakeholder perspectives, and decision axes.592. Research each component with `tavily_search` / `tavily_extract`. For each, capture both the strongest case for and the strongest case against.603. Final `report.md`:61 - **Executive summary** (3–5 sentences, no hedging)62 - **Components** (one section each)63 - **Perspectives & counterarguments**64 - **SWOT** (or equivalent: tradeoffs, risks, opportunities)65 - **Recommendation** with reasoning, clearly separated from facts6667Depth over breadth. Nuance over coverage.6869## Mode: factcheck7071Goal: extract every factual claim from a document and label each one with evidence.7273### Setup74- `Read` the document.75- Extract **every** factual claim (statements presented as objective truth — stats, dates, quotes, attributions, causal claims). Write all of them, numbered, to `00_claims_extracted.md` **before any verification**.76- Skip opinions, predictions, value judgments. Mark them in a separate `opinions.md` if useful for the final summary.77- Categorize: statistical / historical / scientific / attributional. Order by significance.7879### Verification (batches of 8–10)80For each batch:81- `tavily_search` for current/breaking and synthesis-heavy claims, `tavily_extract` for primary-source verification.82- Aim for ≥2 independent sources per claim. Note publication dates and source authority.83- Watch for **context manipulation** (accurate quote, misleading framing) and **outdated facts presented as current**.84- Write `checkpoint_NNN.md` with full findings for the batch, then **drop the details from memory** — keep only `claim# | verdict | confidence` lines.8586Checkpoint format:87```markdown88# Checkpoint NNN — Claims X–Y8990## Claim #X: <verbatim claim>91**Status**: VERIFIED | FALSE | MISLEADING | UNVERIFIABLE | OUTDATED92**Evidence**: <urls>93**Analysis**: <what the sources say vs. the claim>94**Confidence**: HIGH | MEDIUM | LOW95```9697### Final report98Read all checkpoints from disk and assemble `report.md`:99100```markdown101## FACT-CHECK REPORT: <doc title>102103### Summary104<N claims checked: V verified, F false, M misleading, U unverifiable, O outdated>105106### Detailed Findings107<one block per claim, same format as checkpoint>108109### Overall Assessment110<one paragraph on the document's factual reliability>111```112113Be impartial. Distinguish **FALSE** (contradicted by evidence) from **UNVERIFIABLE** (insufficient evidence either way). Cite sources for every verdict.114115## Cross-mode rules116117- Never fabricate sources. If you can't find evidence, say so.118- Never include raw page dumps in the final report — summarize and link.119- Flag conflicting evidence rather than picking a winner silently.120- Mask any PII / credentials encountered during searches.