{
  "campaign": "final_v2",
  "deferred": [
    {
      "metric": "Silent-Narrowing Rate",
      "quantity": "SNR",
      "section": "XI-B, XI-C",
      "status": "Primary outcome of the deferred comparative expert study. No adjudication panel has been convened, no practitioner has been recruited, and no participant data exists."
    },
    {
      "metric": "Field-Level Derivation Fidelity",
      "quantity": "DF",
      "section": "XI-B, XI-C",
      "status": "Primary outcome of the same deferred study."
    },
    {
      "metric": "reference standard",
      "quantity": "Panel-adjudicated reference standard",
      "section": "XI-C",
      "status": "Not produced. The Monte Carlo distributions used in XI-G are therefore author-specified, and the manuscript says so."
    },
    {
      "metric": "Tier-1 commitment",
      "quantity": "Held-out register hash",
      "section": "XI-I",
      "status": "The held-out register is not authored; its hash is committed in a Tier-1 freeze published before recruitment opens."
    },
    {
      "metric": "conformance run",
      "quantity": "Detection performance on the 284,807-event corpus",
      "section": "X",
      "status": "Belongs to the prior work [15]. The compiled Case B bundle was NOT executed against that corpus and no figure from it is reproduced here."
    }
  ],
  "entries": [
    {
      "boundary": "A hash pins an artifact. It says nothing about whether the artifact's content is correct.",
      "claim": "The Case A artifact is hash-pinned by the SHA-256 of its RFC 8785 canonical bundle payload.",
      "command": "python -m experiments.run_case --final-v2",
      "expected": "f5cbc3a8016159d2074005fa021bf76ca04fb7aed1408f5ec845418460a43536",
      "experiment": "case compilation",
      "field": "result.payload_hash",
      "id": "H-A",
      "inputs": "cases/case_a/inputs/, cases/case_a/judgment/, cases/case_a/dispositions/, cases/case_a/acs/, catalog/, invariants/",
      "interpretation": "Identifies the exact compiled bundle the paper reports on. Recomputable from the committed governance inputs, and cross-checked against cases/case_a/expected/reference_hashes.json.",
      "metric": "Case A canonical payload SHA-256",
      "reported": "f5cbc3a8016159d2074005fa021bf76ca04fb7aed1408f5ec845418460a43536",
      "result_file": "results/final_v2/case_a/compilation.json",
      "section": "IX"
    },
    {
      "boundary": "A hash pins an artifact. It says nothing about whether the artifact's content is correct.",
      "claim": "The Case B artifact is hash-pinned by the SHA-256 of its RFC 8785 canonical bundle payload.",
      "command": "python -m experiments.run_case --final-v2",
      "expected": "2850155a2ee7d4c01db4748a891891bae27c48f4c9c2c7eccd30beb7d1aa33ce",
      "experiment": "case compilation",
      "field": "result.payload_hash",
      "id": "H-B",
      "inputs": "cases/case_b/inputs/, cases/case_b/judgment/, cases/case_b/dispositions/, cases/case_b/acs/, catalog/, invariants/",
      "interpretation": "Identifies the exact compiled bundle the paper reports on. Recomputable from the committed governance inputs, and cross-checked against cases/case_b/expected/reference_hashes.json.",
      "metric": "Case B canonical payload SHA-256",
      "reported": "2850155a2ee7d4c01db4748a891891bae27c48f4c9c2c7eccd30beb7d1aa33ce",
      "result_file": "results/final_v2/case_b/compilation.json",
      "section": "X"
    },
    {
      "boundary": "DC = 1 holds BY CONSTRUCTION once dispositions are signed. Measuring it verifies the artifact conforms to Appendix A constraint 4; it does not show the dispositions are the right ones.",
      "claim": "Case A: every register row carries exactly one approved disposition.",
      "command": "python -m experiments.run_metrics --final-v2",
      "denominator": 16,
      "expected": 1.0,
      "experiment": "primary metrics",
      "field": "result.per_case.case_a.DC.value",
      "id": "DC-A",
      "inputs": "cases/case_a/inputs/, cases/case_a/judgment/, cases/case_a/dispositions/, cases/case_a/acs/, catalog/, invariants/",
      "interpretation": "Disposition Completeness",
      "metric": "DC (Disposition Completeness), Case A",
      "numerator": 16,
      "reported": "1.0000 (16/16)",
      "result_file": "results/final_v2/metrics.json",
      "section": "XI-B"
    },
    {
      "boundary": "Descriptive only. A lower RCY is not worse; it reflects how many risks the approver routed to runtime.",
      "claim": "Case A: share of register rows dispositioned to runtime enforcement.",
      "command": "python -m experiments.run_metrics --final-v2",
      "denominator": 16,
      "expected": 0.8125,
      "experiment": "primary metrics",
      "field": "result.per_case.case_a.RCY.value",
      "id": "RCY-A",
      "inputs": "cases/case_a/inputs/, cases/case_a/judgment/, cases/case_a/dispositions/, cases/case_a/acs/, catalog/, invariants/",
      "interpretation": "Runtime Conversion Yield",
      "metric": "RCY (Runtime Conversion Yield), Case A",
      "numerator": 13,
      "reported": "0.8125 (13/16)",
      "result_file": "results/final_v2/metrics.json",
      "section": "XI-B"
    },
    {
      "boundary": "Descriptive complement of RCY. Not an error rate.",
      "claim": "Case A: share of register rows dispositioned non-runtime.",
      "command": "python -m experiments.run_metrics --final-v2",
      "denominator": 16,
      "expected": 0.1875,
      "experiment": "primary metrics",
      "field": "result.per_case.case_a.NDR.value",
      "id": "NDR-A",
      "inputs": "cases/case_a/inputs/, cases/case_a/judgment/, cases/case_a/dispositions/, cases/case_a/acs/, catalog/, invariants/",
      "interpretation": "Non-Derivation Rate",
      "metric": "NDR (Non-Derivation Rate), Case A",
      "numerator": 3,
      "reported": "0.1875 (3/16)",
      "result_file": "results/final_v2/metrics.json",
      "section": "XI-B"
    },
    {
      "boundary": "A compiler guarantee WITHIN Phi-produced bundles. It extends to a deployment only under the explicit runtime acceptance condition.",
      "claim": "Case A: no compiled predicate lacks an authorized origin in R union INV.",
      "command": "python -m experiments.run_metrics --final-v2",
      "denominator": 19,
      "expected": 0.0,
      "experiment": "primary metrics",
      "field": "result.per_case.case_a.OPR.value",
      "id": "OPR-A",
      "inputs": "cases/case_a/inputs/, cases/case_a/judgment/, cases/case_a/dispositions/, cases/case_a/acs/, catalog/, invariants/",
      "interpretation": "Orphan Predicate Rate",
      "metric": "OPR (Orphan Predicate Rate), Case A",
      "numerator": 0,
      "reported": "0.0000 (0/19)",
      "result_file": "results/final_v2/metrics.json",
      "section": "XI-B"
    },
    {
      "boundary": "Linkage under the declared data model. Not legal compliance.",
      "claim": "Case A: every obligation is disposed.",
      "command": "python -m experiments.run_metrics --final-v2",
      "denominator": 12,
      "expected": 1.0,
      "experiment": "primary metrics",
      "field": "result.per_case.case_a.ODC.value",
      "id": "ODC-A",
      "inputs": "cases/case_a/inputs/, cases/case_a/judgment/, cases/case_a/dispositions/, cases/case_a/acs/, catalog/, invariants/",
      "interpretation": "Obligation Disposition Completeness",
      "metric": "ODC (Obligation Disposition Completeness), Case A",
      "numerator": 12,
      "reported": "1.0000 (12/12)",
      "result_file": "results/final_v2/metrics.json",
      "section": "XI-B"
    },
    {
      "boundary": "Structural traceability. Not semantic correctness.",
      "claim": "Case A: every predicate traces to a risk or to a compiler invariant.",
      "command": "python -m experiments.run_metrics --final-v2",
      "denominator": 19,
      "expected": 1.0,
      "experiment": "primary metrics",
      "field": "result.per_case.case_a.PTC.value",
      "id": "PTC-A",
      "inputs": "cases/case_a/inputs/, cases/case_a/judgment/, cases/case_a/dispositions/, cases/case_a/acs/, catalog/, invariants/",
      "interpretation": "Predicate Traceability Completeness",
      "metric": "PTC (Predicate Traceability Completeness), Case A",
      "numerator": 19,
      "reported": "1.0000 (19/19)",
      "result_file": "results/final_v2/metrics.json",
      "section": "XI-B"
    },
    {
      "boundary": "Coverage of the DECLARED C* profile. Does not establish that the profile is complete over the harm space.",
      "claim": "Case A: every consequence-class row has a decisive mandatory gate on each authorized hazardous action path.",
      "command": "python -m experiments.run_metrics --final-v2",
      "denominator": 6,
      "expected": 1.0,
      "experiment": "primary metrics",
      "field": "result.per_case.case_a.CV.value",
      "id": "CV-A",
      "inputs": "cases/case_a/inputs/, cases/case_a/judgment/, cases/case_a/dispositions/, cases/case_a/acs/, catalog/, invariants/",
      "interpretation": "C* Coverage",
      "metric": "CV (C* Coverage), Case A",
      "numerator": 6,
      "reported": "1.0000 (6/6)",
      "result_file": "results/final_v2/metrics.json",
      "section": "XI-B"
    },
    {
      "boundary": "DC = 1 holds BY CONSTRUCTION once dispositions are signed. Measuring it verifies the artifact conforms to Appendix A constraint 4; it does not show the dispositions are the right ones.",
      "claim": "Case B: every register row carries exactly one approved disposition.",
      "command": "python -m experiments.run_metrics --final-v2",
      "denominator": 6,
      "expected": 1.0,
      "experiment": "primary metrics",
      "field": "result.per_case.case_b.DC.value",
      "id": "DC-B",
      "inputs": "cases/case_b/inputs/, cases/case_b/judgment/, cases/case_b/dispositions/, cases/case_b/acs/, catalog/, invariants/",
      "interpretation": "Disposition Completeness",
      "metric": "DC (Disposition Completeness), Case B",
      "numerator": 6,
      "reported": "1.0000 (6/6)",
      "result_file": "results/final_v2/metrics.json",
      "section": "XI-B"
    },
    {
      "boundary": "Descriptive only. A lower RCY is not worse; it reflects how many risks the approver routed to runtime.",
      "claim": "Case B: share of register rows dispositioned to runtime enforcement.",
      "command": "python -m experiments.run_metrics --final-v2",
      "denominator": 6,
      "expected": 1.0,
      "experiment": "primary metrics",
      "field": "result.per_case.case_b.RCY.value",
      "id": "RCY-B",
      "inputs": "cases/case_b/inputs/, cases/case_b/judgment/, cases/case_b/dispositions/, cases/case_b/acs/, catalog/, invariants/",
      "interpretation": "Runtime Conversion Yield",
      "metric": "RCY (Runtime Conversion Yield), Case B",
      "numerator": 6,
      "reported": "1.0000 (6/6)",
      "result_file": "results/final_v2/metrics.json",
      "section": "XI-B"
    },
    {
      "boundary": "Descriptive complement of RCY. Not an error rate.",
      "claim": "Case B: share of register rows dispositioned non-runtime.",
      "command": "python -m experiments.run_metrics --final-v2",
      "denominator": 6,
      "expected": 0.0,
      "experiment": "primary metrics",
      "field": "result.per_case.case_b.NDR.value",
      "id": "NDR-B",
      "inputs": "cases/case_b/inputs/, cases/case_b/judgment/, cases/case_b/dispositions/, cases/case_b/acs/, catalog/, invariants/",
      "interpretation": "Non-Derivation Rate",
      "metric": "NDR (Non-Derivation Rate), Case B",
      "numerator": 0,
      "reported": "0.0000 (0/6)",
      "result_file": "results/final_v2/metrics.json",
      "section": "XI-B"
    },
    {
      "boundary": "A compiler guarantee WITHIN Phi-produced bundles. It extends to a deployment only under the explicit runtime acceptance condition.",
      "claim": "Case B: no compiled predicate lacks an authorized origin in R union INV.",
      "command": "python -m experiments.run_metrics --final-v2",
      "denominator": 9,
      "expected": 0.0,
      "experiment": "primary metrics",
      "field": "result.per_case.case_b.OPR.value",
      "id": "OPR-B",
      "inputs": "cases/case_b/inputs/, cases/case_b/judgment/, cases/case_b/dispositions/, cases/case_b/acs/, catalog/, invariants/",
      "interpretation": "Orphan Predicate Rate",
      "metric": "OPR (Orphan Predicate Rate), Case B",
      "numerator": 0,
      "reported": "0.0000 (0/9)",
      "result_file": "results/final_v2/metrics.json",
      "section": "XI-B"
    },
    {
      "boundary": "Linkage under the declared data model. Not legal compliance.",
      "claim": "Case B: every obligation is disposed.",
      "command": "python -m experiments.run_metrics --final-v2",
      "denominator": 6,
      "expected": 1.0,
      "experiment": "primary metrics",
      "field": "result.per_case.case_b.ODC.value",
      "id": "ODC-B",
      "inputs": "cases/case_b/inputs/, cases/case_b/judgment/, cases/case_b/dispositions/, cases/case_b/acs/, catalog/, invariants/",
      "interpretation": "Obligation Disposition Completeness",
      "metric": "ODC (Obligation Disposition Completeness), Case B",
      "numerator": 6,
      "reported": "1.0000 (6/6)",
      "result_file": "results/final_v2/metrics.json",
      "section": "XI-B"
    },
    {
      "boundary": "Structural traceability. Not semantic correctness.",
      "claim": "Case B: every predicate traces to a risk or to a compiler invariant.",
      "command": "python -m experiments.run_metrics --final-v2",
      "denominator": 9,
      "expected": 1.0,
      "experiment": "primary metrics",
      "field": "result.per_case.case_b.PTC.value",
      "id": "PTC-B",
      "inputs": "cases/case_b/inputs/, cases/case_b/judgment/, cases/case_b/dispositions/, cases/case_b/acs/, catalog/, invariants/",
      "interpretation": "Predicate Traceability Completeness",
      "metric": "PTC (Predicate Traceability Completeness), Case B",
      "numerator": 9,
      "reported": "1.0000 (9/9)",
      "result_file": "results/final_v2/metrics.json",
      "section": "XI-B"
    },
    {
      "boundary": "Coverage of the DECLARED C* profile. Does not establish that the profile is complete over the harm space.",
      "claim": "Case B: every consequence-class row has a decisive mandatory gate on each authorized hazardous action path.",
      "command": "python -m experiments.run_metrics --final-v2",
      "denominator": 4,
      "expected": 1.0,
      "experiment": "primary metrics",
      "field": "result.per_case.case_b.CV.value",
      "id": "CV-B",
      "inputs": "cases/case_b/inputs/, cases/case_b/judgment/, cases/case_b/dispositions/, cases/case_b/acs/, catalog/, invariants/",
      "interpretation": "C* Coverage",
      "metric": "CV (C* Coverage), Case B",
      "numerator": 4,
      "reported": "1.0000 (4/4)",
      "result_file": "results/final_v2/metrics.json",
      "section": "XI-B"
    },
    {
      "boundary": "Depends on the declared threshold, which is author-set. GD_min is the threshold-free companion.",
      "claim": "Gate divergence against the enterprise's predeclared heat-map rule at the declared threshold T_H = 15.",
      "command": "python -m experiments.run_gate_divergence --final-v2",
      "expected": 3,
      "experiment": "gate divergence",
      "field": "result.per_case.case_a.GD_at_declared_threshold",
      "id": "GD-A",
      "inputs": "cases/case_a/inputs/, cases/case_a/judgment/, cases/case_a/dispositions/, cases/case_a/acs/, catalog/, invariants/, cases/case_a/inputs/thresholds.json",
      "interpretation": "Register rows on which the approved gate assignment differs from the scalar heat-map comparator at the declared threshold. Both sums run over all 16 rows, non-runtime dispositions included.",
      "metric": "GD(15), Case A",
      "reported": 3,
      "result_file": "results/final_v2/gate_divergence.json",
      "section": "IX and XI-B"
    },
    {
      "boundary": "Case A's GD_min sums over all 16 rows, three of which carry documented fixture ratings; the published sweep gives the range [2, 5].",
      "claim": "Minimum gate divergence over all thresholds. GD_min > 0 instantiates the Proposition 1 premise.",
      "command": "python -m experiments.run_gate_divergence --final-v2",
      "expected": 3,
      "experiment": "gate divergence",
      "field": "result.per_case.case_a.GD_min",
      "id": "GDMIN-A",
      "inputs": "cases/case_a/inputs/, cases/case_a/judgment/, cases/case_a/dispositions/, cases/case_a/acs/, catalog/, invariants/",
      "interpretation": "Case A's GD_min > 0 means no monotone threshold on the scalar score reproduces the approved assignment. Case B's GD_min = 0 means that register does admit one -- reported rather than suppressed.",
      "metric": "GD_min, Case A",
      "reported": 3,
      "result_file": "results/final_v2/gate_divergence.json",
      "section": "IX and XI-B"
    },
    {
      "boundary": "Depends on the declared threshold, which is author-set. GD_min is the threshold-free companion.",
      "claim": "Gate divergence against the enterprise's predeclared heat-map rule at the declared threshold T_H = 15.",
      "command": "python -m experiments.run_gate_divergence --final-v2",
      "expected": 4,
      "experiment": "gate divergence",
      "field": "result.per_case.case_b.GD_at_declared_threshold",
      "id": "GD-B",
      "inputs": "cases/case_b/inputs/, cases/case_b/judgment/, cases/case_b/dispositions/, cases/case_b/acs/, catalog/, invariants/, cases/case_b/inputs/thresholds.json",
      "interpretation": "Register rows on which the approved gate assignment differs from the scalar heat-map comparator at the declared threshold. Both sums run over all 6 rows, non-runtime dispositions included.",
      "metric": "GD(15), Case B",
      "reported": 4,
      "result_file": "results/final_v2/gate_divergence.json",
      "section": "IX and XI-B"
    },
    {
      "boundary": "Case A's GD_min sums over all 16 rows, three of which carry documented fixture ratings; the published sweep gives the range [2, 5].",
      "claim": "Minimum gate divergence over all thresholds. GD_min > 0 instantiates the Proposition 1 premise.",
      "command": "python -m experiments.run_gate_divergence --final-v2",
      "expected": 0,
      "experiment": "gate divergence",
      "field": "result.per_case.case_b.GD_min",
      "id": "GDMIN-B",
      "inputs": "cases/case_b/inputs/, cases/case_b/judgment/, cases/case_b/dispositions/, cases/case_b/acs/, catalog/, invariants/",
      "interpretation": "GD_min = 0: this register admits a reproducing threshold. Reported rather than suppressed; the Proposition 1 premise is instantiated on Case A only.",
      "metric": "GD_min, Case B",
      "reported": 0,
      "result_file": "results/final_v2/gate_divergence.json",
      "section": "IX and XI-B"
    },
    {
      "boundary": "Discloses that the reported GD_min is contingent on three documented fixtures. Neither proposition premise depends on them.",
      "claim": "GD_min = 3 is exact for the published register; over all plausible fixture ratings it would range from 2 to 5.",
      "command": "python -m experiments.run_gate_divergence --final-v2",
      "expected": [
        2,
        5
      ],
      "experiment": "gate divergence",
      "field": "result.case_a_fixture_rating_sensitivity.GD_min_range",
      "id": "GDMIN-SENS",
      "inputs": "cases/case_a/inputs/, cases/case_a/judgment/, cases/case_a/dispositions/, cases/case_a/acs/, catalog/, invariants/",
      "interpretation": "Sweep over every (L, I) in {1..5}^2 for R-14, R-15 and R-16 -- 15625 combinations. The published ratings are {\"R-14\": 12, \"R-15\": 6, \"R-16\": 8}.",
      "metric": "GD_min fixture-rating sensitivity range",
      "reported": "[2, 5]",
      "result_file": "results/final_v2/gate_divergence.json",
      "section": "XII"
    },
    {
      "boundary": "TD is a property of the CANONICAL PAYLOAD HASH; the signature envelope need not be byte-identical. Measured on one implementation -- specification-level determinism, which would need a second independent implementation, is NOT established.",
      "claim": "Translation determinism is 1.000: every run reproduced the committed reference canonical payload hash.",
      "command": "python -m experiments.run_determinism --runs-per-case 31 --final-v2",
      "denominator": 62,
      "expected": 1.0,
      "experiment": "determinism",
      "field": "result.TD.value",
      "id": "TD",
      "inputs": "cases/case_a/, cases/case_b/, catalog/, invariants/, keys/",
      "interpretation": "Semantically equivalent inputs compile to the same canonical payload hash under permutation, locale, time-zone and clean-process variation.",
      "metric": "TD",
      "numerator": 62,
      "reported": "1.000 (62/62)",
      "result_file": "results/final_v2/determinism_summary.json",
      "section": "XI-B and XI-H"
    },
    {
      "boundary": "A run count, not an environment count.",
      "claim": "62 compilation runs in total.",
      "command": "python -m experiments.run_determinism --runs-per-case 31 --final-v2",
      "expected": 62,
      "experiment": "determinism",
      "field": "result.TD.denominator",
      "id": "TD-DEN",
      "inputs": "cases/case_a/, cases/case_b/, catalog/, invariants/, keys/",
      "interpretation": "31 runs per case across the two cases.",
      "metric": "TD denominator",
      "reported": 62,
      "result_file": "results/final_v2/determinism_summary.json",
      "section": "XI-B and XI-H"
    },
    {
      "boundary": "A stratified design fixed before execution, not a random sample.",
      "claim": "31 runs per case, following the frozen stratified matrix.",
      "command": "python -m experiments.run_determinism --runs-per-case 31 --final-v2",
      "expected": 31,
      "experiment": "determinism",
      "field": "result.runs_per_case",
      "id": "TD-RPC",
      "inputs": "cases/case_a/, cases/case_b/, catalog/, invariants/, keys/",
      "interpretation": "Strata: {\"key_shuffle\": 5, \"locale\": 3, \"repeat\": 10, \"row_shuffle\": 10, \"timezone\": 3}.",
      "metric": "determinism runs per case",
      "reported": 31,
      "result_file": "results/final_v2/determinism_summary.json",
      "section": "XI-H"
    },
    {
      "boundary": "Covers the perturbation classes enumerated in the freeze, not all possible input perturbations.",
      "claim": "10 clean repeats, 10 row shuffles, 5 object-key shuffles, 3 locales and 3 time zones.",
      "command": "python -m experiments.run_determinism --runs-per-case 31 --final-v2",
      "expected": {
        "key_shuffle": 5,
        "locale": 3,
        "repeat": 10,
        "row_shuffle": 10,
        "timezone": 3
      },
      "experiment": "determinism",
      "field": "result.stratum_breakdown",
      "id": "TD-STRATA",
      "inputs": "cases/case_a/, cases/case_b/, catalog/, invariants/, keys/",
      "interpretation": "The frozen 10+10+5+3+3 design, 31 per case.",
      "metric": "determinism stratum breakdown",
      "reported": "{\"key_shuffle\": 5, \"locale\": 3, \"repeat\": 10, \"row_shuffle\": 10, \"timezone\": 3}",
      "result_file": "results/final_v2/determinism_summary.json",
      "section": "XI-H"
    },
    {
      "boundary": "Same boundary as TD.",
      "claim": "Case A reproduced its reference hash on all 31 runs.",
      "command": "python -m experiments.run_determinism --runs-per-case 31 --final-v2",
      "denominator": 31,
      "expected": 1.0,
      "experiment": "determinism",
      "field": "result.per_case.case_a.TD.value",
      "id": "TD-A",
      "inputs": "cases/case_a/inputs/, cases/case_a/judgment/, cases/case_a/dispositions/, cases/case_a/acs/, catalog/, invariants/",
      "interpretation": "Per-case determinism against reference hash f5cbc3a8016159d2074005fa021bf76ca04fb7aed1408f5ec845418460a43536.",
      "metric": "TD, Case A",
      "numerator": 31,
      "reported": "1.000 (31/31)",
      "result_file": "results/final_v2/determinism_summary.json",
      "section": "XI-H"
    },
    {
      "boundary": "Same boundary as TD.",
      "claim": "Case B reproduced its reference hash on all 31 runs.",
      "command": "python -m experiments.run_determinism --runs-per-case 31 --final-v2",
      "denominator": 31,
      "expected": 1.0,
      "experiment": "determinism",
      "field": "result.per_case.case_b.TD.value",
      "id": "TD-B",
      "inputs": "cases/case_b/inputs/, cases/case_b/judgment/, cases/case_b/dispositions/, cases/case_b/acs/, catalog/, invariants/",
      "interpretation": "Per-case determinism against reference hash 2850155a2ee7d4c01db4748a891891bae27c48f4c9c2c7eccd30beb7d1aa33ce.",
      "metric": "TD, Case B",
      "numerator": 31,
      "reported": "1.000 (31/31)",
      "result_file": "results/final_v2/determinism_summary.json",
      "section": "XI-H"
    },
    {
      "boundary": "Sampling under a declared model, not an empirical frequency.",
      "claim": "The Monte Carlo analysis is executed at K = 250,000 draws.",
      "command": "python -m experiments.run_monte_carlo --draws 250000 --final-v2",
      "expected": 250000,
      "experiment": "Monte Carlo",
      "field": "result.per_case.case_a.draws_K",
      "id": "MC-K",
      "inputs": "preregistration/monte_carlo_distributions_v1.json, cases/case_a/inputs/assessment.json, cases/case_a/inputs/thresholds.json",
      "interpretation": "Frozen draw count; RNG seed 20260201.",
      "metric": "Monte Carlo draws K",
      "reported": 250000,
      "result_file": "results/final_v2/monte_carlo_summary.json",
      "section": "XI-G"
    },
    {
      "boundary": "Reproducibility of the simulation, not of reality.",
      "claim": "The Monte Carlo seed is frozen in the preregistration.",
      "command": "python -m experiments.run_monte_carlo --draws 250000 --final-v2",
      "expected": 20260201,
      "experiment": "Monte Carlo",
      "field": "result.per_case.case_a.rng_seed",
      "id": "MC-SEED",
      "inputs": "preregistration/monte_carlo_distributions_v1.json, cases/case_a/inputs/assessment.json, cases/case_a/inputs/thresholds.json",
      "interpretation": "Makes the draw sequence reproducible bit for bit.",
      "metric": "Monte Carlo RNG seed",
      "reported": 20260201,
      "result_file": "results/final_v2/monte_carlo_summary.json",
      "section": "XI-G"
    },
    {
      "boundary": "AUTHOR-SPECIFIED, prospectively frozen +/-1 ordinal sensitivity model. NOT panel-adjudicated -- no adjudication panel has been convened -- and NOT an estimate of real rating uncertainty.",
      "claim": "Rating perturbation moves heat-map gate membership with probability up to 0.321.",
      "command": "python -m experiments.run_monte_carlo --draws 250000 --final-v2",
      "expected": 0.321268,
      "experiment": "Monte Carlo",
      "field": "result.per_case.case_a.max_FP_heat.value",
      "id": "MC-FPHEAT",
      "inputs": "preregistration/monte_carlo_distributions_v1.json, cases/case_a/inputs/assessment.json, cases/case_a/inputs/thresholds.json",
      "interpretation": "Maximum per-risk heat-map flip probability, on row R-06 (approved score 15).",
      "metric": "max FP^heat, Case A",
      "reported": 0.321268,
      "result_file": "results/final_v2/monte_carlo_summary.json",
      "section": "Abstract and XI-G"
    },
    {
      "boundary": "Quantifies simulation noise only, never model uncertainty.",
      "claim": "Monte Carlo standard error on the headline flip probability.",
      "command": "python -m experiments.run_monte_carlo --draws 250000 --final-v2",
      "expected": 0.000933926918288578,
      "experiment": "Monte Carlo",
      "field": "result.per_case.case_a.max_FP_heat.mcse",
      "id": "MC-MCSE",
      "inputs": "preregistration/monte_carlo_distributions_v1.json, cases/case_a/inputs/assessment.json, cases/case_a/inputs/thresholds.json",
      "interpretation": "Sampling error at K = 250,000. The paper rounds it to 0.001.",
      "metric": "MCSE at max FP^heat",
      "reported": 0.000933926918288578,
      "result_file": "results/final_v2/monte_carlo_summary.json",
      "section": "XI-G"
    },
    {
      "boundary": "Structural, given the declared C* profile. Proposition 3 carries the claim; the simulation corroborates it rather than proving it.",
      "claim": "Consequence-class membership does not move at all under the same perturbation.",
      "command": "python -m experiments.run_monte_carlo --draws 250000 --final-v2",
      "expected": 0.0,
      "experiment": "Monte Carlo",
      "field": "result.per_case.case_a.max_FP_cstar",
      "id": "MC-FPCSTAR",
      "inputs": "preregistration/monte_carlo_distributions_v1.json, cases/case_a/inputs/assessment.json, cases/case_a/inputs/thresholds.json, cases/case_a/inputs/cstar_profile.json",
      "interpretation": "C* membership is not a function of the perturbed ratings. This corroborates Proposition 3.",
      "metric": "max FP^C*, Case A",
      "reported": 0.0,
      "result_file": "results/final_v2/monte_carlo_summary.json",
      "section": "Abstract and XI-G"
    },
    {
      "boundary": "1,000 probe draws, not all 250,000.",
      "claim": "The C* zero is verified by re-running the approved classifier on 1,000 perturbed draws, not assumed.",
      "command": "python -m experiments.run_monte_carlo --draws 250000 --final-v2",
      "denominator": 1000,
      "expected": 0,
      "experiment": "Monte Carlo",
      "field": "result.per_case.case_a.cstar_membership_changes_observed",
      "id": "MC-CSTAR-PROBE",
      "inputs": "preregistration/monte_carlo_distributions_v1.json, cases/case_a/inputs/assessment.json, cases/case_a/inputs/thresholds.json, cases/case_a/inputs/cstar_profile.json",
      "interpretation": "Direct verification rather than an argument from construction.",
      "metric": "C* membership changes over probe draws",
      "reported": "0 changes in 1000 draws",
      "result_file": "results/final_v2/monte_carlo_summary.json",
      "section": "XI-G"
    },
    {
      "boundary": "A second declared model, still author-specified.",
      "claim": "Under a variant that renormalizes out-of-scale mass instead of reassigning it, the maximum flip probability is 0.352.",
      "command": "python -m experiments.run_monte_carlo --draws 250000 --final-v2",
      "expected": 0.352092,
      "experiment": "Monte Carlo",
      "field": "result.sensitivity_variant.case_a.max_FP_heat.value",
      "id": "MC-VARIANT",
      "inputs": "preregistration/monte_carlo_distributions_v1.json, cases/case_a/inputs/assessment.json, cases/case_a/inputs/thresholds.json",
      "interpretation": "Shows the headline figure is not knife-edge on the out-of-scale mass rule.",
      "metric": "max FP^heat, renormalisation variant",
      "reported": 0.352092,
      "result_file": "results/final_v2/monte_carlo_summary.json",
      "section": "XI-G"
    },
    {
      "boundary": "AUTHOR-SPECIFIED, prospectively frozen +/-1 ordinal sensitivity model. NOT panel-adjudicated -- no adjudication panel has been convened -- and NOT an estimate of real rating uncertainty.",
      "claim": "Over the draws, GD at the declared threshold has mean 5.447 against an approved value of 3.",
      "command": "python -m experiments.run_monte_carlo --draws 250000 --final-v2",
      "expected": 5.4466,
      "experiment": "Monte Carlo",
      "field": "result.per_case.case_a.GD_mean",
      "id": "MC-GD_MEAN",
      "inputs": "preregistration/monte_carlo_distributions_v1.json, cases/case_a/inputs/assessment.json, cases/case_a/inputs/thresholds.json",
      "interpretation": "Distributional summary under the frozen model.",
      "metric": "GD_mean",
      "reported": 5.4466,
      "result_file": "results/final_v2/monte_carlo_summary.json",
      "section": "XI-G"
    },
    {
      "boundary": "AUTHOR-SPECIFIED, prospectively frozen +/-1 ordinal sensitivity model. NOT panel-adjudicated -- no adjudication panel has been convened -- and NOT an estimate of real rating uncertainty.",
      "claim": "GD_min has mean 3.226 over the draws.",
      "command": "python -m experiments.run_monte_carlo --draws 250000 --final-v2",
      "expected": 3.226356,
      "experiment": "Monte Carlo",
      "field": "result.per_case.case_a.GD_min_mean",
      "id": "MC-GD_MIN_MEAN",
      "inputs": "preregistration/monte_carlo_distributions_v1.json, cases/case_a/inputs/assessment.json, cases/case_a/inputs/thresholds.json",
      "interpretation": "Distributional summary under the frozen model.",
      "metric": "GD_min_mean",
      "reported": 3.226356,
      "result_file": "results/final_v2/monte_carlo_summary.json",
      "section": "XI-G"
    },
    {
      "boundary": "AUTHOR-SPECIFIED, prospectively frozen +/-1 ordinal sensitivity model. NOT panel-adjudicated -- no adjudication panel has been convened -- and NOT an estimate of real rating uncertainty.",
      "claim": "The expected number of heat-map gate changes per register is 3.64.",
      "command": "python -m experiments.run_monte_carlo --draws 250000 --final-v2",
      "expected": 3.642176,
      "experiment": "Monte Carlo",
      "field": "result.per_case.case_a.expected_gate_changes_per_register_heatmap",
      "id": "MC-EXPECTED_GATE_CHANGES_PER_REGISTER_HEATMAP",
      "inputs": "preregistration/monte_carlo_distributions_v1.json, cases/case_a/inputs/assessment.json, cases/case_a/inputs/thresholds.json",
      "interpretation": "Distributional summary under the frozen model.",
      "metric": "expected_gate_changes_per_register_heatmap",
      "reported": 3.642176,
      "result_file": "results/final_v2/monte_carlo_summary.json",
      "section": "XI-G"
    },
    {
      "boundary": "A finite list of known failure modes. Not a proof of robustness.",
      "claim": "The adversarial corpus is 62 cases, all passing.",
      "command": "python -m experiments.run_adversarial --final-v2",
      "denominator": 62,
      "expected": 62,
      "experiment": "adversarial",
      "field": "result.corpus.passed",
      "id": "ADV",
      "inputs": "tests/adversarial/, cases/",
      "interpretation": "A case counts as passing only if it is rejected with the error code its requirement predicts; code_mismatch = 0, so rejection for an unrelated reason would not count.",
      "metric": "adversarial corpus",
      "reported": "62/62 (54 negative, 8 positive controls)",
      "result_file": "results/final_v2/adversarial.json",
      "section": "XI-H"
    },
    {
      "boundary": "Structural, not semantic.",
      "claim": "26 structural checks, all passing.",
      "command": "python -m experiments.run_adversarial --final-v2",
      "denominator": 26,
      "expected": 26,
      "experiment": "adversarial",
      "field": "result.structural_checks.passed",
      "id": "STRUCT",
      "inputs": "tests/adversarial/",
      "interpretation": "Structural invariants of the compiled bundle.",
      "metric": "structural checks",
      "reported": "26/26",
      "result_file": "results/final_v2/adversarial.json",
      "section": "XI-H"
    },
    {
      "boundary": "Three specific seeded conditions.",
      "claim": "Three seeded validation rows behave as specified.",
      "command": "python -m experiments.run_adversarial --final-v2",
      "denominator": 3,
      "expected": 3,
      "experiment": "adversarial",
      "field": "result.validation_seeds.passed",
      "id": "SEEDS",
      "inputs": "cases/",
      "interpretation": "Deliberately seeded WC-01 and RC-05 rows, exercised rather than described.",
      "metric": "validation seeds",
      "reported": "3/3",
      "result_file": "results/final_v2/adversarial.json",
      "section": "XI-H"
    },
    {
      "boundary": "Decision-level injections against the compiled Case B predicate set. These establish that the compiled bundle refuses to permit under each hazard class the published enforcement artifact enumerates. They are NOT a run over the 284,807-event corpus, establish NO detection performance, and reproduce no figure from [15].",
      "claim": "The thirteen Case B injection scenarios all resolve to SAFE_STATE against a clean PERMIT control.",
      "command": "python -m experiments.run_adversarial --final-v2",
      "denominator": 13,
      "expected": 13,
      "experiment": "adversarial",
      "field": "result.case_b_injection_scenarios.passed",
      "id": "INJ",
      "inputs": "cases/case_b/",
      "interpretation": "The eight adversarial attack families and five ASB scenario families enumerated by the consuming enforcement artifact.",
      "metric": "Case B injection scenarios",
      "reported": "13/13",
      "result_file": "results/final_v2/adversarial.json",
      "section": "XI-H"
    },
    {
      "boundary": "Tests, not proofs.",
      "claim": "280 tests pass across the four suites.",
      "command": "python -m experiments.run_properties --final-v2",
      "denominator": 280,
      "expected": 280,
      "experiment": "test suites",
      "field": "result.totals.passed",
      "id": "TESTS",
      "inputs": "tests/",
      "interpretation": "Unit, property-based, adversarial and integration suites; 0 failures, 0 errors.",
      "metric": "test count",
      "reported": "280/280",
      "result_file": "results/final_v2/property_tests.json",
      "section": "XI-H"
    },
    {
      "boundary": "Property-based tests sample; they do not verify, except where the space is exhausted.",
      "claim": "16 properties over 1,427 generated examples.",
      "command": "python -m experiments.run_properties --final-v2",
      "denominator": 1427,
      "expected": 16,
      "experiment": "test suites",
      "field": "result.property_based.property_count",
      "id": "PROPS",
      "inputs": "tests/properties/",
      "interpretation": "Hypothesis, max_examples = 100 per property. Two properties report fewer because their finite input spaces are EXHAUSTED, which is stronger evidence than 100 random draws.",
      "metric": "properties and generated examples",
      "reported": "16 properties, 1427 examples",
      "result_file": "results/final_v2/property_tests.json",
      "section": "XI-H"
    },
    {
      "boundary": "Empty result sets on the clean fixtures demonstrate linkage and temporal-integrity completeness UNDER THE DECLARED DATA MODEL. They do not establish legal compliance, semantic correctness, or control effectiveness. The negative controls establish that each query can in fact detect the violation it exists to detect.",
      "claim": "All six traceability audit queries return empty on the clean fixtures, for both cases.",
      "command": "python -m experiments.run_traceability --final-v2",
      "expected": true,
      "experiment": "traceability",
      "field": "result.summary.all_clean_queries_empty",
      "id": "TRACE-CLEAN",
      "inputs": "queries/traceability.sql, cases/*/lifecycle/",
      "interpretation": "Linkage and temporal-integrity completeness under the declared data model. Queries: Q1, Q2, Q3, Q4, Q5, Q6.",
      "metric": "clean audit queries empty",
      "reported": "6/6 empty per case, both cases",
      "result_file": "results/final_v2/traceability_queries.json",
      "section": "XI-H"
    },
    {
      "boundary": "Establishes query sensitivity on seeded faults, not exhaustiveness over all possible faults.",
      "claim": "Every negative control fires.",
      "command": "python -m experiments.run_traceability --final-v2",
      "expected": true,
      "experiment": "traceability",
      "field": "result.summary.all_negative_controls_detected",
      "id": "TRACE-NEG",
      "inputs": "cases/*/lifecycle/negative/",
      "interpretation": "Each query can in fact detect the violation it exists to detect, so an empty clean result is informative rather than vacuous.",
      "metric": "negative controls detected",
      "reported": "18/18",
      "result_file": "results/final_v2/traceability_queries.json",
      "section": "XI-H"
    },
    {
      "boundary": "Establishes prospective public commitment for TIER-0 only. The Tier-1 held-out register is not covered and is not yet authored.",
      "claim": "The public preregistration commitment is discharged: the freeze tag was pushed to the remote BEFORE the reportable campaign executed.",
      "command": "python tools/freeze_check.py --final-v2",
      "expected": true,
      "experiment": "freeze verification",
      "field": "freeze_verification.public_commitment_discharged",
      "id": "FREEZE",
      "inputs": "preregistration/FREEZE_MANIFEST_V2.sha256, git tag preregister-tier0-v2.2",
      "interpretation": "Tag preregister-tier0-v2.2 at commit c44f25d6fdb6; the remote tag dereferences to the same commit.",
      "metric": "public_commitment_discharged",
      "reported": "True",
      "result_file": "results/final_v2/PROVENANCE.json",
      "section": "XI-I"
    },
    {
      "boundary": "Frozen scope, NOT repository scope. MANIFEST.sha256 inventories the wider repository and serves a different purpose.",
      "claim": "The freeze manifest covers 133 files.",
      "command": "python tools/freeze_check.py --final-v2",
      "expected": 133,
      "experiment": "freeze verification",
      "field": "freeze_verification.frozen_file_count",
      "id": "FREEZE-FILES",
      "inputs": "preregistration/FREEZE_MANIFEST_V2.sha256",
      "interpretation": "The scope of the frozen scientific experiment.",
      "metric": "frozen file count",
      "reported": 133,
      "result_file": "results/final_v2/PROVENANCE.json",
      "section": "XI-I"
    },
    {
      "boundary": "NOT platform independence. A finite matrix of environments is not the set of all environments; no other operating system and no other Python implementation was exercised.",
      "claim": "TD = 1.000 with identical reference canonical payload hashes on eight independently provisioned environments spanning three operating systems, two machine architectures and six CPython patch versions.",
      "command": "python -m experiments.check_ci_agreement <downloaded run artifacts> --out CI_STATUS.md",
      "environments": [
        {
          "arch": "arm64",
          "leg": "local host",
          "os": "macOS 26.6.2",
          "python": "3.11.15"
        },
        {
          "arch": "aarch64",
          "leg": "pinned container",
          "os": "Linux-6.12.76-linuxkit (Debian bookworm)",
          "python": "3.11.11"
        },
        {
          "arch": "arm64",
          "leg": "CI macos-latest-py3.11",
          "os": "macOS-26.6.2",
          "python": "3.11.9"
        },
        {
          "arch": "arm64",
          "leg": "CI macos-latest-py3.12",
          "os": "macOS-26.6.2",
          "python": "3.12.10"
        },
        {
          "arch": "x86_64",
          "leg": "CI ubuntu-latest-py3.11",
          "os": "Linux-6.17.0-azure",
          "python": "3.11.16"
        },
        {
          "arch": "x86_64",
          "leg": "CI ubuntu-latest-py3.12",
          "os": "Linux-6.17.0-azure",
          "python": "3.12.14"
        },
        {
          "arch": "AMD64",
          "leg": "CI windows-latest-py3.11",
          "os": "Windows-10.0.26100",
          "python": "3.11.9"
        },
        {
          "arch": "AMD64",
          "leg": "CI windows-latest-py3.12",
          "os": "Windows-10.0.26100",
          "python": "3.12.10"
        }
      ],
      "expected": "TD = 1.0 and matching reference hashes on every leg",
      "experiment": "cross-platform determinism (GitHub Actions matrix, pinned container, local host)",
      "field": "per-leg JSON under results/final_v2/cross_environment/ci/*/determinism_summary.json",
      "id": "XENV",
      "inputs": "GitHub Actions run 34261657261 artifacts; results/final_v2/cross_environment/",
      "interpretation": "Determinism reproduces across the tested supported environments; 496 compilations in total.",
      "metric": "cross-environment agreement",
      "reported": "8 environments, all TD = 1.000, all reference hashes identical",
      "result_file": "results/final_v2/CI_STATUS.md",
      "section": "XI-H and XII"
    }
  ],
  "entry_count": 48,
  "freeze_commit": "c44f25d6fdb67e0bc4ac73a6217125dec8da1c0e",
  "freeze_tag": "preregister-tier0-v2.2",
  "generated_by": "tools/build_paper_result_map.py",
  "results_dir": "results/final_v2"
}
