{
  "id": "O0-CRP-036",
  "title": "SIM-CRP-003b · Preference-Preserving Alternate Compression Path — WEIGHTS_DOMINATE",
  "semantic_name": "SIM-CRP-003b",
  "record_class": "SIMULATION",
  "version": "1.0.0",
  "status": "WEIGHTS_DOMINATE",
  "evidence_level": "computational_simulation",
  "replication_status": "internally_replicated_by_sister_study_CRP-035_v1_2",
  "program": "contact_and_revelation",
  "non_drift_question": "PERSPECTIVE",
  "date": "2026-07-30",
  "source_record": "OA-O001",
  "tests_findings_of": "O0-CRP-035 F2",

  "related_records": [
    "O0-CRP-001", "O0-CRP-004", "O0-CRP-035", "O0-CRP-037"
  ],

  "design_summary": {
    "n_observers_confirmatory": 30,
    "observer_seeds": "15000..15029",
    "eval_context_seed": 16000,
    "n_eval_contexts": 200,
    "probe_seed": 16500,
    "n_probe_pairs": 500,
    "vp_env_seeds": "17000..17049",
    "n_vp_environments": 50,
    "n_vp_episodes": 20,
    "context_dim": 8,
    "n_actions": 4,
    "compression_levels": ["LA0", "LA1", "LA2", "LA3", "LA4", "LB4", "LB5"],
    "observer_class": "CRP-035 v1.2 corrected (per-action W in R^{d x K})"
  },

  "preregistered_hypotheses": {
    "H1_preferences_beat_weights": "REJECTED_IN_REVERSE_DIRECTION",
    "H2_argmaxP_matches_L5": "REJECTED",
    "H3_LA3_collapse_to_random": "CONFIRMED"
  },

  "hypothesis_margins": {
    "LA1_vs_LB4_gap_TV": -0.508,
    "LA1_vs_LB4_gap_AM": -0.555,
    "LA2_vs_LB5_gap_TV": -0.125,
    "LA2_vs_LB5_gap_AM": -0.216,
    "LA3_random_gap_TV": 0.031,
    "LA3_random_gap_AM": 0.041
  },

  "primary_verdict": "WEIGHTS_DOMINATE",

  "supported_claims": [
    "In the CRP-035 v1.2 corrected observer class, the W matrix carries substantially more identity-relevant behavioral signal than preferences.",
    "Preference-only compression (LA1) is barely above random baseline (BC_TV gap 0.061).",
    "Weight-only compression (LB4) preserves near-perfect behavior (BC_TV = 0.884, gap from random = 0.638).",
    "Argmax(p) alone is INSUFFICIENT to match argmax(W per-action) + argmax(p) at L5.",
    "One-bit preference sign collapses to random baseline (H3 confirmed).",
    "This study exposed the CRP-035 v1.0/v1.1 observer design bug (softmax shift-invariance) that made pre-fix results tautological."
  ],

  "not_established_claims": [
    "Any generalization beyond linear-bandit observers (CRP-037 registered under PP-observer).",
    "Any generalization beyond linear-Gaussian rewards on N(0, I) contexts.",
    "Whether the W-vs-p asymmetry survives learning-rate equalization (CRP-036-R1 registered).",
    "Any philosophical claim about identity or perspective."
  ],

  "adversarial_notes": [
    "The observer training regime updates W at rate eta and p at rate 0.1*eta — the 10x asymmetry could partially explain WEIGHTS_DOMINATE. Registered as CRP-036-R1.",
    "W has d*K = 32 real numbers; p has K = 4. Capacity asymmetry could partially explain the finding.",
    "Predictive similarity gap PS(LA1)=0.14 vs PS(LB4)=0.99 is even larger than the BC gap, suggesting p contributes very little to reward prediction under this training regime."
  ],

  "design_bug_diagnostic": {
    "discovered_by_this_study": true,
    "root_cause": "CRP-035 v1.0/v1.1 observer had w shape (d,); x @ w was a scalar broadcast to all action logits; softmax shift-invariance made w behaviorally invisible.",
    "detection_signal": "BC_TV(LA1) = 1.000 in pre-fix confirmatory run - mathematically impossible for a truly context-dependent observer.",
    "fix": "CRP-035 v1.2 observer uses W in R^{d x K} (per-action weights); x . W[:, a] differs per action.",
    "pre_fix_data": "archived in data/pre_observer_fix/ - diagnostic only, not scientific findings",
    "pre_fix_verdict": "PREFERENCES_DOMINATE (tautological, from softmax shift-invariance)",
    "post_fix_verdict": "WEIGHTS_DOMINATE (empirical, under genuinely context-dependent observer)"
  },

  "replication_queue": [
    {"id": "O0-CRP-036-R1", "kind": "learning_rate_equalization", "target": "eta_W = eta_p", "status": "REGISTERED"},
    {"id": "O0-CRP-036-R2", "kind": "environment_generalization", "target": "nonlinear rewards", "status": "REGISTERED"},
    {"id": "O0-CRP-037", "kind": "cross_architecture", "target": "PP observer", "status": "REGISTERED"}
  ],

  "figures": [],

  "files": {
    "preregistration": "preregistration.md",
    "scientific_record": "scientific_record.md",
    "code": ["src/alt_compressors.py", "src/run_study.py", "src/summarize.py"],
    "results": ["results/summary_confirmatory.json"],
    "pre_fix_diagnostic": ["data/pre_observer_fix/summary_confirmatory.json", "data/pre_observer_fix/summary_exploratory.json"]
  },

  "provenance": {
    "philosophical_source": "N/A - mechanistic sub-question of CRP-035's PERSPECTIVE branch",
    "conceptual_relationship": "adversarial_test_of_CRP-035_F2",
    "disclaimer": "This study tests a mechanistic sub-question about which observer components carry identity. It does not evaluate any philosophical claim."
  },

  "runtime_seconds": 166
}
