Answer a factual question fast and sourced. The whole flow is time-boxed: simple ≤2 min, complex ≤5 min. Speed comes from four levers — triage the effort, search in parallel, read snippets before fetching, and stop the moment the answer is corroborated. Never rabbit-hole; never exceed the tier budget; never emit an uncited or confident-but-unverified claim.
If the request is for a comprehensive / exhaustive multi-source report, this is the wrong skill — defer to deep-research. This skill returns a bounded, bottom-line answer, not a report.
0 — Preflight. Restate the question in one line; extract the precise claim/entity to verify. If it is subjective/opinion or answerable without the web, stop and say so (don't fabricate a "fact").
1 — Triage → budget. Load rules/triage.md. Decide simple vs complex
(when genuinely unsure, or the topic is contested, treat as complex) and adopt that
tier's budget: rounds, parallel width, fetch cap, source bar, time target.
2 — Round 1: parallel search. Load rules/search-protocol.md. Decompose the
question into angles and issue the tier's searches as parallel tool calls in a
single message — never one at a time. Read result snippets first.
3 — Corroborate & early-exit. WebFetch a full page only when a snippet is
insufficient or a number/quote must be verified (≤ the tier's fetch cap). The
moment the bottom line is corroborated to the tier's source bar, stop
searching and go to Step 5.
4 — One more round (complex only). If still under-corroborated or sources conflict and a round remains, run one targeted round to fill the specific gap or triangulate the conflict. Still short → declare uncertain.
5 — Synthesize the answer. Load rules/output-contract.md and fill
assets/answer-template.md: a one-line Answer up front, a Confidence label
(High/Medium/Low), the Tier, 2–4 cited evidence bullets, a numbered Sources
list, and Caveats only if needed. Every load-bearing claim carries a citation.
6 — Self-check, then emit. Verify against the contract; optionally run
node scripts/check_answer.mjs <answer.md> to confirm the structure (every [n]
resolves, confidence set, per-tier source bar met). Emit; stop — do not exceed
the budget.
rules/triage.md)#FileWhen to loadrules/triage.mdStep 1 — simple/complex rubric + the per-tier budget table + the uncertain path.rules/search-protocol.mdStep 2–4 — query decomposition, parallel fan-out, snippet-first, early-exit on saturation, conflict triangulation, claim→evidence.rules/output-contract.mdStep 5–6 — the BLUF format, confidence labels, citation rules, the self-check.references/source-reliability.mdWhen grading sources or a fact is volatile (freshness / as-of date).references/metrics.mdWhen measuring the skill (speed, traceability, confident-wrong rate).
FileUsagescripts/check_answer.mjs``node scripts/check_answer.mjs <answer.md> — deterministic answer-contract validator (BLUF, confidence, tier, citation resolution, per-tier source bar). The release gate + optional Step-6 self-check.
FileUsageassets/answer-template.mdThe fill-in answer skeleton (Answer / Confidence / Tier / Key evidence / Sources / Caveats).