# [2026-07-17] P06-driver Referential-frame A/B/C probe (operator-ratified, deploy-gated) **QUEUED, non-urgent — waits on WT b122 landing on :8081.** worldtree-dev thread `01KXQK7A0RHXV2YSXK5F5ETKJW`; brokkr's design in his thread msg `01KXQJDWJH`; rubric pin `01KXQKB7ZQ`. This is ratatoskr's P06-driver role (I drove the R34/R35 P06 eval — the harness is `scratchpad/p06_driver.py` + `p06_bind.py` + `manifest_memory.jsonl` + `eval_profiles_WIRE_READY.md`). ## Hypothesis (Vuong, ratified) The char-self leak (Sindra's own scripted behavior — e.g. `75aa3110` "prefers to establish clear parameters" — mis-slotted to the USER partition, caught this session) is a subject-taxonomy **REFERENTIAL-FRAME artifact**: the extractor speaks first-person AS the character but must emit the third-person token "character". brokkr's 3-arm A/B/C tests whether swapping the vocab fixes it. ## What WT built (v1.0.0b122, zero config delta — existing probe key + :8081 route work as-is) - `POST /admin/producer-probe` takes optional `subject_vocab_override: {"user","character","both","other"}→token`. - Arm A: omit. Arm B: `{"user":"user","character":"yourself","both":"both of you","other":"other"}`. - Arm C: `{"user":"user","character":"me","both":"both of us","other":"other"}`. Malformed → 422 pre-spend. - Each response item carries `subject_raw` (token actually emitted). Both prompt_paths carry the swap. ## Run shape (brokkr) Identical fixture exchanges × 3 arms per seat — Deckard/Mag-class primary + ≥1 strong contrast seat. Paired per-item deltas B-A / C-A. Primary metric = char-self recall. Guards = user→self over-attribution + subject-field omission rate. ## PINNED SCORING RUBRIC (brokkr, binding) 1. **Score = map `subject_raw` → canonical class via the ARM'S OWN vocab** (response meta echoes it), compare to gold. **NEVER score the mapped `subject` field** (it fail-safes non-canonical tokens to "self"). 2. Three emitted-token cases, pre-specified: - ARM token → map via arm vocab. - CANONICAL token under B/C (model REVERTED to "character"/"both", the swap didn't take) → map canonical→canonical AND **count it** (informative). - OFF-MENU token ("self"/"myself"/…) → best-effort canonical map, else an **UNSCORABLE-ERROR row** in the n_actual accounting — never silently →self. 3. **MANIPULATION CHECK (load-bearing): report VOCAB-ADHERENCE rate (offered-token vs reverted vs off-menu) per arm per seat ALONGSIDE every accuracy number. Interpret recall deltas ONLY where adherence is adequate** — a low-adherence arm's delta is uninterpretable (flag it, don't report a delta). 4. Char-self fixtures carry per-item **construction-provenance** (what makes each char-self — e.g. "verbatim from the character's system-prompt behavior clause, phrased user-neutrally"). ## Fixture ask (deferrable pre-work, before any run — brokkr reviews the gold) From the real P06 battery exchanges, pull candidate items per seat for 4 classes: (a) char-self leak (character's own scripted behavior phrased USER-NEUTRALLY), (b) genuine-user, (c) both/commitment, (d) other/third-party. ~15–25 char-self + balancing per seat; construction-known gold where possible; WT hand-labels ambiguous; brokkr adjudicates the gold. Assembly + gold adjudication proceed pre-deploy; the 3-arm run fires when b122 lands. Queued behind the R39 quartet-mapping. Related: the char-self leak's origin is the same 75aa3110 finding folded into WT #364 as a subject-attribution gate — see [[2026-07-16-wt364-r39-name-recall]].