web-research · diff
git:20260529.d0359ed to git:20260601.89c8188
44 added, 16 removed. Audit A to A.
---
name: web-research
description: >-
Use this whenever the user asks you to research a topic, find the current
state of something, compare options, or gather background from the web —
e.g. "what's the latest on X", "find the best approach to Y", "compare
- these three tools". Drives a plan → search → read → synthesize → cite loop.
- tools: [web_search, fetch_url]
+ these three tools". Drives a scope → gather → gap-check → synthesize loop.
+ tools: [web_search, fetch_url, memory_recall, memory_ingest, current_time]
---
# Web Research
- A disciplined loop for turning an open question into a tight, sourced answer.
+ A disciplined pipeline for turning an open question into a tight, sourced answer.
- 1. **Plan briefly.** What does the question actually need? What angles are
- worth covering? Note them before searching.
- 2. **Search.** Use `web_search` to find candidate sources. Prefer primary
- sources and recent material; treat listicles as leads, not authority.
- 3. **Read selectively.** `fetch_url` the 2–4 most promising sources. Read
- deeply rather than skimming ten shallow hits.
- 4. **Synthesize.** Lead with the bottom line, then 2–4 specific claims, each
- with its source URL inline. Surface disagreement between sources when it
- matters.
- 5. **Rate confidence.** End with `Confidence: high | medium | low` based on
- source quality and consensus.
+ ## Scale to the ask
+ A fact lookup is one angle, one pass. "Compare X" is 3-5 dimensions.
+ "Comprehensive analysis of X" is 5-8 dimensions and more rounds. Don't
+ over-research a lookup or under-serve a survey.
- Keep it tight: the answer first, the process never. Don't pad with "I searched
- for…"; deliver the conclusion and let the citations carry the evidence.
+ ## 1. Scope
+ Break the question into a few **orthogonal dimensions** — focused sub-topics
+ that together cover it (e.g. "Rust vs Go" → perf · memory · concurrency ·
+ ecosystem · adoption). A narrow question is one dimension; don't invent angles.
+ When dimensions are independent, fan them out as parallel `task` calls (or one
+ `task_batch`) instead of researching them serially.
+
+ ## 2. Gather (per dimension)
+ - **Reuse first** — `memory_recall` what's already known; don't re-derive it.
+ - **Search wide, then deep** — `web_search` the dimension; for technical or
+ contested topics run a second angle (parent topic, or community/code sources
+ like Reddit/HN/GitHub/SO) so you don't trust one lens. Listicles are leads,
+ not authority; prefer primary + recent.
+ - **Read selectively** — `fetch_url` the 2-4 best hits per dimension; read
+ deeply. Keep a **numbered source list** + a one-line key finding per
+ dimension as you go.
+
+ ## 3. Gap-check (conservative)
+ Ask: does this answer the *original* question? Flag only 1-3 genuine gaps (not
+ tangents), research them as new dimensions, repeat — up to ~3 rounds. Don't
+ rewrite the question or chase saturation.
+
+ ## 4. Synthesize
+ Bottom line first; `##` headings for multi-dimension answers. **Every material
+ claim carries a citation** to your numbered sources, inline as `[1]` (or
+ `[1][3]` where evidence converges). Cite both sides of a real disagreement and
+ say which is better-supported; flag uncertainty. List sources at the end. End
+ with `Confidence: high | medium | low`; for deep research add 3-5 "Related
+ topics".
+
+ ## 5. Persist
+ For substantial research, `memory_ingest` one concise durable finding (takeaway
+ + key sources) so the knowledge base compounds — not raw dumps, and not for
+ quick lookups.
+
+ Keep it tight: the answer first, the process never. Let the citations carry the
+ evidence.