Deep research on any topic using parallel sub-agents and built-in tools only (WebSearch/WebFetch + free APIs, no keys). Use when the user asks for a thorough multi-source investigation with a cited report — "深度调研X"、"deep research"、"帮我全面研究一下"、"多方求证"、"写一份调研报告". NOT for simple lookups (single WebSearch suffices) and NOT for academic literature surveys (use auto-research skill instead).
72
88%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Orchestrate parallel research sub-agents, then write one coherent cited report. Research is parallel; writing is single-point — never let multiple agents write report sections.
date +%Y-%m-%d via Bash. Never assume the current year from training data.| Mode | Sub-agents (round 1) | Max follow-up rounds | Sources target |
|---|---|---|---|
| quick | 2-3 | 0 | 8+ |
| standard | 3-5 | 1 | 15+ |
| deep | 5-8 | 2 | 25+ |
These are hard budgets. Reflection (Phase 4) can spend them but never exceed them.
All state lives on disk at ./research/<slug>/ — never only in context (survives compaction):
research/<slug>/
├── brief.md # research brief — the single contract for all phases
├── findings/ # F1.md, F2.md ... one per sub-agent, structured evidence
└── REPORT.md # final deliverableOn resume: re-read brief.md + list findings/, skip completed angles, continue.
Ask at most one round of clarifying questions (AskUserQuestion), only if genuinely ambiguous: audience, time frame, region, decision at stake. If the user said "just run it" or intent is clear, skip asking and write assumptions into the brief instead.
Then write brief.md: refined question, scope boundaries (in/out), assumptions, depth mode, today's date. This brief — not the raw conversation — is what every later phase measures against.
Decompose the brief into 3-8 independent research angles. Pull from these lenses as applicable: core facts/definitions · recent developments (last 12 months) · quantitative data/benchmarks · counter-arguments & failure cases · practitioner experience (forums, issues) · academic work · key players/alternatives.
List angles in brief.md under ## Angles. For deep mode or contested topics, show the angle list to the user for a quick confirm before spending budget.
Spawn one sub-agent per angle in a single message (parallel). Build each prompt from the locked template in reference/subagent-prompt.md — reproduce it verbatim, replacing only the {variables}. Each sub-agent:
findings/F<n>.md (claim / quote / URL / date / confidence per item)If a sub-agent fails or returns thin results, note it and move on; do not block other angles.
Read all findings/*.md. Against brief.md, ask: which parts of the brief have no evidence? Which major claims rest on a single source? Where do sources conflict?
You alone write REPORT.md in one pass, following reference/report.md. Core rules:
[n] mapping to a Sources section; citation URLs come only from findings files — never from memory.[single source], speculation with [speculative].For deep mode, before finalizing do one critique pass: reread the report as a skeptical reviewer (unsupported claims? stale data? missing counter-view?) and fix in place.
Finally, give the user a 5-10 line summary of key conclusions and the report path.
The same pipeline exists as a deterministic workflow script at /Users/mi/claude-workspace/.mimocode/workflows/deep-research-pro.js — use it instead of the manual phases above when the run should be fully autonomous, resumable, or batch-invoked. It is convergent: re-running with the same dir skips completed phases (brief.md / plan.json / findings/F*.md / reflect.json / REPORT.md act as checkpoints).
Invocation (workflow tool; custom scripts must be passed inline via script, not name):
workflow({
operation: "run",
script: <full text of deep-research-pro.js, Read it first>,
workspace: "<ABS_DIR>", # same value as args.dir
args: {
dir: "<ABS_DIR>", # e.g. /path/to/research/<slug> — mkdir -p <ABS_DIR>/findings first
question: "<refined research question>",
today: "<YYYY-MM-DD>", # REQUIRED — run `date +%Y-%m-%d` first; sandbox has no Date
depth: "standard", # quick | standard | deep
context: "<audience/language notes, optional>"
}
})Notes:
question/context.workflow({operation:"resume", run_id}) also works.{ angles, deltaAngles, findingsFiles, reviewCritical, report }.ff87d47
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.