The advocate, judged on turns that happened

Note 0008 froze a design and a three-part gate for a question the programme keeps returning to: can a planner-guided advocate — a computable negotiator that optimizes one seat's captured surplus from that seat's own private sheet and the public record only — produce trajectories good enough to train on? Note 0009 ran it on thinking-ON Qwen3-8B at the protocol's 2,048-token per-turn cap and failed all three gates. This page is the same frozen design re-run with exactly one deviation: the cap raised to 32,768, which on this model cannot be reached without first overrunning the context window. Bank, seeds, cells, model, scaffold, arm, gates, bootstrap seed and analysis code are 0009's, unchanged. Methodology and full adjudication: research note 0054.

The two vintages are never pooled. 0009's episodes and this rerun's episodes are different protocol versions of one design, so every table below prints them as separate columns and no figure on this page averages across them. In the public corpus the experiment-name column (advocate_v1_* versus advocate_v2_uncapped_*) is what a consumer filters on.
0009's verdict survives the rerun; its evidence does not. Uncapped, the intervention still fails all three frozen gates (0 of 3 pass). But it was previously being judged on a corpus in which 71%–74% of every turn was destroyed by the cap, and removing the cap roughly doubled the agreement rate (0.438 → 0.812 in the raw arm) and table welfare (0.454 → 0.843) on the identical 16 games. The failed gate is now a statement about the advocate rather than about the protocol.

1. The censorship the rerun existed to remove, measured

One script (audit_empty_turns.py), the same signatures, over all six cells. A turn is truncated when it stops at the cap, and empty after strip_think when the whole budget was spent inside an unterminated <think> and the engine substituted a placeholder that parses cleanly and passes every gate.

vintage and cellturnstruncatedempty after strip_thinknon-actiongeneration failedp99 tokensmax tokens
0054 uncapped — raw baseline cap 32,7681960.0000.0000.0150.0006,3296,634
0054 uncapped — guided seat 0 cap 32,7682260.0000.0000.0400.0006,4756,912
0054 uncapped — guided seat 1 cap 32,7682520.0000.0000.0440.0006,8857,798
0009 frozen cap — raw baseline cap 2,048 / 2,5603290.7080.6690.7140.0002,2752,535
0009 frozen cap — guided seat 0 cap 2,048 / 2,5603650.7370.7150.7370.0002,3822,419
0009 frozen cap — guided seat 1 cap 2,048 / 2,5603770.7350.7160.7370.0002,5032,552

Roughly 71%–74% of every turn in the published 0009 corpus was a cap-destroyed placeholder, and uncapped it is 0.000 in all three cells. Generation failure is 0.000 in both vintages, so none of this was engine failure — it was budget burn. The longest turn produced anywhere in the 96 uncapped episodes is 7,798 tokens against the 32,768 ceiling, so the new cap is uncapped in effect rather than a new censoring threshold; and with the p99 above 6,000, the old cap was not clipping a thin tail, it was clipping the ordinary turn.

The validation lesson, which generalises past this experiment. 0009 reported 1,071/1,071 turns with full native reasoning and read that as a clean corpus. A turn that spends its entire budget inside an unterminated <think> satisfies “native reasoning persistence” perfectly. Persistence and completion are orthogonal, and only one of them was being measured — so a gate on the first certifies nothing about the second, and any thinking-ON open-weight cell run at the frozen caps should be assumed censored at this rate until its own census says otherwise.

2. The frozen gates, old vintage beside new

Preregistered in 0008 and unmodified for the rerun: the intervention is viable as an RL-example generator only if the focal-surplus interval's lower bound is above zero and neither the agreement-rate nor the welfare interval's lower bound falls below −0.05. Intervals are 95% bootstraps over the 16 hidden-score games with all of a game's episodes resampled together, at 10,000 draws.

guided − raw, paired0054 uncapped0009 frozen capfrozen gate
Focal normalized surplus+0.021 [-0.096, +0.154]-0.006 [-0.149, +0.135]FAILlower bound > 0
Agreement rate-0.031 [-0.172, +0.125]+0.000 [-0.203, +0.219]FAILlower bound ≥ −0.05
Normalized table welfare-0.074 [-0.224, +0.094]-0.008 [-0.231, +0.217]FAILlower bound ≥ −0.05
Opponent normalized surplus-0.094 [-0.202, +0.007]-0.001 [-0.105, +0.107]descriptiveno gate — the safety constraint is on table welfare, and this row is what says whether a focal gain was taken from the other party

All three gates fail again, and the primary point estimate changed sign without changing the verdict. Focal surplus moved from -0.006 [-0.149, +0.135] to +0.021 [-0.096, +0.154] — the direction the intervention wants — on an interval a quarter of the scale wide that contains zero comfortably. Reading a sign change off two point estimates whose intervals almost entirely overlap is exactly the error this programme has already made and withdrawn once, so no thinking-room effect on focal capture is claimed here; the claim is only that the estimate is now measured on turns that happened. By focal seat the effect is neither a seat artefact nor resolved either way:

focal-surplus effect by seat0054 uncapped0009 frozen cap
focal seat 0+0.073 [-0.083, +0.248]+0.006 [-0.252, +0.258]
focal seat 1-0.031 [-0.213, +0.158]-0.019 [-0.135, +0.095]

3. The unpreregistered result that matters most: the game itself changed

0054 uncapped0009 frozen cap
absolute levelrawguidedrawguided
agreement rate0.8120.7810.4380.438
focal normalized surplus0.4220.4420.2270.221
opponent normalized surplus0.4220.3270.2270.226
normalized table welfare0.8430.7700.4540.446

