| name | deep-research |
| description | Deep evidence-first research with broad discovery, verification, and traceable citations. Prefer invoking via research-workflow.
TRIGGER when (MANDATORY — you MUST invoke this skill, no exceptions): user message contains ANY of these keywords or synonyms — 调研/研究/对比/综述/文献/证据/机制/根因/为什么/可行性/路线图/分析/探索, or research/investigate/compare/survey/literature/evidence/mechanism/root-cause/why/feasibility/roadmap/analyze/explore — or asks to verify claims, analyze tradeoffs, scope a new topic, or conduct literature review. Also use this skill as the default gateway for external search. Skipping when keywords match is a routing violation.
DO NOT TRIGGER when: user asks for paper-writing output (use paper-writing), experiment launch (use experiment-execution), or plan-only without evidence (use research-plan). |
Deep Research
Mission
Produce a deeply researched, evidence-grounded answer with clear provenance and actionable conclusions, and act as the default gateway for external search in research runs.
Search Routing Gate (Mandatory)
All external search during non-trivial research runs must enter through deep-research.
Rules:
- do not bypass
deep-research with ad hoc direct search when fresh outside evidence is needed
deep-research may choose a lighter or deeper execution depth internally, but it may not silently skip actual search
- every
deep-research run must perform real WebSearch calls and keep an auditable query trail
- if search is skipped because existing evidence is already fresh enough, emit
dr_skip_reason with explicit date windows and source counts
Research Type Selection
Choose a primary research_type early:
idea-exploration
debug-investigation
design-decision
implementation-strategy
conflict-resolution
If templates do not fit exactly, adapt structure freely but keep depth, verification, and citations.
Intake Checkpoint Gate (Mandatory Before Search)
Before selecting depth or running any WebSearch queries:
- confirm
intake_checkpoint_complete=YES
- intake must at least define: objective/scope, constraints, and expected deliverable format
- route missing-information requests through
human-checkpoint
- in
moderate or detailed, prefer built-in user-question tool (request_user_input)
- if built-in tool is unavailable, degrade to concise plain-text questions
- if intake is incomplete, remain in clarification phase and do not run search, decomposition, or synthesis
Frontier-First Scout (Mandatory)
Every deep-research run must begin with a frontier-first scout before final depth selection.
Scout requirements:
- run at least 6-10 queries total
- cover at least:
bleeding-edge topic queries
frontier topic queries
- one verification query family
- one counter-evidence or criticism query family
- capture representative freshness, source quality, and contradiction density
- use scout evidence to choose final depth
Scout rules:
- scout is mandatory even when a lighter depth is later selected
- scout counts toward total query budget
- scout may justify upgrading to
deep or downgrading to light
- scout may not justify "no search"
Default Workflow
Iterate until evidence quality is sufficient:
- confirm intake checkpoint is complete
- restate objective and success criteria
- set explicit
As of: YYYY-MM-DD
- run the mandatory frontier-first scout
- select execution depth
- run staged time-window search with Codex WebSearch
- extract claim-level evidence
- build key-work cards when the topic is paper-centric
- verify high-impact claims independently
- run contradiction/counter-evidence checks
- synthesize and produce final report
When the topic has implementation, benchmark, reproduction, or planning implications, also apply references/codebase-and-data-research-rules.md.
Re-entry Policy (Mid-Run)
When called during an ongoing run:
- treat invocation as valid and do not require starting a new run by default
- recompute objective delta versus current stage plan
- if objective changed materially, reset research focus and run fresh query batches
- if objective is similar, perform incremental deep research using existing evidence as baseline
- if skipped due to sufficient evidence freshness, emit
dr_skip_reason with explicit date windows and source counts
Scoping-to-Planning Handoff Policy
When deep research is used for open-ended scoping (idea-exploration), hand off findings to research-plan as the required default next step. Skip only if the user explicitly opts out.
Handoff expectations:
- preserve core hypotheses, constraints, and evidence-backed tradeoffs
- identify recommended direction and at least one fallback direction
- convert conclusions into executable planning inputs (experiments, implementation prerequisites, data/workload requirements, risks)
Completion Gate (Mandatory)
Do not output final conclusions until all gate checks pass.
Before synthesis, print:
intake_checkpoint_complete=YES|NO
intake_channel=request_user_input|plain-text-fallback|none
search_entry=deep-research
frontier_first_scout=YES|NO
selected_depth=light|default-auditable|deep
depth_reason=
dr_degrade_reason=
total_queries=
scout_queries=
bleeding_edge_queries=
frontier_queries=
recent_queries=
mid_term_queries=
classic_queries=
degrade_used=YES|NO
gate_pass=YES|NO
If degrade_used=YES, also print:
degrade_from=
degrade_to=
degrade_gap=
degrade_queries_run=
degrade_reason=
If gate_pass=NO, continue searching and do not finalize.
Search Depth Rules
Support three execution depths:
light
- only for narrow, low-ambiguity verification after scout
- total: 12-24 queries
- stage minimums:
bleeding-edge >= 3, frontier >= 3, recent >= 2, mid-term >= 1, classic >= 1
default-auditable
- default for bounded but non-trivial research questions
- total: target 50-80 queries
- stage minimums:
bleeding-edge >= 12, frontier >= 10, recent >= 10, mid-term >= 8, classic >= 6
deep
- use for broad or open-ended exploration, roadmap design, deep comparisons, or high-uncertainty topics
- total: 100-140 queries
- stage minimums:
bleeding-edge >= 28, frontier >= 22, recent >= 20, mid-term >= 16, classic >= 10
Selection rules:
- user override wins if explicitly specified
- if the user does not specify, default to
default-auditable
- select
deep when scope is broad, open-ended, contradiction-heavy, or asks for landscape plus recipe or mechanism analysis
light is not a default mode
light is allowed only when scout confirms the task is narrow, directly verifiable, and low-ambiguity
- if ambiguous, do not choose
light
- if the prompt mentions 2 or more research-intent terms, do not choose
light unless the user explicitly forces it
Depth Sanity Check (Mandatory Before Full Search)
Print this mini-check immediately after selecting depth:
depth_candidate=
light_disqualifiers_hit=
open_ended_exploration=YES|NO
paper_centric=YES|NO
depth_sanity_pass=YES|NO
Rules:
- if
light_disqualifiers_hit is non-empty and depth_candidate=light, set depth_sanity_pass=NO and reselect before more search
- if
open_ended_exploration=YES and user did not explicitly force light, do not use light
- if
paper_centric=YES and the user asks for mechanisms/recipes/comparisons, do not use light
Search Execution Policy (Codex Native)
- use Codex WebSearch directly in-session; do not require external browser interaction
- do not depend on external search APIs for baseline operation
- treat date text in query strings as recall hints only; do not rely on parser-specific
after:/before: behavior for final stage assignment
- use date-window targeting during retrieval, then assign stage by published-date validation
- compute
days_from_as_of for each source and map to exactly one stage using the stage boundary rules below
- if source date is unknown, keep with uncertainty label and lower priority
- do not claim deep-research completion without actual WebSearch calls and auditable query logs
- prioritize
bleeding-edge, then frontier, then recent whenever the user cares about the latest or fastest-moving evidence
Staged Time Windows
Use five mandatory evidence stages and record source counts for each.
Define days_from_as_of = as_of_date - published_date (integer days). Stages are mutually exclusive:
bleeding-edge (0-90 days): 0 <= days_from_as_of <= 90
frontier (91-180 days): 91 <= days_from_as_of <= 180
recent (181-365 days): 181 <= days_from_as_of <= 365
mid-term (366-730 days): 366 <= days_from_as_of <= 730
classic (>730 days): days_from_as_of > 730
Freshness floor:
bleeding-edge + frontier >= 35% for normal runs
bleeding-edge + frontier + recent >= 60% for all finalized runs
Stage Search Sequence
Per stage, run at least these query families:
- canonical topic terms
- synonym or alias expansion
- counter-evidence and criticism
- verification queries for high-impact claims
Use dynamic query-family expansion:
- build seed terms from user question terms and canonical topic terms
- expand with aliases discovered from high-confidence retrieved sources
- do not hard-code universal mandatory method keywords for all topics
Minimum rounds by depth:
light: bleeding-edge/frontier/recent >= 1, mid-term/classic >= 1
default-auditable: bleeding-edge/frontier/recent >= 3, mid-term >= 2, classic >= 1
deep: bleeding-edge/frontier/recent >= 4, mid-term >= 3, classic >= 2
Stage Deficit Degrade Policy
If a stage minimum is not met, allow controlled degradation only after an exhaustion pass.
Exhaustion pass minimums per deficit stage:
light: at least 6 additional stage-targeted queries
default-auditable: at least 18 additional stage-targeted queries
deep: at least 32 additional stage-targeted queries
Degrade rules:
- only adjacent fallback is allowed:
bleeding-edge -> frontier, frontier -> recent, recent -> mid-term
- at most one degrade hop per stage
- borrowed amount cannot exceed 50% of the deficit stage minimum
- even after degradation, keep
bleeding-edge + frontier >= 30% and bleeding-edge + frontier + recent >= 60%
Memory and Search Policy
- global memory bootstrap is mandatory for non-trivial runs
- before heavy search batches, use the current memory snapshot or retrieve relevant
insight/procedure memory when it can reduce redundant search or contradiction cost
- when scout or full search uncovers a repeated issue already covered by memory, incorporate that memory explicitly rather than rediscovering it silently
- use search directly and aggressively when the topic is new, urgent, or time-sensitive
- if a lighter depth is chosen, report why
default-auditable was not needed
Type-Aware Reporting Requirements
Always include:
- objective and scope
- evidence-based conclusions
- contradictions and uncertainties
- anchored citations
- research trail summary
- saved report path
Type-specific emphasis:
debug-investigation
- include error signature, reproduction context, fix candidates, validation outcomes
design-decision
- compare alternatives, constraints, and cost/risk tradeoffs
implementation-strategy
- include staged rollout options and operational prerequisites
conflict-resolution
- focus on disputed claims, source reliability tiers, and resolution rationale
idea-exploration
- include landscape, mechanisms, opportunities, and boundaries
Representative Works Deep-Dive Policy
Trigger this policy when user asks for any of:
- important works, representative papers, state of the art, or research landscape
- method comparison across papers
- roadmap or recipe requests grounded in prior work
When triggered, include a dedicated Key Works Deep Dive section and meet minimum coverage:
light: 3-5 key works
default-auditable: 6-10 key works
deep: 10-15 key works
For each key work, provide:
- problem addressed
- method or training objective
- setup and data regime
- headline results and where they hold
- limitations or failure boundary
- why the work matters to the user's question
- primary citation
Evidence and Citation Policy
- cite in text as
[[S#]](#ref-s#)
- keep references anchored with published and accessed dates
- distinguish fact, inference, and uncertainty
- prefer canonical primary sources
- do not rely on weak secondary sources for core conclusions
Quality Gate
Finalize only when:
- major claims are verified or clearly marked uncertain
- contradictions are addressed or left as explicit open issues
- citations are complete and internally consistent
- report depth matches task type
- language matches user language
- if paper-centric policy is triggered, key-work count meets selected depth minimum
- every finalized search run recorded scout plus full-query totals
- if degradation is used, exhaustion minimums and freshness floor are explicitly satisfied and reported
- the selected depth passed
Depth Sanity Check
Persistence Policy
- always output full report in chat
- save exactly one final report file per deep-research run
- default save path under run logs:
<codex-cwd>/logs/runs/<run_id>/reports/deep-research-<slug>.md