/deep-research
Multi-source web research methodology: retrieve-vs-answer gate, complexity-scaled search budget, query craft, primary-source preference, source-conflict skepticism, adversarial verification, attribution-without-reproduction. Triggers: deep research, multi-source, web research,
$ npx -y skills add softspark/ai-toolkit --skill deep-research --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/deep-research
Context preview
The summary Claude sees to decide when to auto-load this skill.
Multi-source web research methodology: retrieve-vs-answer gate, complexity-scaled search budget, query craft, primary-source preference, source-conflict skepticism, adversarial verification, attribution-without-reproduction. Triggers: deep research, multi-source, web research,
SKILL.md
deep-research.SKILL.mdname: deep-research
description: "Multi-source web research methodology: retrieve-vs-answer gate, complexity-scaled search budget, query craft, primary-source preference, source-conflict skepticism, adversarial verification, attribution-without-reproduction. Triggers: deep research, multi-source, web research, synthesize sources, cross-reference, fact synthesis, source verification."
user-invocable: false
allowed-tools: Read
Deep Research
This is the web / multi-source counterpart to `research-mastery`. That skill is KB-first: it answers from the project's own knowledge base and only reaches outward when the KB comes up empty. This one governs what happens once you are already out on the open web pulling from many independent sources and have to weave them into one trustworthy answer. It is a method, not a fetcher — it does not retrieve anything by itself. You supply the search and fetch tools (built-in `WebSearch` / `WebFetch`, or the runtime `deep-research` command); this skill tells you how to spend them and how hard to doubt what comes back.
Retrieve-vs-Answer Gate
Run this gate before you spend a single search:
1. **Is the answer already in the KB or your own context?** Then this is not a deep-research job — hand it to `research-mastery` (which checks RAG-MCP first) or just answer. 2. **Is it one stable fact** with a single obvious authority (a constant, a published spec value, a definition that does not move)? One targeted lookup, confirm, done. Do not open a research campaign. 3. **Does it need several independent sources reconciled, or is it contested, recent, or moving?** That is the case this skill exists for. Continue.
Skipping this gate is the most common failure: people fan out ten searches on a question that one source already settled, or worse, answer a contested question from memory because it "felt known."
Scale Effort to Complexity
Match the search budget to the question. Burning twenty searches on a lookup wastes turns; doing two searches on a contested synthesis ships a half-checked claim.
| Question shape | Plan first? | Rough search budget | |----------------|-------------|---------------------| | Single stable fact, clear authority | no | 1, maybe a second to confirm | | Compare a few known options / current state of one topic | light | a handful, broaden then narrow | | Contested, multi-faceted, or "what is the latest on…" | yes — write the plan | many, with follow-ups as conflicts surface |
For anything in the bottom two rows, write a short research plan first: name the sub-questions, the kind of source that would answer each, and what "done" looks like. The plan is for you; keep it tight. Then let conflict drive the count — if sources disagree, you have not searched enough yet.
Query Craft
- **Broaden, then narrow.** Open with a short, plain query to map the landscape; tighten with specific terms once you see what vocabulary the good sources actually use. Long kitchen-sink queries on the first try usually return noise.
- **Use the real current date.** Anchor "recent", "latest", "current" to today's actual date — never to your training cutoff. For 2026-06-15, "latest" means 2026, not 2024. A query that silently assumes an old year is a wrong query.
- **Vary the angle on a stubborn question.** If one phrasing returns thin or repetitive results, change the wording, the framing, or the assumed source type rather than re-running near-identical strings.
Source Preference and Skepticism
- **Prefer primary and original sources.** Go to the spec, the paper, the official docs, the filing, the dataset, the person who actually said it — not a blog summarizing a blog summarizing it. Each hop away from the origin adds a chance for drift.
- **A surprising-but-sourced result is usually real.** If a credible primary source says something counterintuitive, treat it as true and report it. Do not soften or discard a well-attributed fact just because it clashes with your prior.
- **The exception: low-trust topic zones.** On SEO-spam-saturated queries, conspiracy-adjacent claims, and topics with genuinely no expert consensus, raise the bar instead of lowering it. Here a surprising claim needs strong independent corroboration before you repeat it, and "many pages say it" is not corroboration when those pages copy each other.
- **Conflict means search more.** When two solid sources disagree, that is a signal to run additional searches and find a tie-breaker or the underlying primary source — not to average them, pick the one you like, or paper over the disagreement.
Adversarial Verification
Before you emit any synthesized claim, run this self-check. Each gate has a fix; do not just notice the problem.
| Self-check gate | If yes, do this | |-----------------|-----------------| | Am I mirroring one source's exact phrasing or structure? | Re-state it in your own words from the facts, not the prose. | | Could my output stand in for reading the original — same length, same order, same examples? | Cut it back. Summarize and point to the source; do not reproduce it. | | Have I already leaned on this one source for several claims? | Find an independent source, or flag the answer as single-sourced. | | Is each claim independently corroborated, or is one shaky source carrying the conclusion? | Corroborate it, drop it, or label it as unconfirmed. |
For **high-stakes claims** — anything affecting money, health, legal exposure, security posture, or an irreversible decision — do not stop at one source. Confirm with a second, independent source or a different angle of approach before you state it as fact.
Citation Discipline
- **Paraphrase by default, and attribute to a named source.** "Per the FY2025 10-K…", "the RFC's section on retries states…". The reader should always know who is behind a claim.
- **Reserve verbatim quotes for genuinely distinctive phrasing** — a definition, a legal clause, an exact figure where the wording itself matters. Keep quo
Read more
name: deep-research description: "Multi-source web research methodology: retrieve-vs-answer gate, complexity-scaled search budget, query craft, primary-source preference, source-conflict skepticism, adversarial verification, attribution-without-reproduction. Triggers: deep research, multi-source, web research, synthesize sources, cross-reference, fact synthesis, source verification." user-invocable: false allowed-tools: Read
Deep Research
This is the web / multi-source counterpart to `research-mastery`. That skill is KB-first: it answers from the project's own knowledge base and only reaches outward when the KB comes up empty. This one governs what happens once you are already out on the open web pulling from many independent sources and have to weave them into one trustworthy answer. It is a method, not a fetcher — it does not retrieve anything by itself. You supply the search and fetch tools (built-in `WebSearch` / `WebFetch`, or the runtime `deep-research` command); this skill tells you how to spend them and how hard to doubt what comes back.
Retrieve-vs-Answer Gate
Run this gate before you spend a single search:
1. **Is the answer already in the KB or your own context?** Then this is not a deep-research job — hand it to `research-mastery` (which checks RAG-MCP first) or just answer. 2. **Is it one stable fact** with a single obvious authority (a constant, a published spec value, a definition that does not move)? One targeted lookup, confirm, done. Do not open a research campaign. 3. **Does it need several independent sources reconciled, or is it contested, recent, or moving?** That is the case this skill exists for. Continue.
Skipping this gate is the most common failure: people fan out ten searches on a question that one source already settled, or worse, answer a contested question from memory because it "felt known."
Scale Effort to Complexity
Match the search budget to the question. Burning twenty searches on a lookup wastes turns; doing two searches on a contested synthesis ships a half-checked claim.
| Question shape | Plan first? | Rough search budget | |----------------|-------------|---------------------| | Single stable fact, clear authority | no | 1, maybe a second to confirm | | Compare a few known options / current state of one topic | light | a handful, broaden then narrow | | Contested, multi-faceted, or "what is the latest on…" | yes — write the plan | many, with follow-ups as conflicts surface |
For anything in the bottom two rows, write a short research plan first: name the sub-questions, the kind of source that would answer each, and what "done" looks like. The plan is for you; keep it tight. Then let conflict drive the count — if sources disagree, you have not searched enough yet.
Query Craft
- **Broaden, then narrow.** Open with a short, plain query to map the landscape; tighten with specific terms once you see what vocabulary the good sources actually use. Long kitchen-sink queries on the first try usually return noise.
- **Use the real current date.** Anchor "recent", "latest", "current" to today's actual date — never to your training cutoff. For 2026-06-15, "latest" means 2026, not 2024. A query that silently assumes an old year is a wrong query.
- **Vary the angle on a stubborn question.** If one phrasing returns thin or repetitive results, change the wording, the framing, or the assumed source type rather than re-running near-identical strings.
Source Preference and Skepticism
- **Prefer primary and original sources.** Go to the spec, the paper, the official docs, the filing, the dataset, the person who actually said it — not a blog summarizing a blog summarizing it. Each hop away from the origin adds a chance for drift.
- **A surprising-but-sourced result is usually real.** If a credible primary source says something counterintuitive, treat it as true and report it. Do not soften or discard a well-attributed fact just because it clashes with your prior.
- **The exception: low-trust topic zones.** On SEO-spam-saturated queries, conspiracy-adjacent claims, and topics with genuinely no expert consensus, raise the bar instead of lowering it. Here a surprising claim needs strong independent corroboration before you repeat it, and "many pages say it" is not corroboration when those pages copy each other.
- **Conflict means search more.** When two solid sources disagree, that is a signal to run additional searches and find a tie-breaker or the underlying primary source — not to average them, pick the one you like, or paper over the disagreement.
Adversarial Verification
Before you emit any synthesized claim, run this self-check. Each gate has a fix; do not just notice the problem.
| Self-check gate | If yes, do this | |-----------------|-----------------| | Am I mirroring one source's exact phrasing or structure? | Re-state it in your own words from the facts, not the prose. | | Could my output stand in for reading the original — same length, same order, same examples? | Cut it back. Summarize and point to the source; do not reproduce it. | | Have I already leaned on this one source for several claims? | Find an independent source, or flag the answer as single-sourced. | | Is each claim independently corroborated, or is one shaky source carrying the conclusion? | Corroborate it, drop it, or label it as unconfirmed. |
For **high-stakes claims** — anything affecting money, health, legal exposure, security posture, or an irreversible decision — do not stop at one source. Confirm with a second, independent source or a different angle of approach before you state it as fact.
Citation Discipline
- **Paraphrase by default, and attribute to a named source.** "Per the FY2025 10-K…", "the RFC's section on retries states…". The reader should always know who is behind a claim.
- **Reserve verbatim quotes for genuinely distinctive phrasing** — a definition, a legal clause, an exact figure where the wording itself matters. Keep quo
Professional-grade AI coding toolkit with multi-platform support. Machine-enforced safety, 109 skills, 44 agents, expanded lifecycle hooks, persona presets, experimental opt-in plugin packs, and benchmark tooling — works with Claude Code, Claude Chat/Cowork,
Repo: softspark/ai-toolkit
Other skills on ai-toolkit.
- /ai-toolkit-rules
Mandatory engineering, security, testing, git, performance, quality, and response rules. Claude MUST load this skill for every technical, coding, debugging, review, architecture, DevOps, data, or file-editing task in Chat or Cowork.
Open skill - /mem-search
Search past coding sessions using natural language. Finds relevant observations, decisions, and context from previous work.
Open skill - /a11y-validate
Accessibility validator: WCAG 2.1 AA, EN 301 549, EAA. Triggers: a11y, accessibility, WCAG, EAA, ARIA, contrast, keyboard, screen reader.
Open skill - /agent-creator
Creates new specialized agents with frontmatter, tools, delegation. Triggers: new agent, create agent, agent scaffold, specialized agent.
Open skill - /analyze
Analyzes code quality, complexity, patterns across codebase. Triggers: quality report, hotspot scan, code analysis, architecture signal.
Open skill - /api-patterns
REST/GraphQL API design: naming, versioning, pagination, idempotency, OpenAPI. Triggers: API design, REST, GraphQL, OpenAPI, Swagger, idempotency, rate limit.
Open skill