Uncapping nearly doubled every absolute level in the game on the same bank, the same seeds and the same solver-verified hidden scores. Raw Qwen3-8B closes 81% of these negotiations when allowed to finish a thought and 44% when it is not. This reframes a conclusion 0009 drew from its own data: it read a 0.438 agreement rate as a hard negotiation environment in which guidance created 14 agreements and lost 14, but the uncapped corpus says most of those missed deals were not hard bargains — they were conversations in which one side said nothing. Episode length moves the same way and confirms it: 196 / 226 / 252 turns uncapped against 329 / 365 / 377 for the same 32 episodes per cell — fewer turns, far more said in each, and about twice the closure.

4. Extraction, not expansion — a signal 0009 could not see

matched-pair mechanism0054 uncapped0009 frozen cap
pairs where both conditions closed4314
of those, focal up and opponent down (transfer)101
of those, both parties improved (logrolling)00
deals guidance created714
deals guidance lost914

With 43 comparable deals instead of 14, the mechanism becomes legible, and it is transfer: opponent surplus falls by -0.094 [-0.202, +0.007] — a hair from resolving negative — while focal surplus rises by +0.021 [-0.096, +0.154]. 10 pairs are focal-up/opponent-down and 0 improve both sides, so the advocate's effect on a deal that closes either way is to move value across the table rather than to find the logroll — which is precisely why the welfare noninferiority gate fails while the focal estimate turns positive. This is descriptive, on 43 pairs, with no preregistration behind it: a hypothesis for the next design, not a result.

5. Hidden-preference recovery: still negligible

hidden-preference recovery diagnostic0054 uncapped0009 frozen cap
opponent proposals observed by the focal final decision2.231.08
issue-pairwise ranking accuracy0.4660.448
gain over the exact prior+0.029+0.010
posterior mass gain on the true top issue+0.002+0.004
reservation-threshold absolute error0.0530.049
threshold error reduction-0.005-0.000

Uncapping doubled the evidence the planner gets (1.08 → 2.23 opponent proposals observed before the focal decision) because the negotiations actually progress, and it bought essentially nothing: ranking gain is +0.029 over the exact prior, top-issue mass gain is +0.002, and threshold error is still slightly worse than the prior. 0009's diagnosis stands and is now better supported: two public proposals do not identify a hidden type under this posterior, and the fix is an advocate that seeks information rather than one that waits for more of it.

6. Validity

uncapped cellepisodesturnsfull native reasoningplanner-conditioned turnsper-turn capvalidator
raw baselineadvocate_v2_uncapped_baseline32196196 (100%)032,768valid
guided seat 0advocate_v2_uncapped_seat032226226 (100%)11332,768valid
guided seat 1advocate_v2_uncapped_seat132252252 (100%)12832,768valid

Every cell passed validate_advocate_run.py at exactly 32 done episodes with 32 Markdown and 32 HTML transcripts, the frozen bank's 16 instance ids, seeds [0, 1], exact model-conditioned views on every turn, and planner advice on exactly the focal seat's turns and nowhere else. Syntax errors are zero in both arms; the guided arm carries 1 economic error out of its guided turns, recorded in episodes.csv rather than screened out. Fabrication is 0.000 throughout.

The forest plot

Paired guided-minus-raw effects with 95% instance-bootstrap intervals, all spanning zero

Matched pairs you can read

The pairs below are the largest-effect matched comparisons: the same game, the same seed, the same focal seat, with and without the planner, rendered side by side with the first behavioural divergence marked and both trajectories on one shared frontier. They are a curated handful — the full 96-episode corpus with all 64 comparisons and every transcript is on Hugging Face, because the published site has a size ceiling this page respects.

matched pair (guided vs raw, same game and seed)focal Δopponent Δwelfare Δdeal
seat 0 — 5646c8be3d seed 0raw 998da0647e vs guided fdaf1b3e0a+1.000+0.219+1.2190 → 1
seat 1 — 2d5d5b106e seed 0raw a5193ebca5 vs guided 24299c8e1a+0.000-1.000-1.0001 → 0
seat 1 — 2d5d5b106e seed 1raw d9429c7a6a vs guided da9b02f17d+0.000-1.000-1.0001 → 0
seat 0 — eddb2da273 seed 1raw 05e77bb5c8 vs guided 703e963e93-0.062-1.000-1.0621 → 0
seat 1 — ce3bfa6570 seed 1raw d329d730a6 vs guided 82dc0583a6-1.000+0.000-1.0001 → 0
seat 0 — 90316f9784 seed 0raw 980772b988 vs guided 52f9fedc5b-1.000-0.045-1.0451 → 0
seat 1 — 4abed256fd seed 1raw 70f94b0da4 vs guided df8df54a50-1.000-0.103-1.1031 → 0
seat 0 — 119dfa1112 seed 0raw 5ab169b34d vs guided e03917b208-1.000-0.269-1.2691 → 0

Each set also has the viewer's own sortable index: guided-seat0, guided-seat1, vintage.

The same game at both caps

The most direct look at what the cap did: the raw baseline against itself, frozen-cap vintage on the left and uncapped on the right, paired on game, seed and arm so the cap is the only thing that differs. The censored turns are on the left, and they are readable as such — the turn's prompt-audit panel shows its reasoning stopping mid-sentence with raw_truncated set, and the message it published is the engine's placeholder, “ran out of time this turn and says nothing substantive”. Pairing here is across vintages for inspection only; no figure on this page is computed over the two together.

Artifacts