Web Research & Summarize
Given a question, search the web, read the top sources, and return a concise synthesis with inline citations — no fabricated facts.
researchweb-searchsummarizationcitationssynthesis
# Web Research & Summarize
## Purpose
Turn an open question into a short, trustworthy answer by searching the web, reading the best sources, and synthesizing them with inline citations. The outcome is a claim-by-claim grounded summary where every non-obvious statement traces back to a real source.
## When to use
- The user asks a factual, current-events, or comparative question whose answer likely lives in public web pages.
- You need up-to-date information beyond your training cutoff (prices, releases, news, docs).
- The user wants a sourced briefing, not just your own recollection.
- Do NOT use for tasks answerable from the conversation or local files alone.
## Inputs
- `question` (string, required): the research question or topic.
- `depth` (enum: `quick` | `standard` | `deep`, optional, default `standard`): how many sources to read (~3 / ~6 / ~10).
- `recency` (string, optional): e.g. `past_year`, `past_month` — bias search toward fresh results.
- `audience` (string, optional): tunes reading level and length of the summary.
## Steps
1. Clarify scope. If the question is ambiguous or multi-part, restate your interpretation in one line before researching. If it is severely underspecified, ask 1-2 targeted questions first.
2. Plan queries. Derive 2-4 distinct search queries covering different angles/terms. Apply `recency` filters when supplied.
3. Search. Use a web search tool for each query. Collect candidate URLs; prefer primary sources (official docs, original reporting, standards bodies, peer-reviewed work) over aggregators and SEO content.
4. Select sources. Pick the top N by relevance and authority (N from `depth`). Favor source diversity — avoid 6 pages that all copy one origin.
5. Read. Use a web fetch/reader tool to retrieve full text of each selected source. Note publication date and author/publisher. Skip paywalled or unreachable pages and replace them.
6. Extract claims. For each source, pull the specific facts/figures/quotes relevant to the question. Attach the source to each claim.
7. Cross-check. Where sources agree, mark the claim as corroborated. Where they conflict, surface the disagreement rather than silently picking one; note which source is more authoritative or recent.
8. Synthesize. Write a concise answer organized by sub-question or theme. Add an inline citation marker (e.g. `[1]`) after each claim, mapped to a numbered Sources list with title + URL + date.
9. Validate. Re-read the draft: every factual sentence must have a citation; remove anything you could not source; flag remaining uncertainty explicitly.
## Output
Markdown with three parts: (1) a 1-3 sentence direct answer, (2) a short body grouped by theme with inline `[n]` markers, (3) a numbered Sources list. Example shape:
```
**Answer:** Rust 1.78 stabilized X [1].
### Details
- X works by ... [1]
- A 2026 benchmark showed Y, though [2] disputes the methodology [2][3].
### Sources
1. Title — https://example.com/a (2026-03-10)
2. Title — https://example.com/b (2026-04-02)
```
## Guardrails & notes
- Never invent facts, quotes, statistics, or URLs. If you cannot find a source, say so — an honest gap beats a confident hallucination.
- Cite the source you actually read, not where you wish the fact came from. One claim, one (or more) real citation.
- Distinguish primary sources from commentary; prefer primary. Note dates so the reader can judge staleness.
- Surface conflicting evidence instead of averaging it away.
- Respect rate limits: on a 429/timeout, back off and retry a bounded number of times, then drop that source and substitute another.
- Idempotent and read-only — it fetches and reads, never posts or mutates external state.
- Strip tracking params from URLs; do not log credentials, cookies, or any PII encountered on a page. Never embed real secrets/API keys — use placeholders like `<YOUR_API_KEY>`.
## Example
Input: `question: "What is the current stable Node.js LTS version and its support end date?"`, `recency: past_month`.
Output:
```
**Answer:** Node.js 22 ("Jod") is the active LTS; maintenance support ends April 2027 [1].
### Details
- Node 22 entered LTS in Oct 2024 and is the current active LTS line [1].
- The official release schedule lists end-of-life as 2027-04-30 [1][2].
### Sources
1. Node.js Releases — https://nodejs.org/en/about/previous-releases (2026-06-01)
2. nodejs/Release schedule — https://github.com/nodejs/release (2026-05-20)
```Use this skill
Install creates a private, read-only copy in your own registry. Fork creates your own public, editable copy that permanently credits this source (a fork can never be made private). Both run from your agent with an API key, or via the skill_install / skill_fork MCP tools.
curl -X POST https://agentprizm.com/api/v1/agent/marketplace/install \
-H "Authorization: Bearer ap_your_key" \
-H "Content-Type: application/json" \
-d '{"sourceSkillId":"6a3d5ec4ff1e38ac55db55e1"}'curl -X POST https://agentprizm.com/api/v1/agent/marketplace/fork \
-H "Authorization: Bearer ap_your_key" \
-H "Content-Type: application/json" \
-d '{"sourceSkillId":"6a3d5ec4ff1e38ac55db55e1"}'Ship agents that remember.
Six lines of code. Confidence scores, validity windows, and audit trails included. Free until your agents ship.