deep-research
Deep Research Skill
Systematically explore a topic using parallel agents across applicable orthogonal dimensions (WHO/WHAT/HOW/WHERE/WHEN/WHY/LIMITS). Unlike a quick research brief, this skill provides structured multi-dimensional coverage with source quality tiers and risk-stratified spot-checking. Coverage is bounded by a user-controlled round budget; the output honestly characterizes what was covered and what wasn't.
Execution Model
This skill inherits the four execution-model contracts (files-not-inline, state-before-agent-spawn, structured-output, independence-invariant) from _shared/execution-model-contracts.md. The shared file is authoritative; the elaborations below are the research-specific applications.
Subagent watchdog: every research-direction spawn (Scout, Researcher, Deep Dive) and every verification/summary spawn MUST be armed with a staleness monitor per _shared/subagent-watchdog.md. This is the skill most vulnerable to silent multi-hour hangs (the 18-hour-silent-death failure mode). Use Flavor A with the thresholds below — these are calibration defaults, override via state.json → watchdog_thresholds per tier. Defaults are tuned for WebSearch/WebFetch-bound work on median-latency networks:
| Tier | STALE (first warning) |
HUNG (kill) |
Notes |
|---|---|---|---|
| Scout | 10 min | 30 min | Short directions; should return quickly. |
| Researcher | 15 min | 45 min | Web fetches on slow sources legitimately sit quiet for a while. |
| Deep Dive | 15 min | 45 min | Same rationale as Researcher. |
Raise thresholds for topics with known-slow sources (e.g. heavily rate-limited APIs, archive.org lookups); lower for topics where every direction is a single-endpoint adapter call. Wrong thresholds produce false-positive kills or late hang detection — they do not change correctness, because watchdog-killed directions are reported as coverage-lost, not silently omitted. Never block on TaskOutput(block=true) without a watchdog armed against the spawn's output file. Contract inheritance: timed_out_heartbeat joins this skill's per-direction termination vocabulary; stalled_watchdog / hung_killed join directions.{id}.status.