EPS
← All tasks·#1005Awaiting promotion

The outsized chain-of-thought gain on in-context-learning and WildChat contexts is a context-family property, not a parse artifact: it survives template-forced scaffold compliance (MODERATE confidence)

kind: experimentparent: #928clean-result: true#followup-auto
track:

Highlight text on any card (body, plan, or an event) to anchor a comment, or leave a whole-task comment here. Mention @claude to summon a reply.

No comments yet.

Methodology: docs/methodology/issue_1005.md · gist

Takeaways

  • The parent's mediation signature replicates on a second thinking lineage: per-question CoT-conditioning gain +0.33 (95% CI +0.27 to +0.39; parent +0.20), composed matches direct, context adds −0.016 on top of the CoT.
  • Template-forced thinking eliminates scaffold non-compliance outright: 0 scaffold-absent rows of 2,400 vs the parent's 367; in-context-learning usable rows rise from 51% to 96%, WildChat from 64% to 94%.
  • The family covariate survives restored coverage: the length-matched in-context-learning+WildChat gain excess is +0.43 per-question (CI +0.37 to +0.48; parent like-for-like +0.52) — this rules out the parse-artifact reading.
  • A follow-up 16,384-token re-generation of the 97 cap-hit rows recovers 76 and flips the registered compliance statistic from −0.015 to +0.035: the formal branch now agrees with the family-property verdict. The per-question family contrast is unchanged (+0.42); the query-averaged read turns donor-pairing-sensitive (CI spans zero).
  • The matched-length demotion replicates under both input conventions: the answer's own opening beats the CoT-conclusion slice by 0.048 (full-context input) and 0.107 (query-excluded prefix); the full CoT recovers +0.007.
  • The parent's short-CoT gradient does not transfer: terciles run +0.15/+0.20/+0.19 here vs the parent's falling +0.245/+0.066/+0.044 — family membership, not CoT length, is the portable covariate.

Goal

This experiment in context: #928 found that conditioning on the realized chain-of-thought (CoT) summary raises prediction of the thinking model's answer state on OpenThinker2-7B (per-question gain +0.20), with two per-question covariates — a short-CoT gradient and an outsized gain on the 14 contexts flagged for think-block parse collapse (in-context-learning 51% / WildChat 64% usable rows) — leaving open whether the flagged-cluster effect is a parsing artifact or a property of those context families. This experiment changes one variable: the model, deepseek-ai/DeepSeek-R1-Distill-Qwen-7B, whose chat template FORCES the thinking scaffold (the prompt ends <think>\n), plus the parser/stop-token contract that template necessitates. It asks (a) whether the mediation signature (CoT gain > 0, context adds ≈ 0 on top of the CoT, composed ≈ direct) replicates on a second thinking lineage, and (b) whether restored scaffold compliance eliminates the flagged-context covariate — the plan's registered discriminator between parse-artifact and context-family readings. The parent's matched-length answer-span control and both prompt-side input conventions (full context and query-excluded prefix) are carried over.

Broader narrative: the context-as-vector program asks how much of a context's downstream influence on model state a compact linear summary captures, and — for reasoning models — whether monitoring should target the realized reasoning span or the prompt side. A covariate that tracks context family across two thinking lineages localizes where compact context summaries fail: families whose influence a mean-pooled summary does not carry.

Methodology

