staruhub/deep-research
> Use this skill when the user wants an evidence-based research memo, literature review, market/policy/technical landscape, or a multi-source decision brief with citations, trade-offs, and a clear conclusion. Best for tasks that need synthesis across multiple external sources, iterative follow-up research, or a reusable written artifact. Do not use for quick factual lookups, single-source summaries, simple Q&A, summarizing one document the user already provided, plan-only requests where the user explicitly defers the actual research, or when the user wants a short answer with no need for cited evidence (a short but evidence-backed conclusion is still a brief "深度研究", "综述报告", "技术选型分析", "竞品研究", "政策分析".
npx skills add https://github.com/staruhub/ClaudeSkills --skill deep-research
This skill is for evidence-rich research outputs, not for every question that happens to mention “analysis”.
The V8 shift is simple:
Choose the lightest artifact that satisfies the task.
| Output type | Use when | Typical length | Required artifacts |
|---|---|---:|---|
| Brief memo | user wants a concise answer with evidence | 800-1800 words | research-plan.md, registry.md, draft.md, run-summary.json |
| Full report | user asks for comprehensive analysis / literature review / decision document | 2500-6000 words | all core artifacts + evaluation.md |
| Delta update | user says “continue”, “second round”, “what changed”, “deepen round 2” | 600-1800 words | prior round handoff (references/handoff-format.md) + new notes + delta draft |
If the user did not ask for a long report, default to Brief memo.
Do not activate for:
If in doubt, ask yourself: Does this task need a reusable evidence artifact and multi-source synthesis? If not, do something simpler.
This skill does not replace system policies, enterprise guardrails, or repo-level instructions.
Put these outside the skill:
Keep those in system prompts, AGENTS/CLAUDE/OpenAI config, or the harness. This skill owns the workflow, not the company’s permanent red lines.
At activation time, keep the active bundle small.
Always load first
SKILL.mdreferences/methodology.mdreferences/report-assembly.mdreferences/research-notes-format.mdLoad on demand
references/subagent-prompt.md only if you actually dispatch subagentsreferences/handoff-format.md only when a delta update continues a prior roundreferences/evaluator-prompt.md only if you run the evaluatorreferences/quality-gates.md before finalizationreferences/observability.md when emitting metrics or diagnosing regressionsreferences/tension-discovery.md only for contested / decision-heavy topicsreferences/landscape-scan.md only when literature or ecosystem mapping mattersAfter compaction or context reset
Reload only:
research-plan.mdregistry.mdDo not reload the whole skill tree unless the run drifted badly.
Create workspace/research-plan.md with:
Then choose the orchestration mode:
| Mode | Default choice |
|---|---|
| Single-agent | default for most tasks |
| Lead + subagents | only when there are 3+ separable research threads or obvious parallel value |
| Delta update | when continuing prior research |
Do not fan out just because subagents exist.
Use optional modules only when they earn their keep:
references/tension-discovery.md): use for contested, hype-heavy, or decision topics where mainstream framing may be wrong.references/landscape-scan.md): use when the domain is unfamiliar, broad, or literature-heavy. For non-academic topics, this can be an ecosystem/standards/vendor scan rather than arXiv.Break the task into 1-5 research threads. Each thread needs:
If using subagents, each subagent gets one focused thread. Avoid overlapping ownership.
Follow references/research-notes-format.md.
Rules:
The lead agent should work from notes by default, but may inspect raw/fetched sources again when:
Create workspace/registry.md from approved sources only.
Use scripts/source_evaluator.py as a helper, not an oracle.
Authority scores are heuristics. Final acceptance depends on claim fit, evidence type, and whether the source can actually bear the weight of the claim.
Use scripts/verify_citations.py before finalization.
Evidence rules:
Follow references/report-assembly.md.
For full reports, assets/report_template.md is an optional skeleton; adapt it rather than inventing a new structure.
Always include:
Only include a dedicated Decision Framework when the user is choosing between options.
Only require a contrarian section when the topic actually has a mainstream narrative worth challenging. Otherwise produce a non-obvious insight instead of forcing fake contrarianism.
For full reports and medium/high-stakes briefs, run the evaluator using references/evaluator-prompt.md.
Before finalization, check references/quality-gates.md:
Emit:
draft.mdevaluation.md if runrun-summary.json via scripts/emit_run_summary.pyIn the run summary, record what actually helped: single-agent, subagents, tension discovery, landscape scan, reverse search, evaluator, or manual spot-checks.
This is what makes the skill improve over time.
“Finalize” means deliver research artifacts to the user. Do not publish to an
external site, send messages, request credentials, or make irreversible changes
unless a separate explicit user request and the host policy authorize it.
Use scripts for the parts that should be boring and repeatable:
scripts/source_evaluator.py — baseline source scoring / diversity checksscripts/verify_citations.py — fail-closed citation integrity and source-pool checksscripts/emit_run_summary.py — structured observability output for the runFor reproducible recency scoring, pass an explicit evidence cutoff:
scripts/source_evaluator.py sources.json --as-of YYYY-MM-DD. Record the same
cutoff in the research plan and run summary.
If a deterministic check fails, fix the artifact first. Do not argue with the script unless you have a concrete reason.
This skill is only “good” if it performs well on:
See:
evals/routing-evals.jsonevals/runbook.md — how to run the routing and mode checksreferences/quality-gates.mdreferences/observability.mdIf subagents, shell, or a writable workspace are unavailable, keep the workflow but shrink the surface area:
Stop and ask for help only when the blocker is real and specific, for example:
Otherwise, continue with the best justified artifact and say where the confidence drops.
Take staruhub/deep-research from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.