L The Saleroom Five models · six seats · every deal on the record

← The lots · Adversarial verifier verdict · V5-stimuli

V5-stimuli

The independent adversarial check behind the finding: detectors re-run, claims sharpened or corrected, every number re-derived.


V5 — Adversarial verification of B7 matched-stimuli claims

Verifier: V5, deep-dive round 2. Target claims: b7-opus-negotiates-bot-stimuli, b7-ladder-identity-until-first-trade, b7-crossarm-accept-instability, b7-arm-offer-pressure-asymmetry. All pipelines rebuilt from scratch off runs/deep-dive/index/*.jsonl (my own scripts: V5-rebuild.py, V5-baseline.py, V5-audit.py in /var/…/opencode); zero finder-code reuse.

VERDICT: WEAKENED — core contrast fully survives independent rebuild

(paired, clean-subset and strict-net significance all hold), but two headline numbers in the claim are arithmetically wrong, one instrument statement is overbroad, and the baseline attack reframe is mandatory: opus’s countering is a general cross-arm behavioral trait, not something specific to bot stimuli. Corrected claim below.


A. Rebuild of the matched sets — REPRODUCED EXACTLY

Independent canonicalization (direction, frozenset(give_goods), frozenset(get_goods), money) grouped by (seed, turn, bot_role, canon) across the five SOC model-cells:

  • 44 matched sets, size histogram {2:19, 3:13, 4:2, 5:10}, 135 memberships — identical to finder.
  • Per-seed sets: 9000:1, 9098:6, 9103:3, 9165:27, 9167:7, 9096:0 — identical.
  • scenario_id unique per seed across all 10 cells (all 6 seeds) — byte-identical scenario confirmed.
  • SOC focal seat constant within seed across models (9000→a1, 9096→a4, 9098→a3, 9103→a2, 9165→a2, 9167→a5): no seat confound possible within any paired set.

My response distribution (final structured action toward proposer, window (stim_turn, min(outcome_turn, +3)], messages.jsonl decision rows only):

modelncounteracceptrejectignore
claude-opus-52014 (5 same [2*], 9 other [5*])3 (1*)12
gpt-5.6-sol2914231
x-ai/grok-4.63014 (1*)232
meta/muse-spark-1.22913250
thinkingmachines/inkling-small2714211

B. Arithmetic errors found in the finder’s claim (rule 10)

  1. “Other four: 3 counters / 115” is wrong. Their OWN Finding-2 table sums to 4 (sol 1 + grok 1 + muse 1 + inkling 1, each counter_other except muse counter_same). Correct: 4/115 (3.5%), not 3/115 (2.6%). Direction unaffected.
  2. “95 reject-family” is wrong. Their table column sums to 92 (23+23+25+21); my recount agrees: 92 rejects + 4 ignores = 96 non-counter-non-accept of 115. The “83%” should be 80% (rejects alone) or 83% counting ignores.
  3. Opus side verified exactly: 14 counters + 1 negotiate-to-accept (accept*) = 15/20 under their definition; exactly 1 flat reject (9167 t3 anchorer -34 g0, explicit: “34 for g0 is not a bid I can look at … that’s rejected, cleanly and without haggling” — campaign-9167-p24-9167-opus-soc-r0 | t4 | a5). The 2 ignores were not mentioned in the claim text; counting them as refusals gives 15 negotiate vs 5 not — direction unchanged.

C. Attack 1 (turn alignment): FAILS TO BREAK

Membership turn distributions near-identical across models (every model gets the 8 t1-set memberships; opus median turn ≈ others’). Within every set, turn and terms are pinned by construction. No evidence opus responds at systematically cheaper ladder stages.

D. Attack 2 (seat/bot concentration): FAILS TO BREAK

Opus’s 20 memberships spread over 5 seeds × 8 distinct (seed,bot) pairings (anchorer 9000/9098/9167×3, hardliner 9098/9103/9165×4, tit_for_tat 9098/9165×4, time_dependent 9103, truthful 9165×2). Not single-bot/single-seed. Per-seed contrast (counters/n): 9165: opus 8/10 vs 0/58; 9098: 2/3 vs 0/20; 9000: 1/1 (muse ties at 1/1); 9103: 1/2 vs sol 1/3, grok 1/3 (tie-ish); 9167: 2/4 vs inkling 1/6 (weakest). Direction present in 4/6 seeds, driven strongest by dirty-history 9165 (see F).

E. Attack 3 (baseline): SURVIVES BUT REFRAMES THE FINDING

Counter-family rate on ALL incoming offers to focal seats, same classifier:

modelSOC bots unmatched nc%AOC live-seat nc%
opus1242%28151%
sol1619%35119%
grok729%2779%
muse50%27510%
inkling813%2666%

Opus counters live-seat offers at 51% — highest by 2.7x — but does NOT counter everything, and the others are not at zero outside the matched subset. The matched-instrument contrast (70% vs 3.5%, Fisher one-sided p≈2.6e-11) is the starkest expression of a general per-model trait: opus runs persistent multi-turn threads; the rest answer once and stop. Volume confound checked and insufficient: opus sends 24.5 structured proposes/cell vs 14.1–20.2 for others (≤1.7x) — cannot explain a 20x counter-rate gap. Decisions/cell identical (12).

F. Attacks 4+5 (classification & strictness): CORE SURVIVES, LABEL IS GENEROUS

Hand-read all 20 opus responses, all 4 non-opus counters, 8 random non-opus rejects, plus quote integrity (all 10 cited quotes found verbatim at cited cell|turn|agent; note muse’s quoted rhetoric is t2 but its counter classification correctly rests on its t3 structured propose).

  • Every opus “counter” is a real structured propose with terms (no rhetoric-only counting).
  • But 9 of opus’s 14 counters are counter_other — mostly explicit verbal refusal of the stimulus + pivot to an unrelated standing thread (e.g. 9098 t1 tit_for_tat: “I can’t do 43 for g4… But my cash offer to you stands: 22 for g0 and g5”). One (9103 t1 time_dependent) never mentions the stimulus at all. Counting these as “negotiates the stimulus” is generous; symmetric treatment confirmed though — grok/sol get identical counter_other credit for the same behavior at 9103 t1 (“I no longer hold g3, so I cannot fill o6…”).
  • Strict net (counter_same family only): opus 5/20 vs others 1/115, p≈2.4e-4. Still decisive.
  • Paired-only analysis (memberships of the 20 opus-containing sets): opus 14/20 vs others 3/54, p≈4.3e-8.
  • Fully-clean subset (set.turn < first focal trade in EVERY member cell): only 8 memberships/model survive; opus 5/8 counters + 3 accepts, 0 rejects vs others 3/32 counters, p≈0.0038. Small but significant.
  • Non-opus “flat rejects” audited: genuine explicit offer_kind=reject messages (sample of 8 all explicit, e.g. “Your offer of 61 for g0 is well below my valuation of 91 — rejecting o89.”). Silent-ignore vs explicit-reject handled consistently (separate categories; only 1 ignore-with-rhetoric case, opus 9165 t18).
  • Detector recall: zero stimuli with outcome_turn ≤ turn (no window-empty cases); outcome=None rows (2) classified ignore conservatively.

G. Attack 6 (prefix identity): CONFIRMED WITH TWO CORRECTIONS

Content-sorted streams, all pairwise prefixes, all 6 seeds (my recomputation):

seedcommon prefix (min/max pairs)first focal tradesguaranteed-clean shared window
90001 / 1t2 allt1 stimuli only
90960 / 0 — sol & grok share NO common stimulus (2–3 late stimuli each, t17–20)t4none (degenerate)
90983 / 6t2–t4turns ≤1
91032 / 3t2 allturns ≤1
91651 / 3t2–t4shared prefix itself lies AFTER first trades (t5 > t2)
91673 / 7t2 allturns ≤1–3 (t3 shared stim is post-trade)

Corrections: (i) “prefix-identical across all five models at every seed” is vacuously false at 9096 — the only two stimulated cells share nothing (finder flagged degeneracy but the claim sentence overstates); (ii) divergence was never observed before any member’s first trade (mechanism consistent), but shared stimuli frequently occur after first trades (9165 entirely so), which is why only 8 memberships/model are fully history-clean. Usable pre-trade instrument: the t1 sets at 9000/9098/9103/9167 and nothing else.

H. Corrected claim (replaces b7-opus-negotiates-bot-stimuli)

On byte-identical bot→focal offers (44 matched sets / 135 memberships, same seed/scenario/turn/bot/terms; SOC focal seat constant within seed), claude-opus-5 counters or negotiates-to-accept 15/20 (14 structured counters — 5 touching the stimulus good — plus 1 counter-then-accept) with exactly 1 flat reject and 2 ignores; the other four models combine for 4 counters / 115 (3.5%; finder claimed 3) and 92 rejects + 4 ignores (finder claimed 95 rejects). Contrast holds paired-within-sets (14/20 vs 3/54, p≈4e-8), on the fully-clean pre-trade subset (5/8 vs 3/32, p≈0.004), and under a strict counter-same-good net (5/20 vs 1/115, p≈2e-4). This reflects a GENERAL trait, not bot-specific behavior: vs AOC live-seat offers opus counters 142/281 (51%) vs sol 19%, grok 9%, muse 10%, inkling 6%. 6–9 of opus’s counters are refuse-and-pivot engagements rather than price-counters of the stimulus itself.

b7-arm-offer-pressure-asymmetry (183 vs 1,450 incoming offers) reproduced exactly. b7-crossarm-accept-instability spot-checks (opus 9103, grok 9098, sol 9165 dual quotes) verified verbatim; full recomputation of its nets not duplicated beyond spot checks.

What the finder’s framing obscured

  • In their favor: nothing material — the effect is more robust than claimed (paired and strict nets still highly significant; arithmetic errors were anti-conservative for the claim but tiny).
  • Against: the “on identical bot stimuli” framing hides that this is opus’s universal negotiation style (51% counter-rate against live seats too); the “counter” category bundles refusal-plus-pivot threads; half of opus’s evidence (seed 9165) sits entirely in post-divergence, history-confounded territory; and the clean-window instrument is much smaller than “135 memberships” suggests (8/model fully clean).