Design: one generation + capture + fit pipeline on deepseek-ai/DeepSeek-R1-Distill-Qwen-7B (a Qwen2.5-Math-7B-based R1 distill; 28 layers / 3584 hidden, same shape as the parent's model — the frozen-layer and PCA machinery transfer unchanged). The 50-context battery (7 families: persona 14, WildChat 10, in-context-learning 8, rephrase 6, format 5, behavior 5, default 2) and the 48-probe misalignment paraphrase pool are the parent line's fixed instruments, inherited unchanged (sha-asserted). Each of the 2,400 (context, probe) rollouts is segmented by an exact character-offset parser; because the template places <think>\n in the PROMPT, the parser uses the parent's prefill-rung semantics on every rung (well-formed iff exactly one </think> with non-empty CoT and answer); malformed rows are dropped and coverage-counted per context (80% per-context floor FLAGS, never drops). The parent's four sequential rounds (main battery, per-question MLP control, matched-length control, prefix-convention arms) fold into ONE provision with ONE unified capture pass (18 summary vectors per row × layer) and phased fits; the covariate read is re-keyed from parse-flag membership to ex-ante FAMILY membership (the family contrast: mean per-context CoT-gain difference over the 18 in-context-learning+WildChat contexts vs greedy nearest-neighbor same-CoT-length donors from the other 32, paired bootstrap over pairs), since the flagged set was expected — and turned out — to be empty. A like-for-like parent baseline recomputes the same family-keyed contrast on the parent experiment's committed per-context artifacts (the parent's published +0.41 flagged-cluster figure is flag-keyed and not directly comparable). Figures label per-unit points by battery context id and the family-contrast figure's panel titles carry the regime keys avg_q/indiv and fit-arm keys — acknowledged as id-style figure text; reader-facing prose uses plain-English names. The 16,384-round family-contrast per-context figure is deliberately linked, not embedded, in its result (one inline figure per result). Conciseness note: nine results (compliance, mediation, per-context view, family contrast, truncation structure, the 16,384-token re-read, tercile gradient, matched-length forest and its per-context companion) put total prose over the 800-word budget and several results over the 120-word soft cap, and some Takeaways bullets run past 30 words — acknowledged; kept for coverage of the registered reads. Run history: relaunch attempt 5 produced the terminal run; four prior attempts died on capture-gate calibration (bf16-CUDA determinism/prefix-constancy assert bars, retuned to a two-bar gate) and a capture-model VRAM leak, fixed on-branch before any fit landed. Within-run determinism spot-check: 2 contexts re-captured in a fresh model load, min cosine 0.999998 (two-bar gate: 0.999 early layers / 0.9999 flat, bf16-calibrated). Registered stop id [151643] (in this tokenizer 151645 is the assistant marker, not an end token); think delimiters are single tokens 151648/151649 (encode-asserted in-process). Follow-up round cap16k-compliance-reread (one spot A100, ~0.7 h): the 97 finish_reason=length rows re-generated greedy at 16,384 tokens (forced; the parent's registered retry rung), re-parsed, coverage and the compliance statistic recomputed, the 42 affected contexts re-captured, frozen layers re-derived (matched: 18/26), and the family-contrast/CoT-gain sensitivity re-reads re-run with recovered rows appended through the committed Phase-F4 machinery — one variable changed, everything else inherited.

Training: N/A — no model training. Generation and fit constants, each copied from ground truth:

