← Frontier Inference Margins · all research reports
Pre-implementation adversarial review of PLAN-v22.md. Four personas (skeptic / architect / risk-analyst / empiricist) ran independently with full source access; synthesis below is verbatim. Full persona outputs: workspace run
2026-07-11-inference-margins-v22-plan-20260711T021118Z. Verdict: do not implement as written; revise against seven P0 conditions, then proceed.
All four agents independently reached the same headline verdict — do not implement PLAN-v22 as written; revise first — and, more tellingly, converged on the same two structural failure modes (false orthogonality in B, provenance laundering in C/E) as the ones that would recreate exactly what v2.1.1 was built to repair. That convergence, reached without cross-talk, is the strongest signal in this packet. The disagreements that remain are about ambition level, current deployment state, and one scope-gate call — not about direction.
engine.js/app.js byte-match local; all 514 assertions pass. [unanimous] (all four independently ran the check)[unanimous]ioRatio/cacheHit to a "workload" axis while interact, batch, SLA, fleet, and replay overrides stay scattered produces three selectors that look orthogonal but aren't. The load-bearing proof is the same arithmetic in all four outputs: Grok + xAI-opportunity resolves 3:1/0% → 26.95%; forcing that lens to 15:1/60% → 36.52% — the stale value v2.1.1 explicitly repaired. A single nativeWorkload cannot preserve both the 43.35% median default and the 26.95% replay while making lenses workload-independent. [unanimous][unanimous]Reference 15:1/60%, DeepSeek disclosure, ncode event, xAI dive 3:1/0%). [unanimous][unanimous][unanimous][unanimous] (Skeptic and Empiricist name it as an existing, unrepaired defect)im_presets_v1 browser presets must be migrated, mapping exact known pairs to profile IDs and everything else to legacy-custom. [unanimous on v3; skeptic, architect, risk-analyst explicitly flag the browser-preset migration the plan omits][unanimous] (Skeptic/Risk/Empiricist say reject-for-v2.2; Architect says preflight-inventory-first — see Disagreement 4)[unanimous][unanimous][skeptic, architect, empiricist][unanimous][unanimous]engine.js, exercises no DOM/encodeScenario/decodeScenario/migration/selector-identity, and duplicates app.js pairing logic (a fresh drift surface). More engine assertions won't pre-empt the next review. [empiricist, risk-analyst, skeptic][unanimous; risk-analyst + empiricist specify the 180-pair freeze][unanimous on the four; skeptic + architect on making ontology/export explicit][skeptic, risk-analyst, empiricist]The disagreement: Is the §0 Jukan correction already live, applied-locally-not-deployed, or a no-op that risks collateral damage?
Each side:
index.html differs from production only through the Jukan removal, and that edit has not yet been deployed. Risk Analyst adds that the local §6 replacement carries a grammatical break ("— Where…") that must be finished before deploy._xjdr/ncode §6 attribution paragraph.Adjudication — Empiricist + Risk Analyst win on precision. They performed the byte-level local-vs-deployed diff and caught the unfinished grammatical break; Architect's "already live" almost certainly conflated "applied locally" with "deployed" (the same byte-check the others ran shows index.html is ahead of production). Resolution: the edit exists locally, is not yet deployed, needs the "— Where…" fragment finished, and Skeptic's caution stands as an overlay — deploy it as a discrete, version-boundaried step and verify the _xjdr §6 paragraph is untouched in the process. This is cheap and should happen before the refactor, not folded into it.
The disagreement: Should the release be a genuine typed model/workload+SLA/lens/replay resolver (earning the "v2.2 ontology" claim), or a scoped Traffic-Mix selector shipped honestly as v2.1.2?
Each side:
Adjudication — largely reconcilable, with the irreducible part being a business input the agents don't have. Everyone agrees the scoped version is shippable provided it (a) is renamed, (b) doesn't claim to resolve conflation, and (c) lists the full ontology as explicit OUT. So the substantive engineering position is shared. The genuine split is over the version label and default ambition — and that turns on a deadline none of the four can see. Weight the Architect's naming discipline: the prior council's unanimous "prerequisite work" verdict is real external evidence that a two-field move shouldn't wear the v2.2 badge. Cleanest resolution: if you do the full resolver, it's v2.2; if you ship the scoped version, call it v2.1.2 — the version number should track the ontology work actually done, which resolves the disagreement without anyone conceding on substance. Irreducible until the deadline/resourcing constraint is stated.
The disagreement: Should the human-reader test block v2.2, or remain an open-but-non-blocking validation deferred outside implementation?
Each side:
Adjudication — the gap is narrower than it looks, and Empiricist's framing should win the operative call. All four agree persona ≠ human-reception substitute, and all four agree the test remains owed. The only real split is whether it blocks ship. Empiricist has both the strongest evidence base and the strongest practical hook: the human test is also the cheapest decisive experiment (five literate readers, 90 seconds each, hours not days), and running it before the persona phase turns "is E worth building?" from an assumption into a measurement. Resolution: don't let it block the code refactor, but make the human-vs-persona blind comparison the recommended next validation action, and treat a green persona phase as non-satisfying. Functionally this adopts Empiricist's experiment while respecting the others' scope boundary.
The disagreement: Skeptic, Risk Analyst, and Empiricist say REJECT D for v2.2 outright; Architect says run a range-metadata inventory first and implement only if ≥3 presets qualify.
Adjudication — converges in practice. Both paths gate on a typed range registry (bounds, source locator, date, scope, range-type, correlation group) that does not yet exist, and both leave the chart out of the v2.2 implementation sequence. The only difference is whether the inventory runs now (Architect) or in backlog (others). Resolution: defer D from the implementation sequence; build the range registry as the gating precondition — semantically identical outcomes, so this is a sequencing preference, not a real conflict.
[empiricist surfaced; skeptic, architect, risk-analyst all flag the retrieval dependency][synthesis-emergent from Architect's Alternative-3-vs-2 fork][empiricist][synthesis-emergent from all four][risk-analyst]15:1/60% encodes neither field and reloads as 9:1/78%. Some v2→v3 migration is therefore irrecoverably lossy — the open question is only whether to accept legacy-custom as the honest fallback. [risk-analyst].bak files and deployed Cloudflare assets. [risk-analyst — unique catch]Do not implement PLAN-v22 as written. Revise it against the seven P0 conditions below, then proceed with mitigation. A/C can proceed after provenance cleanup; B needs a written state contract before any code; E needs redesign; D is deferred.
Confidence:
The seven P0-before-implementation conditions (consolidated from all four P0 lists):
legacy-custom where default-equality is irrecoverable), and im_presets_v1 migration — as failing fixtures before any implementation.git init or a checksum-stamped v2.1.1 snapshot — and freeze the 514 baseline + all 180 model×perspective resolutions before touching anything._xjdr §6 paragraph is untouched.Two live defects to fix regardless of the plan (Empiricist-found, currently shipped): the _xjdr blockquote alters "2.1 sec TTFT overage" → "average" and drops his 61-second p95 without marking the omission; both are attribution-fidelity errors the next review will flag independently of anything in v2.2. These are near-free and should ride along with the §0 deploy.
Gaps where Risk Analyst's failure modes are not addressed by Architect's design: the git/rollback boundary, the v3-permalink private-rate exposure, and the reproduced v2-default-equality lossy-migration bug. Fold these into the B contract (P0 #1) and the rollback step (P0 #6).
Conditions that would change the recommendation:
Cheapest next action that moves the decision forward: Write the B resolver fixture matrix as failing tests — legacy Opus link, Grok + xAI-opportunity, GLM dive replay, model-default workload, named workload, custom workload — asserting selector identity, final state, provenance, dive targets, and lens-range invariance. It's hours of work, it's a specification test not a research experiment, and it forces the #1 P0 (the state contract) to be pinned down before a line of production code is written. Run it alongside the Empiricist's five-reader blind comparison, which for a few more hours answers whether E's simulation track is worth building at all. Both are cheap, both are decisive, and neither commits you to the refactor.
| Claim | Contributing agent(s) |
|---|---|
| v2.1.1 healthy; 514 pass; assets byte-match | all four (independent verification) |
| B is a worse hybrid; xAI 26.95% vs 36.52% conflict | skeptic, risk-analyst, empiricist (arithmetic); architect (mechanism) |
| Rename Workload → Traffic Mix | unanimous |
| Preset names overclaim vs. site's own tooltips | unanimous (empiricist cited DeepSeek/xjdr/Epoch primary sources) |
| "Provider-native" is a misnomer → "model default" | unanimous |
| Anti-shopping range is a residual unrepaired defect | skeptic, empiricist |
v3 schema + im_presets_v1 browser-preset migration |
skeptic, architect, risk-analyst |
| v2 codec loses default-equal workload values (reproduced) | risk-analyst |
| Replays must be atomic composites | unanimous |
| Tornado gate is circular / selection-biased; defer D | unanimous (architect = preflight-first) |
| Drop named-person sim; add @_xjdr as source audit | unanimous |
| Drop redundant dunker persona | skeptic, architect, empiricist |
| C: reject verbatim re-emission | unanimous |
| A: retain range-basis sentence; export §6 first | unanimous |
| 514 suite = test-count theater (no DOM/permalink coverage) | empiricist, risk-analyst, skeptic |
| Full-resolver vs. scoped-v2.1.2; prior council "prerequisite work" | architect (primary); risk-analyst (accepts scoped) |
| Five-human test should be a release gate + cheapest experiment | empiricist |
| Persona-fidelity literature (Zheng, Luz de Araujo, Bisbee, Sharma) | empiricist |
| §0 applied-locally-not-deployed; "— Where…" break | empiricist, risk-analyst |
§0 collateral-damage risk to _xjdr paragraph |
skeptic |
_xjdr blockquote "overage→average" + dropped p95 defect |
empiricist |
| Dylan citation is not a primary post | empiricist |
| No Git / rollback boundary | risk-analyst |
| Freeze 180 resolutions before refactor | risk-analyst, empiricist |
| v3 permalinks may leak private rates | risk-analyst |
| GPT-reviewing-GPT is not independent | skeptic, risk-analyst, empiricist |
| Resolver fixture matrix = cheapest unblock | empiricist |