{
  "id": "O0-CRP-037",
  "title": "SIM-CRP-003c · Cross-Architecture Perspective Distillation (Nearest-Neighbor Memory Observer)",
  "semantic_name": "SIM-CRP-003c",
  "record_class": "SIMULATION",
  "version": "1.0.0",
  "status": "PARTIAL_MEMORY_SIGNAL",
  "evidence_level": "computational_simulation",
  "replication_status": "cross_architecture_replication_of_CRP-035_v1_2",
  "program": "contact_and_revelation",
  "non_drift_question": "PERSPECTIVE",
  "date": "2026-07-30",
  "source_record": "OA-O001",
  "cross_architecture_target": "O0-CRP-035 v1.2 F2 (weights carry identity)",

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

  "design_summary": {
    "n_observers_confirmatory": 30,
    "observer_seeds": "18000..18029",
    "env_seeds_train": "18500..18529",
    "eval_context_seed": 19000,
    "n_eval_contexts": 200,
    "probe_seed": 19500,
    "n_probe_pairs": 500,
    "vp_env_seeds": "20000..20049",
    "n_vp_environments": 50,
    "n_vp_episodes": 20,
    "context_dim": 8,
    "n_actions": 4,
    "memory_cap": 200,
    "n_training_episodes": 200,
    "compression_levels": ["N0", "N1", "N2", "N3", "N4", "N5"],
    "observer_class": "Nearest-Neighbor Memory Observer (NNMO) - memory-based, no learned parameters"
  },

  "preregistered_metrics_v1_1_inherited": {
    "primary": ["BC_TV", "BC_AM"],
    "auxiliary": ["BC_cos"],
    "additional": ["SR", "VP", "PS"]
  },

  "gates": {
    "identity_gate_BC_TV_N0": 1.0,
    "identity_gate_BC_AM_N0": 1.0,
    "metric_saturation_BC_TV_cross_N0": 0.270,
    "metric_saturation_BC_AM_cross_N0": 0.248,
    "identity_gate_passed": true,
    "metric_saturation_passed": true
  },

  "primary_finding": "PARTIAL_MEMORY_SIGNAL",

  "verdict_details": {
    "H1_memory_carries_identity_in_NNMO": "FAILS (N4-random gap = 0.136 TV, 0.146 AM, both > 0.10 threshold)",
    "H2_compression_cliff": "FAILS (no clean cliff to random baseline; N1 gap = 0.161 TV)",
    "H3_cross_architecture_consistency": "PARTIAL (N1 does not preserve BC>=0.7; NNMO cliffs faster than CRP-035)"
  },

  "supported_claims": [
    "NNMO exhibits an immediate compression cliff: BC_TV drops from 1.000 (N0) to 0.459 (N1), a loss of 0.541.",
    "The N1..N4 plateau (BC_TV = 0.43-0.46) indicates compression is essentially step-shaped in NNMO.",
    "Even minimal memory retention (N4: one argmax-reward action) lifts behavior modestly above the random baseline (gap 0.136 TV, 0.146 AM).",
    "CROSS-ARCHITECTURE: parameterized observers (CRP-035 L4) preserve BC_TV=0.892 with 32 numbers retained; memory-based observers (CRP-037 N1) preserve BC_TV=0.459 with ~100 numbers retained. Identity carrier is not just capacity but capacity IN THE DECISION RULE.",
    "Value preservation breaks earlier than behavioral continuity (VP drops from 0.545 at N1 to 0.21 at N2/N3)."
  ],

  "not_established_claims": [
    "That memory-based observers universally require exact-memory retention (CRP-037-R1 registered).",
    "That the cliff shape survives different clustering algorithms.",
    "Any generalization to third architectures (CRP-037-R2 registered for PP observer).",
    "Any philosophical claim about identity or perspective."
  ],

  "cross_architecture_comparison": {
    "CRP-035_v1_2_L4": {
      "retained_numbers": 32,
      "BC_TV": 0.892,
      "BC_TV_random": 0.282,
      "gap": 0.610
    },
    "CRP-037_N1": {
      "retained_numbers": 100,
      "BC_TV": 0.459,
      "BC_TV_random": 0.298,
      "gap": 0.161
    },
    "conclusion": "Despite CRP-037 N1 retaining more numeric information, it preserves much less behavior. Identity carrier is architecture-dependent, not capacity-invariant."
  },

  "adversarial_notes": [
    "N1's compression uses simple k-means; smarter prototype selection could preserve more information.",
    "200 training episodes produces a specific memory distribution; longer training might yield more redundant, more compressible memory.",
    "The cross-architecture 'weights beat memory' finding depends on the specific NNMO decision rule."
  ],

  "replication_queue": [
    {"id": "O0-CRP-037-R1", "kind": "cluster_count_sweep", "target": "k_c in {3, 5, 10, 20, 50}", "status": "REGISTERED"},
    {"id": "O0-CRP-037-R2", "kind": "third_architecture", "target": "Bayesian PP observer", "status": "REGISTERED"},
    {"id": "O0-CRP-037-R3", "kind": "adversarial_memory", "target": "random-noise contamination", "status": "REGISTERED"}
  ],

  "figures": [],

  "files": {
    "preregistration": "preregistration.md",
    "scientific_record": "scientific_record.md",
    "code": ["src/nnmo.py", "src/nn_compressors.py", "src/run_study.py", "src/summarize.py"],
    "results": ["results/summary_exploratory.json", "results/summary_confirmatory.json"]
  },

  "provenance": {
    "philosophical_source": "N/A - cross-architecture test of CRP-035 v1.2 finding",
    "conceptual_relationship": "cross_architecture_replication_of_CRP-035_F2",
    "disclaimer": "This study tests whether the 'high-capacity component carries identity' finding from CRP-035 v1.2 generalizes across observer architectures. It does not evaluate any philosophical claim."
  },

  "runtime_seconds": 1629
}
