# RESULT — 053 instruction-embedders (EXT: can instructions move role structure?)

**Tier: T3-exploratory.** Harvested 2026-08-03 (tick-driven harvest agent). tmux c100_053,
CVD=0 → phys0 guarded; smoke passed pre-full; full run 12/12 batteries, run.log ends
`[053] finished; 0 run(s) errored`, sentinel out/DONE.

## Verdict (one line)
**No. Instruction conditioning does not move role structure at all: telling the encoder
"represent by who performs the action" shifts the within-ceiling by +0.004–0.006 (noise; scrambled
prefix does the same to within 0.002), the primary binding cell stays dead chance (0.478–0.505)
in all 12 condition×model cells, and the two OPPOSITE instructions (agent vs patient) produce
near-identical embeddings — per-sentence cos(z_agent, z_patient) = 0.9995 (instructor) / 0.998
(e5). The instruction is a topic prior riding on an unchanged sentence code. The only cell that
moves is the differential code z(agent)−z(patient): it passes the norm gate and lifts e5's
within-ceiling by +0.056 over none — landing at +0.0499 over the best single condition, a
hair UNDER the frozen +0.05 line — but its primary cell is still chance, so the diff sharpens
within-construction separability without unlocking any binding. Instructions do NOT restore
small-embedder probe power (051's follow-up hope): all ceilings stay in the 0.54–0.73 band,
nowhere near SONAR/LASER's 0.76–0.84.**

All 12 runs are formally **INSTRUMENT_FAILURE** under the strict 0.9 battery gate — expected and
pre-registered (051/052 A1); the measured-baseline-anchored comparison below is the science.

## What actually ran
stimuli_v2 battery UNCHANGED (051 machinery: agent_patient + genitive, linear+mlp readouts,
seeds 0,1,2, n_boot 1000), encoder swapped for prompt-conditioned encode. 6 conditions × 2 models
= 12 battery runs (wall ~1.6–2.1 min each): **none** / **agent** / **patient** / **sentiment**
(irrelevant control) / **scrambled** (word-shuffled agent instruction = token-level null) /
**diff** = z(agent)−z(patient) per sentence with norm-profile gate first. Models:
`hkunlp/instructor-base` (T5-enc, d=768, include_prompt=False — instruction masked from pool) and
`intfloat/multilingual-e5-large-instruct` (560M, d=1024, "Instruct:\nQuery:" format,
include_prompt=True). Artifacts: `out/` 12× binding_battery_*.json, BATTERY_RESULTS_053.md, DONE.
Nothing truncated; nothing failed.

## Headline numbers — agent_patient, best readout (mlp), per condition
(within = within-construction ceiling; primary = cross-construction + lexical holdout, best readout)

| condition | instructor within | instructor primary | e5-instruct within | e5-instruct primary |
|---|---|---|---|---|
| none      | 0.589 | 0.497 [0.484,0.506] | 0.599 | 0.491 [0.473,0.505] |
| agent     | 0.592 (+0.004) | 0.499 [0.490,0.507] | 0.605 (+0.006) | 0.489 [0.477,0.500] |
| patient   | 0.594 | 0.499 [0.489,0.506] | 0.601 | 0.493 [0.479,0.506] |
| sentiment | 0.597 | 0.499 [0.490,0.505] | 0.585 (−0.013) | 0.505 [0.486,0.524] |
| scrambled | 0.590 (+0.001) | 0.498 [0.490,0.504] | 0.600 (+0.002) | 0.494 [0.480,0.506] |
| **diff**  | **0.620** (+0.032) | 0.500 [0.480,0.518] | **0.655** (+0.056) | 0.498 [0.477,0.515] |

(Δ in parens vs none, same readout. Genitive ceilings: 0.684–0.699 instructor, 0.699–0.726 e5 —
same pattern: single-instruction conditions flat, diff +0.001–0.015, primaries 0.478–0.537.)

- **Agent instruction ≈ scrambled ≈ none.** The semantic-instruction shift (+0.004/+0.006) is
  indistinguishable from the scrambled-prefix shift (+0.001/+0.002); seed-pooled CIs fully
  overlap. Sentiment (irrelevant instruction) actually *lowers* e5 slightly (−0.013) — an
  instruction can distract, but not reorganize.
- **Primary binding cell: chance in every one of the 12 cells** (ap 0.478–0.505; worst genitive
  cell 0.537, instructor-diff mlp, CI-lo 0.502). No instruction unlocks abstract binding.
- **z_bag role = 0.500 everywhere** (stimuli sanity ✓); strict-gate INSTRUMENT_FAILURE ×12 as
  expected.
- **Both models remain in the small-embedder regime** (051's 0.54–0.74 band), despite e5-instruct
  being 560M — 5× LaBSE's distance short of the LASER/SONAR band. Conditioning is not capacity.

## The diff cell (vi) — norm gate + reading
- **Norm-profile gate: PASS both models** (lesson 3): AUC(‖z_diff‖ vs role) = 0.502/0.511
  (instructor ap/gen), 0.510/0.511 (e5) — no norm confound; battery ran on the normalized diffs.
- The diff vectors are TINY: mean ‖z_agent−z_patient‖ ≈ 0.033 (instructor) / 0.060–0.065 (e5) on
  L2-normalized embeddings; cos(z_agent, z_patient) = 0.9995/0.998. Subtracting cancels the
  shared sentence code and amplifies the small instruction-sensitive residual.
- Result: within-ceiling rises (instructor +0.032, e5 +0.056 vs none) but the primary stays at
  chance (0.498–0.500 ap) — the residual is a *within-construction* separability boost (a
  sharpened surface/topic signal), not per-sentence role assignment. e5-diff vs best single
  condition = 0.65497 − 0.60503 = **+0.0499**, just under the frozen +0.05 line (see P3).

## Brier vs frozen PREREG_LITE.md predictions (P1–P4)
- **P1 (P=0.75)** — no model shows within(agent)−within(none) ≥ +0.05 with CI separation →
  **TRUE** (Δ = +0.004 / +0.006, CIs overlap). → 0.0625
- **P2 (P=0.85)** — primary cross+lex ≤ 0.55 in ALL conditions, BOTH models → **TRUE** (max
  anywhere 0.537, instructor-diff genitive mlp; all ap cells ≤ 0.505). → 0.0225
- **P3 (P=0.60)** — diff passes norm gate but does NOT beat best single-condition within by
  ≥ +0.05 → **TRUE, razor-thin**: gate PASS ✓; e5 diff 0.65497 vs best single (agent) 0.60503 →
  +0.04993, under the line by 7×10⁻⁵ (at 4-dp storage it reads exactly +0.0500). Scored as
  written (strict <0.05). **Sensitivity: Brier would be 0.36 for this leg if scored as a miss**
  (component as scored: 0.16). Instructor leg comfortable (+0.023). → 0.16
- **P4 (P=0.65)** — |within(scrambled)−within(none)| < 0.03 both models → **TRUE** (0.001 /
  0.002). → 0.1225
- **Brier (4 scored) = 0.092.** (With P3 flipped: 0.142.) Best-calibrated row of the 051–053 arc;
  the design's null expectations were essentially all correct.

## Place in the 051/052/053 arc
051: six small contrastive embedders — role weak even within-construction (0.54–0.74), no
binding. 052: the MT-decoder objective (LASER 45M) reproduces SONAR's regime (0.80–0.83
ceilings); translation-ranking (LaBSE 471M) doesn't. 053 closes the "maybe you just have to
ask": **explicit role-retrieval instructions leave instruction-tuned embedders exactly where 051
found their non-instruction siblings.** The route to role-rich pooled codes runs through the
training objective (generative decoding), not capacity (052) and not inference-time
conditioning (053).

## Limitations
- Two models, one instruction phrasing per role (plus scrambled/sentiment controls) — no
  paraphrase sweep over instructions; a stronger prompt could in principle do better, though the
  cos ≈ 0.998–0.9995 between opposite instructions suggests the bottleneck is the encoder's
  insensitivity to the instruction, not the wording.
- instructor-base masks instruction tokens from the pool (include_prompt=False per its spec), so
  its instruction can only act via attention on sentence tokens; e5 pools over instruction tokens
  too — the two models test different conditioning routes, both null.
- diff-cell within-boost (+0.03/+0.06) is exploratory-adjacent: pre-registered as a condition,
  but its interpretation (residual amplification) is post-hoc. Its e5 leg sits on the P3
  threshold; do not lean on which side of 0.05 it fell.
- One stimuli set (stimuli_v2, English); strict battery gate failed everywhere so all nulls are
  gate-relative, not certified. All T3.

## Follow-up worth funding? **N (as a row) / one cheap cell folded elsewhere.**
The question is answered for this campaign: inference-time conditioning does not create role
structure, with well-calibrated nulls across two conditioning routes. Not worth another full row.
Cheap fold-in if the diff idea resurfaces: run the diff construction on a *powered* encoder
(SONAR/LASER, z(agent-ish prompt)−z(patient-ish) via their prompt-free encoders is ill-defined —
so rather: e5-mistral-7b-instruct, the rejected-for-size model, is the only candidate where
instruction-following might be strong enough to matter). Priority stays with 052's follow-ups
(pooling swap, NLLB-encoder on 061) which target the objective, where the signal actually lives.
