# Briefs, judgment and the verdict

From a confirmed workload to the verdict the user reads at stop 2.

## The fan-out

Dispatch in parallel, all read-only:

- **One optimizer per top call, at the cheapest capable tier.** Its brief is self-contained: the repository and stack; the schema reference and the workload table; the shared pieces by id, to cite instead of re-deriving; the whole of `techniques.md`; its own call — endpoint, volume per 10,000, and its hot, warm and cold cost. Its single agenda is that call's performance. It replies in at most 45 lines: the cost today, confirmed or corrected; proposals, most impactful first, each with its kind, its new cost per temperature, what it adds elsewhere (writes, invalidation duty, staleness, memory), the calls it helps or hurts, and its correctness risk; the best cost it can reach; any schema change other calls might object to.
- **One frame reviewer, at the standard tier.** It reads the same workload and asks whether the frame is enough to decide: which dimension, missing from volume and temperature cost, would change a decision here — round trips and pool pressure, per-tenant skew, background work that scales with the keyspace, staleness per fact, coherence across processes, the page-load path, measurement against the model. Every finding passes four tests — grounded in the repository, material to a choice, new to the frame, answerable by the owner — and it returns at most eight, ending with whether the frame is enough and the one dimension it would add first.

## The judgment

The verdict is never delegated.

- **Rank by volume × saving.** A read removed from a call making 70% of traffic outranks a statement cut from a sign-in path; say the share of load each adopted change removes.
- **Deduplicate by shared piece.** Several optimizers propose the same fix to a shared piece; adopt it once, credited to every call it serves.
- **Prefer the smaller surface.** Between two designs with the same saving, take the one with fewer writers to keep correct; a version key beats a delete-on-write, a recount beats an increment.
- **Reject what breaks a limit** in `techniques.md`, naming the limit.
- **Apply the frame reviewer's dimensions** that bite, and say which choices they moved.
- **Place each adopted change:** a schema change (columns, indexes, merges), a cache change (keys, values, lifetimes), a process-local cache, or a code-only cut.

## The tracers

Over the adopted changes, dispatch one tracer per area at the cheapest capable tier — the cached objects and their writers, the process-local cache and its publishers, the request-scoped state, the rare paths — each briefed to find every reader and writer the design misses, with `file:line` on both sides and a severity. A finding that a premise is false rewrites the design, not just its wording; fold every amendment before the verdict.

## Stop 2 — the verdict

Write `verdict.md` in the run folder and return a report of at most 60 lines:

- the schema changes, the cache changes, the process-local cache changes and the code-only cuts, each with the calls it serves and its share of load;
- the index verdict, one row per index (`indexes.md` § The index verdict);
- what was rejected or deferred, each with its reason;
- the cost after: hot database statements on the top calls, and statements per active person per day before and after;
- the frame reviewer's verdict and the dimensions it added;
- every question only the owner can answer.

The user decides whether a plan is written from it; the session writes that plan through the normal plan pass, with the verdict as its background.

## Price

State it at stop 1 and again here: one trace, one optimizer per top call and one frame reviewer, then one tracer per area — about 25 sub-agents for a 20-call workload, all but the frame reviewer at the cheapest capable tier.
