$npx -y skills add softspark/ai-toolkit --skill deep-researchMulti-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, sy
| 1 | # Deep Research |
| 2 | |
| 3 | 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. |
| 4 | |
| 5 | ## Retrieve-vs-Answer Gate |
| 6 | |
| 7 | Run this gate before you spend a single search: |
| 8 | |
| 9 | 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. |
| 10 | 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. |
| 11 | 3. **Does it need several independent sources reconciled, or is it contested, recent, or moving?** That is the case this skill exists for. Continue. |
| 12 | |
| 13 | 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." |
| 14 | |
| 15 | ## Scale Effort to Complexity |
| 16 | |
| 17 | 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. |
| 18 | |
| 19 | | Question shape | Plan first? | Rough search budget | |
| 20 | |----------------|-------------|---------------------| |
| 21 | | Single stable fact, clear authority | no | 1, maybe a second to confirm | |
| 22 | | Compare a few known options / current state of one topic | light | a handful, broaden then narrow | |
| 23 | | Contested, multi-faceted, or "what is the latest on…" | yes — write the plan | many, with follow-ups as conflicts surface | |
| 24 | |
| 25 | 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. |
| 26 | |
| 27 | ## Query Craft |
| 28 | |
| 29 | - **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. |
| 30 | - **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. |
| 31 | - **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. |
| 32 | |
| 33 | ## Source Preference and Skepticism |
| 34 | |
| 35 | - **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. |
| 36 | - **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. |
| 37 | - **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. |
| 38 | - **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. |
| 39 | |
| 40 | ## Adversarial Verification |
| 41 | |
| 42 | Before you emit any synthesized claim, run this self-check. Each gate has a fix; do not just notice the problem. |
| 43 | |
| 44 | | Self-check gate | If yes, do this | |
| 45 | |-----------------|-----------------| |
| 46 | | Am I mirroring one source's exact phrasing or structure? | Re-state it in your own words from the facts, not the prose. | |
| 47 | | Could my output stand in for reading the original — same length, |