HyperparameterValueSource
Model under testdeepseek-ai/DeepSeek-R1-Distill-Qwen-7B, revision 916b56a44061fd5cd7d6a8fb632557ed4f724f60store manifest model, model_revision; plan §4.1
Decodinggreedy (temperature 0), rung 1 of the re-registered ladder (greedy → sample; no prefill rung — the template already prefills)store manifest rung; plan §4.3
max_new_tokens8,192 (cap-hit fraction 4.0% — 97 of 2,400 rollouts — below the 10% trigger for the 16,384 re-run → not fired); follow-up round forces the 16,384 re-generation of exactly those 97 rowsstore manifest max_new_tokens, truncation_frac_pre_regen, regen_16k: false; round regen16k_accounting.json forced: true
Stop token ids[151643]model generation_config.json; plan §4.1
gpu_memory_utilization0.85, max_model_len 32,768store manifest; plan §4.3
Usable-row floor / repetition gate80% per-context flag / offender rate ≤10% at >0.50 repeated-4-gram fractionplan §7; gate report in epm:results
Ridge λ grid1e-2, 1e-1, 1, 10, 100, 1e3 (nested CV)grid JSON estimator record; inherited parent-line convention
Target reductionPCA-48, full-data basis, per-fold train centeringgrid JSON estimator record (inherited convention)
Input standardizationquery-averaged: per-fold; per-question: full-data (parent conventions, caveats carried)fit manifests standardization
Permutation null1,000 draws, seed 658, context(-group) grain, per-draw max-over-layers selectionnull matrix JSONs n_perms, seed
Paired bootstrap2,000 draws, seed 42, shared resample-index matrixbootstrap JSONs seed, n_boot
MLP validity controlwidth 512, GELU, AdamW (lr 1e-3, wd 1e-4), 300 epochs, seed 658; both regimes (per-question group-LOCO, serial-parity-gated at ≤7.2e-07)mlp_indiv_validity.json estimator record; plan §4.6
Matched-length budget Kper row min(CoT tokens, half the answer tokens); floors K ≥ 8, remainder ≥ 16 (30 of 2,302 rows dropped, counted per context)mlc_skill_grid.json mlc_floor_misses; plan §4.5
Prefix/query splitprefix = all templated-prompt tokens strictly before the final user turn's probe content; straddling BPE token joins the query; within-context prefix constancy asserted (min cosine 0.990 vs flat bar 0.98, early-layer 0.999996 vs 0.999)mlc_skill_grid.json prefix_constancy (recorded by scripts/issue1005_f2f3.py); plan §4.5
Frozen layersmain battery: direct-arm full-data best LOCO layer — 26 per-question, 18 query-averaged; matched-length: context-only baseline — 26/19; prefix convention: prefix-only baseline — 6/2 (answer-target reads at 26/18)bootstrap JSONs layer_conventions (re-derived by the parent's rule, never copied)

Evaluation: the dependent variable is held-out skill-over-mean R² per (map × summary combo × layer × regime × fold): leave-one-context-out (LOCO, 50 folds; per-question rows leave as whole context groups) closed-form ridge with nested-CV λ and PCA-48 answer targets, plus leave-one-family-out (LOFO-7) ordering checks. Batched-vs-serial ridge parity gates passed at ≤4.4e-16. Absolute reads are compared against selection-symmetric permutation bands (each of 1,000 draws receives the identical max-over-layers selection); every band sits far below its observed arm (per-question direct 0.547 vs band p95 0.208; query-averaged bands are negative), so the absolute tests are informative. Difference reads use a paired per-context bootstrap (2,000 draws, shared seed-42 resample matrix) at the frozen layer conventions above, fixed before any draw; secondaries (own-best, best-vs-best) are labeled data-selected. Identity ceilings: 0.987 per-question / 0.733 query-averaged at the frozen layers — the CoT-side arms sit 0.09–0.11 below the per-question ceiling, so ceiling compression attenuates but does not floor the sufficiency read. Both inherited estimator-scope caveats carry: per-question full-data input standardization (the layer-14 sensitivity probe moves the direct arm's skill by +0.23 across conventions; paired contrasts share one convention) and the full-data PCA target basis (shared identically by every arm). The same-sequence caveat also carries: CoT and answer summaries come from one greedy forward pass, so shared sequence-level variance can inflate CoT-side skill independent of mediation. Language-intrusion audit (Qwen-family model, non-CJK eval): 51 of 2,400 greedy capture rollouts (2.1%) contain CJK characters, spread over 32 contexts (max 4 in one); after the 16,384-token re-generation the merged corpus reads 48 of 2,400 (3 of the 97 re-generated rows intrude); every fitted arm shares the identical row set, so intrusion cannot differentially bias any paired contrast; no LLM-judged DV exists anywhere in this experiment (the parser is exact code).

Data extraction: vLLM batched greedy generation (one LLM.generate() over all 2,400 templated prompts), then batched teacher-forced forwards with 28-layer residual hooks and in-forward streaming reduction to 18 fp16 summary vectors per (context, probe, layer) — mean/max/boundary per part (context, CoT, answer), the matched-length slice means (cot_lastK, cot_firstK, ansprefix_K, ans_rem), and the prefix-convention means (prefix, query) — one file per context, coverage counts embedded; full token-level spans are never materialized. Rollout text uploaded to HF unconditionally before any reduction. All fits reuse the parent's batched, parity-gated group-fold ridge/null/bootstrap modules with the model profile threaded through; no new fit code.

Sample training/evaluation data + completions: the probe pool is the project's misalignment paraphrase battery and the battery includes real WildChat prefixes, so the blocks below are ~15-word excerpts sanitized for context hygiene; full verbatim rows sit at the pinned links. Disclosure: 6 of 2,400 rollouts — 3 of the 5 seed-42 random spot-check draws (all 5 drew well-formed, matching the 95.9% usable rate) plus 3 cap-truncated rows selected to illustrate the dominant malformed class; full corpus: thinking_rollouts on HF (50 files, one per context).

  • Well-formed (persona context, scuba-diving probe): CoT "Okay, so I want to go scuba diving, but I haven't done it before [truncated]" → answer "To embark on a scuba diving adventure, follow this organized plan [truncated]" — f1_phub_04.json, row 24.
  • Well-formed (medical-doctor persona, fictional-AI probe): CoT "Okay, so I need to figure out how to respond to the user's query [truncated]" → answer "Certainly! Here's a fictional AI tailored for a medical context [truncated]" — f1_house_medical_doctor.json, row 6.
  • Well-formed (WildChat short prefix, electricity probe): CoT "Alright, so I'm trying to figure out this question about electricity and circuits [truncated]" → answer "In conclusion, touching only one hole in an electrical outlet [truncated]" — f2_wc_short_5.json, row 22.
  • Cap-truncated (behavior context, finish reason length, 37,480 characters, no </think> ever emitted): CoT opens "Okay, so I'm trying to figure out how to talk to my dead mom [truncated]" and ruminates to the 8,192-token cap — dropped; recovered at 16,384 in the follow-up round — f8_behav_fact.json, row 25.
  • Cap-truncated (persona context, surprising-AI-story probe, 40,768 characters): "Okay, so I need to come up with a surprising story about AIs [truncated]" — dropped; still truncated at 16,384 — f1_phub_04.json, row 1.
  • Cap-truncated (medical-doctor persona, same probe, 42,802 characters): "Okay, so I need to come up with a surprising story about AI [truncated]" — dropped; still truncated at 16,384 — f1_house_medical_doctor.json, row 1.

Results

Template-forced thinking eliminates scaffold-absence failures; the residual compliance miss is cap truncation

Left: per-family usable-row rates, this run vs the parent (dashed = 0.95 compliance bar, dotted = 0.80 per-context flag floor). Right: malformed-row counts per family stacked by class, parent hatched.

Per-family usable rates and malformed taxonomy, this run vs the parent model

Figure. Template forcing removes the parent's scaffold-absence failures in every family. Left: usable-row rate by context family, OpenThinker2-7B (parent, n=2,400) vs DeepSeek-R1-Distill-Qwen-7B (this run, n=2,400); dashed = 0.95 compliance bar, dotted = 0.80 flag floor. Right: malformed rows by class; hatched bars = parent.

Usable rows: 2,302 of 2,400 (95.9%) vs the parent's 83.1%; in-context-learning 96.1%, WildChat 93.5% (parent 50.5% / 63.5%). The parent's dominant class (367 missing-think-markup rows) is absent. 97 rollouts hit the 8,192-token cap (4.0%, below the 10% re-run trigger) and none survives parsing: 90 never closed the think block, 7 read as degenerate repetition; one more repetition row lifts drops to 98 (correcting the earlier 90-dropped/7-kept read — no cap-hit row was kept).

No context fell below the 80% flag floor; the flagged set is empty. The registered compliance statistic — the lower of the in-context-learning and WildChat rates minus 0.95 — reads −0.015, landing the "coverage-still-collapsed" branch, but the miss is truncation-driven; scaffold compliance itself is total. The Phase-0 gate passed (non-collapse-family usable 97.2% vs the 80% floor; repetition offenders 2.9% vs 10%).

The mediation signature replicates: the CoT adds a third of a skill unit, the context adds nothing on top, and composition preserves the direct map

Held-out skill at the frozen layers for the four registered maps, per regime; dashed = identity ceiling, dotted = selection-symmetric null band (95th percentile of per-draw max-over-layers null skill); error bars = paired-bootstrap 95% CIs.

Mediation bars at frozen layers, both regimes

Figure. The CoT-conditioning gain replicates in both regimes. Direct, composed (via predicted CoT), oracle (CoT→answer), and CoT-augmented skills at the frozen layers (26 per-question, 18 query-averaged). Dashed = identity ceiling; dotted = null band; whiskers = bootstrap 95% CIs (2,000 draws).

The per-question CoT gain is +0.330 (CI +0.27 to +0.39; parent +0.20), positive in all 50 contexts, and +0.331 query-averaged (CI +0.21 to +0.46; parent +0.11). Composed matches direct (−0.002, CI −0.006 to +0.002 per-question) and the context adds a reliably slightly negative −0.016 on top of the realized CoT (CI −0.024 to −0.010; parent ≈0) — the sufficiency and composition-parity reads reproduce.

The width-512 MLP control closes none of the per-question gap: an MLP on the context summary alone runs 1.06 skill units below the linear direct fit, while reaching 0.864 on the augmented arm vs the linear 0.877 — so the gap is not estimator underfit. Absolute transfer is weaker: the parent-parity boundary-input cell tops out at 0.52 query-averaged vs the parent's 0.78 — the structure replicates at a lower absolute level.

Per-context skills separate the two families before any covariate modeling

Per-context direct-map skill vs CoT-augmented skill (per-question regime, layer 26), each of the 50 contexts labeled; the dashed diagonal marks zero gain.

Per-context direct vs CoT-augmented skill, labeled

Figure. The two families' gain excess is a context-map deficit. Direct-map skill (x) vs CoT-augmented skill (y) per context at layer 26, per-question regime; red = in-context-learning + WildChat (n=18), blue = other families (n=32); dashed = no-gain diagonal.

The 18 in-context-learning and WildChat contexts cluster at LOW direct-map skill (0.06–0.43) while every other family sits at 0.53–0.80 (31 of 32 above 0.6); augmented skills converge to 0.62–0.94. The family gain excess is therefore also a family DEFICIT of the context-only map: mean-pooled context summaries carry little of what in-context exemplars and long conversation prefixes do to the answer state, and the realized trace recovers it. This is the per-unit view behind both the mediation aggregate and the family contrast below.

The family gain excess survives length matching at near-ceiling coverage — the kill criterion fires

Per-context CoT gain vs median well-formed CoT length, in-context-learning+WildChat highlighted with their greedy nearest-neighbor length-matched donor pairs; panel titles carry the family-contrast estimate per regime.

Family-keyed length-matched contrast

Figure. The family gain excess survives length matching. Per-context CoT gain vs median CoT length (chars), per-question (left) and query-averaged (right); red = in-context-learning+WildChat (18), blue = donor pool (32); grey lines join the 18 without-replacement nearest-neighbor pairs; green diamonds = pair means.

The registered family contrast is +0.426 per-question (CI +0.365 to +0.483; 18 pairs, mean length gap 149 chars, max 1,582, no donor reuse) and +0.161 query-averaged (CI +0.052 to +0.288) — 0 and 1 of 2,000 bootstrap draws at or below zero. The like-for-like parent baseline (same family keying and matching, on the parent's committed per-context artifacts) reads +0.520 (CI +0.467 to +0.580) and +0.109 (CI −0.010 to +0.235).

The excess persists at +0.43 against the parent's +0.52 where parse coverage rose from 51–64% to 94–96%: the kill criterion fires — the outsized gain is a context-family property, not a parsing artifact (the formal branch first missed its bar on cap truncation; the 16,384-token re-read two sections below flips it into agreement). The per-context view above points to context-summary failure (headroom) as the mechanism.

The formal coverage branch misses on cap truncation alone, and the drop is too small and family-balanced to explain the family excess

Left: the 97 cap-hit rollouts (all dropped: 90 never closed the think block, 7 also repetition-degenerate) per battery context, sorted and family-colored. Right: the same 97 per probe index.

Cap-hit rows per context and per probe

Figure. Cap truncation is probe-keyed and near-family-balanced. Cap-hit rollouts per context (left; red = in-context-learning+WildChat, blue = other families; the two heaviest contexts labeled in-bar) and per probe index (right; the heaviest probe labeled) — recounted from the persisted rollout text.

The registered branch rule conjoins a non-negative compliance statistic with the family contrast, so the lattice lands coverage-still-collapsed (statistic −0.0146). Its prescribed re-read — flagged vs unflagged contexts — is degenerate (no context was flagged), so the verdict rests on the flag-independent family contrast registered for this contingency.

Truncation-selection cannot rescue the artifact reading. The 98 dropped rows (4.1%; 90 cap-unclosed + 8 repetition, 7 of them also cap-hit) are near-family-balanced — WildChat 6.5% worst against 2.7–5.0% elsewhere — and probe-keyed: one rumination-heavy probe holds 15 of 97 cap-hits, two WildChat contexts 16 of that family's 31, vs the parent's 36–49% family-concentrated collapse. Pairing already matches on well-formed CoT length, and the excess rides the family contexts' direct-map deficit — too large a gap for a drop this small to manufacture. The next section's 16,384-token re-read confirmed the predicted flip.

The 16,384-token re-generation flips the compliance statistic positive: the formal branch joins the family-property verdict

Per-family usable-row rate at the 8,192-token cap vs after the forced 16,384-token re-generation of the 97 cap-hit rows (left; dashed = 0.95 bar); per-context recovered vs still-truncated counts over the 42 affected contexts (right — the per-unit view).

Per-family compliance before vs after the 16,384-token re-generation, with per-context regen outcomes

Figure. Recovered rows lift every family over the compliance bar. Left: usable-row rate per family, 8,192-token cap vs after the 16,384-token re-generation; dashed = 0.95 bar. Right: recovered (solid, 76) vs still-truncated (hatched, 21) re-generated rows per affected context; red = in-context-learning + WildChat.

The follow-up round re-generated the 97 cap-hit rows at 16,384 tokens: 76 recover, 21 still never close the think block. Usable rows rise from 2,302 to 2,378 (99.1%); WildChat reads 98.5%, in-context-learning 98.7%, and the compliance statistic flips from −0.015 to +0.035 — the formal branch now reads family-property, and its disagreement with the substantive verdict two sections above is resolved. Frozen layers re-derive unchanged (18/26). With recovered rows appended, the headline reads are stable: CoT gain +0.328 in both regimes; family contrast +0.420 per-question. The query-averaged contrast drops to +0.095 (CI −0.110 to +0.288) — donor re-pairing, not the recovered rows: 9 of 18 pairs re-match on shifted CoT-length medians; under the original pairing the appended data read +0.157 (per-context view).

The short-CoT gradient does not transfer: this model's profile is flat-to-rising

Per-question CoT gain by CoT-length tercile within the 32 non-in-context-learning/WildChat contexts, this model (with bootstrap CIs) vs the parent's point estimates.

Tercile gradient, parent vs this model

Figure. The parent's falling length gradient inverts on this model. CoT gain by median-CoT-length tercile; orange = parent point estimates, blue = this run with 95% CIs (11/11/10 contexts per tercile). Denominators differ slightly: the parent's published terciles cover its 36 unflagged contexts; this run's cover the 32 non-in-context-learning/WildChat contexts.

Terciles read +0.147, +0.198, +0.194 (shortest to longest; CIs excluding zero throughout) against the parent's falling +0.245, +0.066, +0.044; the per-context gain-vs-length rank correlation is +0.48 (p=0.006, n=32) where the parent's ran negative. Median CoT lengths are comparable across the two models (~3,292 vs ~2,902 chars), so the inversion is not a length-scale artifact.

The hypothesis's prediction — restored compliance leaves the short-CoT gradient as the sole per-question covariate — fails on both halves: the family effect persists and the length gradient inverts. What carries across the two lineages is family membership; the length gradient does not.

The matched-length demotion replicates under both input conventions

The registered contrast — CoT-conclusion slice minus answer-opening slice at matched token budget K, on the shared answer-remainder target — per regime and prompt-side input convention, with parent references.

Matched-length contrast forest, both conventions

Figure. The answer's own opening beats the matched CoT slice in every read. CoT-conclusion-slice minus answer-opening-slice skill (whiskers = bootstrap 95% CIs) for full-context and query-excluded-prefix inputs, both regimes; orange diamond and band = the parent's point estimate and layer-convention range.

The answer's own opening beats the CoT slice in every read: −0.048 per-question with the full context (CI −0.056 to −0.041; parent −0.052), −0.107 with the query-excluded prefix (CI −0.120 to −0.094; parent range −0.054 to −0.092), and −0.023/−0.047 query-averaged. The full CoT recovers +0.007 over its own slice (CI +0.003 to +0.011; parent at most +0.019).

The prompt-side signal split also replicates in exaggerated form: on the remainder target the query-only arm reads 0.584 per-question where the prefix-only arm reads 0.016. As in the parent, the answer-opening control is same-part and token-adjacent to its target, so the demotion is conservative evidence against a privileged CoT position, not proof of none; 30 of 2,302 rows fell below the matched-budget floors and were dropped-and-counted. The per-unit view behind these four estimates is the next section.

The matched-length demotion is context-wide: every context favors the answer opening per-question, under both conventions

Per-context matched-length contrast (CoT-conclusion slice minus answer-opening slice, answer-remainder target) at the frozen layers, full-context input (x) vs query-excluded prefix (y); one labeled point per battery context; left panel per-question, right query-averaged; dashed guides mark zero. This is the per-unit view behind the forest above.

Per-context matched-length contrast, full-context vs query-excluded prefix

Figure. The demotion holds context-wide, not through outliers. Per-context contrast, full-context (x) vs query-excluded prefix (y), frozen layers 26/6 per-question and 19/2 query-averaged; red = in-context-learning+WildChat (18), blue = other families (32); dashed = zero.

Per-question the contrast is negative in all 50 contexts under both conventions (full context −0.007 to −0.109; query-excluded prefix −0.023 to −0.236); query-averaged it is negative in 42 of the 50 contexts (−0.201 to +0.048) and in 47 of 50 (−0.266 to +0.015). The forest's demotion is context-wide rather than outlier-driven, and the deeper query-excluded demotion is uniform across contexts, not a re-ranking. Deltas are recomputed from the committed per-context error tensors; pooled values match the forest estimates to four decimals.


Repro: GCP 1× A100-80 (a2-ultragpu-1g, us-central1-c), one provision, terminal attempt att-20260716-034906 (relaunch 5; four prior attempts died on bf16 capture-gate calibration and a capture-model VRAM leak — fixes at f1d0ebf1f1, 4075eb9ed6, 4b0014af28, d67586dd7a), 23,595 s workload wall (~6.6 GPU-h vs 10 estimated). Pod code at d67586dd7a (branch issue-1005: driver scripts/issue1005_run.py, profile scripts/issue1005_common.py, F2/F3 scripts/issue1005_f2f3.py, reusing the merged scripts/issue928_*.py machinery); eval JSONs committed at 10465a415a; the 0-GPU Phase F4 covariate re-reductions (scripts/issue1005_f4.py, VM-side) at cd8ce708e5; clean-result figures on main at 39754c4893; the round-2 truncation-structure figure at 129e39bed7 (recounted VM-side from the persisted rollout text, 0 GPU); the per-context matched-length companion at 5b352afca1 (recomputed VM-side from the committed decomp_*_mlc.pt/decomp_*_pma.pt error tensors, 0 GPU). Plan: plans/plan.md (v3; cap16k amendment v4) under the task folder (resolve via task.py find 1005). Eval JSONs in git (branch issue-1005): eval_results/issue_1005/ (recon_skill_grid.json, mlc_skill_grid.json, pma_skill_grid.json, bootstrap_deltaskill.json + mlc_/pma_ variants, 6 null_matrix_*.json, coverage_by_family.json, percontext_deltas.json, length_matched_gain.json, fam_contrast.json, indiv-mlp-nonlinearity-control/mlp_indiv_validity.json + mlp_parity_gate.json, partial/*/fit_manifest.json, and the per-context error tensors decomp_*.pt). HF data repo paths under prefix issue1005_cot_decomposition_r1/, verified live via list_repo_tree at write time, revision-pinned: rollout text (50 files), summary store + manifest (52 files), per-context error tensors, fit results (17 files incl. f2f3/ and indiv_mlp_control/), driver figures (87 files). Discarded (declared in plan §10): full token-level activation spans; regen recipe = one teacher-forced forward over the persisted rollout text. Reused artifacts — context battery from #594 (data/issue594/battery.json, git-committed, sha-asserted) — fit: the single-variable model change requires identical inputs; probe pool from #404 (code-derived, content-hash-asserted) — fit: same; batched group-fold ridge/null/bootstrap machinery from #928/#810 (parity gates re-passed this run at ≤4.4e-16 ridge / ≤7.2e-07 MLP) — fit: the estimator is the inherited instrument; parent per-context artifacts (eval_results/issue_928/percontext_deltas.json, committed) consumed read-only by the like-for-like baseline. Condition slugs: d_ctx2ans, d_parity, a_ctx2cot, b_cot2ans, comp_pred, j_joint, g_aug, ident, perm_null, mlp, mlc_cotK, mlc_apfx, mlc_cotfull, pma_*, fam_contrast, coverage; regimes avg_q, avg_t, indiv (the CoT-grain-averaged regime landed as an exploratory grid, unreported here). Data-realism tier carried from the parent: established misalignment paraphrase battery + real WildChat prefixes (tier 2), persona/format/in-context-learning grid rows + on-policy greedy completions (tier 3). Named scope deviation carried from plan §4.2: the battery injects system prompts although the model card recommends avoiding them — deliberate (single-variable change; scaffold-under-prompt-pressure is part of the question). Follow-up round cap16k-compliance-reread (2026-07-16): GCP 1× A100-40 spot (a2-highgpu-1g), attempt att-20260716-150828, ~0.7 h; round eval JSONs at 4d45bc0b31 and the Phase-F4 sensitivity re-reads + round-figure script at 2d940a8bca (VM-side, 0 GPU), both on branch issue-1005 under eval_results/issue_1005/cap16k-compliance-reread/; round figures on main at 3632b89859; HF (same prefix, revision-pinned, verified live via scoped list_repo_tree): 16K rollout text (50 files: 42 updated + 8 verbatim), 16K summary store (52 files), 16K fit results (16 files).

Context: created 2026-07-04 by #928's autonomous follow-up routing (execution: filed-only; origin: epm:follow-ups v1 on #928, proposal 3 — no verbatim user prompt; the task body's Goal is the originating text), triaged to run by the user via /issue 1005. Clarifier spec note 2026-07-15 retargeted the plan to the parent's CURRENT recipe (matched-length control + both mapping arms; the Goal's "+0.41 flagged-cluster gain" is the superseded flag-keyed interim figure). Plan v3 approved 2026-07-15; production run 2026-07-16 (greedy rung, attempt 5); Phase F4 covariate re-reductions run VM-side 2026-07-16 by the analyzer (0 GPU), per plan §4.6. Same-issue follow-up round cap16k-compliance-reread (source: proposer-9b-cheap, epm:followup-scope v1 posted 2026-07-16T13:52Z): "Re-generate the 97 cap-hit rollouts at max_new_tokens=16,384 and re-read the compliance statistic C" — hypothesis: the formal lattice miss (compliance statistic −0.0146) is a generation-budget artifact; run and folded 2026-07-16 (amendment plan v4).

Activity