Use when a task needs web-backed research with controlled depth, relevance filtering, and citation-ready synthesis. Routes work to quick, standard, or deep tiers, filters low-signal context, and returns a compact packet with key findings, citations, discarded context, confidence gaps, and next queries.
Run web research with explicit budgets, deterministic filtering, and compact evidence handoff.
Use this skill when the user asks for:
Skip this skill for:
research-architect, which calls this skill as its execution backendFor one-command execution (route + optional filter), run:
python3 <skill-dir>/scripts/run_pipeline.py --input /path/to/research.json --pretty
Use --depth-only to return routing budgets without filtering.
For a ready-to-run example, use assets/sample-input.json.
Before searching, produce a strict research brief:
If scope is ambiguous, ask clarifying questions first.
Use scripts/depth_router.py to select quick, standard, or deep.
python3 <skill-dir>/scripts/depth_router.py --pretty <<'JSON'
{
"research_brief": "Compare incident response platforms for SOC teams in regulated healthcare environments.",
"task_context": {
"high_stakes": true,
"requires_current_info": true,
"multi_entity_comparison": true
}
}
JSON
Routing policy:
quick: 3-6 searches, single track, rapid answerstandard: 8-20 searches, 2-4 tracks, one refinement passdeep: 20-80 searches, 4-8 tracks, contradiction checks and broader coverageThe user can override depth explicitly.
Run search rounds with this loop:
Prefer primary sources first, then secondary analysis.
After collecting raw findings, run scripts/evidence_filter.py.
python3 <skill-dir>/scripts/evidence_filter.py --pretty <<'JSON'
{
"research_brief": "Compare incident response platforms for SOC teams in regulated healthcare environments.",
"depth": "standard",
"findings": [
{
"title": "Vendor A security and compliance overview",
"url": "https://example.com/vendor-a/security",
"summary": "HIPAA and SOC 2 controls, audit logging, and breach workflow details.",
"source_type": "official",
"published_at": "2026-01-18"
}
]
}
JSON
The script:
Credibility comes from the URL hostname and the conservative policy in
references/credibility-registry.json. A self-declared source_type can break
ties for a known domain or lower an unknown-domain prior, but it cannot raise an
unknown domain above neutral. Treat the score as a provenance prior, never as a
substitute for checking whether the cited page supports the claim.
The registry covers first-party model, harness, protocol, and agent-framework documentation alongside scholarly, government, university, on-chain, and code hosts. Rules may explicitly cover an owned root plus its subdomains; exact-host matching remains the default. This lets official documentation survive host moves without letting lookalike domains or arbitrary repositories inherit first-party authority.
Ceilings encode what each class can actually establish: provider documentation
is authoritative for its own product behavior but not independent performance
evidence; raw chain state and raw source files are high-provenance and
low-interpretation; a community-authored Dune query is only as good as its SQL;
and a repository README is a claim about the code rather than evidence for it.
Verified priority sources may bypass only the aggregate score threshold. They
must still clear the off-topic floor, deduplication, and finding budget, and the
packet records the bypass so synthesis checks page-level support. Because
priority status comes from the verified hostname policy, missing or mismatched
caller-provided source_type metadata does not disable this safeguard.
Credibility is a reliability prior only. It says nothing about whether a finding is still current — that is a separate axis. A high-scoring source reporting a closed window is reliable and irrelevant, so weigh recency independently rather than letting a strong host stand in for a fresh fact.
Build the final response from filtered output only.
Required output sections:
Return this shape for downstream composition:
research_briefkey_findingscitationsdiscarded_contextconfidence_gapsnext_queriesself_report (optional on quick runs, expected on standard/deep) —
agent-composed at synthesis, not script-emitted; consumed by
research-architect stage-10 postmortemsDo not mix discarded items back into final claims.
confidence_gaps and the self_report.references/contracts.md: input schemas, output schemas, and composable usage notes.references/credibility-registry.json: versioned hostname authority,
owned-subdomain policy, priority-source behavior, document class, score,
ceiling, and rationale rules used by the evidence filter. Add hosts
conservatively; exact matching remains the default.Parallel evidence-gathering stage in the pre-execution pipeline.
research-architect — upstream/downstream orchestrator: engineers the
prompt, routes execution (this skill is the local backend), and verifies
whatever comes back. High-stakes or multi-model research starts there.brainstorming — common caller when option exploration depends on facts.first-principles — common caller when reasoning hinges on unknowns (library behavior, API contracts).write-spec — common caller when the contract needs grounded evidence (the WHAT).write-plan — common caller when execution steps need grounded references (the HOW).fetchmd — narrower tool for fetching specific known URLs into markdown; this skill orchestrates broader web-backed research with depth routing and citation synthesis.Category:web-search