# V16.13 — External Research Intelligence (Speed-First)

## Why this release exists

Most coding tasks do not need the network. V16.13 makes real tasks finish
faster without reducing correctness by ensuring most tasks DO NOT RESEARCH
AT ALL, and tasks that need research use the smallest sufficient evidence.

## Laws

- P1 Zero-research fast path: trivial/local-grounded tasks perform zero
  external network, browser, DeepSeek, or research model turns.
- P2 Deterministic admission: no LLM decides whether research is needed.
  Model confidence alone never triggers research.
- P3 Safe overlap: only read-only local prep overlaps provider I/O. Source
  writes are fenced behind the Decision Barrier.
- P4 First sufficient evidence wins: cancel surplus work, never fill
  maxSources as a target.
- P5 Primary sources first: local, exact-version official docs, GitHub,
  then generic search, selective fetch, DeepSeek synthesis last.
- P6 Browser is last resort: ordinary docs lookup launches no browser.
- P7 DeepSeek is not default: synthesis only on conflict, architecture
  uncertainty, incomplete primaries, alternatives, or explicit request.
- P8 Targeted verification first: affected/targeted rungs before suites.

## Capabilities

| # | Owner | Question |
|---|-------|----------|
| A | `lib/research-brief-v16-13.mjs` | Should we research, with what budget? |
| B | `lib/research-provider-router-v16-13.mjs` | Which providers, in which order? |
| C | `lib/external-research-broker-v16-13.mjs` | How do we compose, cancel, and capsule? |
| D | `lib/research-network-policy-v16-13.mjs` | Is this egress safe? |

Helpers (`version-join`, `provider-official`, `provider-github`,
`page-fetch`, `cache-helper`) never become duplicate authorities:
EvidenceStore owns bytes, Metrics V2 owns aggregation, the Verification
Ladder owns escalation.

## Production wiring

`pi/extensions/ues.ts` stays thin: it requests the lazy RESEARCH stack,
invokes admission, invokes the broker, passes the bounded ResearchCapsule
(8000 chars), and exposes read-only status. LOCAL_ONLY and PI_ONLY hydrate
none of the research modules.

## Verification

Research never produces PASS. The local verifier remains the only PASS
authority. DeepSeek remains an untrusted advisor; unsourced claims stay
`UNVERIFIED_ADVISOR_CLAIM`.

## Non-goals / explicit limits

No browser V3, no browser pool, no research swarm, no vector DB, no
crawler, no paid routing, no DeepSeek executor, no autonomous publish.

## Benchmark honesty

`scripts/bench-v16-13-research.mjs` reports `synthetic: true`,
`claimStatus: SIMULATED_ONLY`, `providerTokens: NOT_MEASURED`. Cells are
per-scenario, never averaged into one speedup claim.
