schema: 1
proofs:
  P001:
    script: proofs/aggregation/attention_sum_in_range.py
    page: docs/proofs/aggregation/attention-sum-in-range.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/aggregation/cardinality_generalization/test_attention_sum_in_range.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/aggregation/cardinality_generalization/support.py
      summary: |-
        The checked-in report says every behavioral gate passes at this fixed seed.
        The result remains provisional until the controls are repeated across seeds.
      insights: |-
        **Attention can learn totals across varying collection lengths without a supplied count field.** Independent signed amounts prevent count alone from predicting the answer. The reduction retains additive evidence and present-token count alongside its learned summary, providing a route for both content and multiplicity to survive.

        The held-out accuracy and item-permutation controls support this route within the trained length range. They do not establish a general sum rule: a model could still learn relationships specialized to familiar lengths. The unseen-length proof separately checks longer bags and duplication. Treat this case as evidence for ordinary interpolation, rather than a guarantee that every accepted input shape will be handled accurately.
      evidence: |-
        The proof uses deterministic CPU training at seed 3609 for 1,100 updates.
        The split contains 1,536 training, 384 validation, and 768 test records.

        The source reports gate clearance but does not record measured scores. nRMSE divides test RMSE by the training-mean baseline error; lower is better.

        | Check | Required gate | Recorded evidence |
        | --- | --- | --- |
        | Held-out sum nRMSE | < 0.35 | Gate reported passing |
        | Complete-item permutation drift | < 0.12 target SD | Gate reported passing |
    runs:
    - started_at: '2026-09-15T02:13:54.778513+00:00'
      mode: smoke
      seed: 3609
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 12844f7c58729a2d44756463446b10202bdbfc01cf6bce8d81875196243b6eb2
        script_sha256: 7407794e6eb66bed5e779a7d57e95d523b17bd81310ef51deaa8f8e72d19abd2
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 0da77456a92d1fef568c8fe84bb26390dcc87322020ede204d81dfc5f912b974
      metrics:
        measured:
          rmse: 0.9715104338018339
          baseline_rmse: 1.0961391615079292
          nrmse: 0.8863020936733553
        permutation_drift: 0.012183398449126632
        steps: 2
      checks:
        Seen-length nRMSE below 0.35: false
        Permutation drift below 0.12 target SD: true
      outcome: not_met
      duration_seconds: 0.862
    - started_at: '2026-09-15T02:16:40.875298+00:00'
      mode: full
      seed: 3609
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 12844f7c58729a2d44756463446b10202bdbfc01cf6bce8d81875196243b6eb2
        script_sha256: 7407794e6eb66bed5e779a7d57e95d523b17bd81310ef51deaa8f8e72d19abd2
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 0da77456a92d1fef568c8fe84bb26390dcc87322020ede204d81dfc5f912b974
      metrics:
        measured:
          rmse: 0.011440918430587489
          baseline_rmse: 1.0961391615079292
          nrmse: 0.010437468920322603
        permutation_drift: 0.0029657489343600614
        steps: 1100
      checks:
        Seen-length nRMSE below 0.35: true
        Permutation drift below 0.12 target SD: true
      outcome: met
      duration_seconds: 35.782
  P002:
    script: proofs/aggregation/attention_sum_unseen_lengths.py
    page: docs/proofs/aggregation/attention-sum-unseen-lengths.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/aggregation/cardinality_generalization/test_attention_sum_unseen_lengths.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/aggregation/cardinality_generalization/support.py
      summary: |-
        The checked-in report says every behavioral gate passes at this fixed seed.
        The result remains provisional until the controls are repeated across seeds.
      insights: |-
        **The learned sum extends beyond trained collection lengths and responds approximately to duplication.** Longer held-out bags test length extrapolation. Duplicating complete bags checks that predictions roughly double, while equal-value probes isolate the need to distinguish different repetition counts.

        Spare branch capacity only permits longer inputs; it does not establish their meaning. These behavioral checks provide the evidence that the model uses accumulated mass. The equal-value probes themselves use familiar lengths, so they complement rather than replace the unseen-length test. The result supports a bounded extension beyond training, not arbitrary-length or exact summation; missing values and nested totals require separate checks.
      evidence: |-
        The proof uses deterministic CPU training at seed 3615 for 1,100 updates.
        Training uses 1,536 records; validation uses 384. Separate seen and unseen tests contain 512 records each, with 256 short records for duplication.

        The source reports gate clearance but does not record measured scores. nRMSE divides test RMSE by the training-mean baseline error; lower is better.

        | Check | Required gate | Recorded evidence |
        | --- | --- | --- |
        | Seen-length sum nRMSE | < 0.35 | Gate reported passing |
        | Unseen-length sum nRMSE | < 0.30 | Gate reported passing |
        | Complete-bag doubling error | < 0.20 unseen-target SD | Gate reported passing |
        | Equal-value cardinality error | < 0.20 unseen-target SD | Gate reported passing |
    runs:
    - started_at: '2026-09-15T02:13:58.975883+00:00'
      mode: smoke
      seed: 3615
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 70dfbf74a5344939544a0869e108d29b141f31a431040ac421f69ac2484d3787
        script_sha256: 940a234cfd0627f31ce4c070050203072b2954f8ab70587f28e1894f7db2965a
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: f06fdf3ee348cdab290eee5280ca3978bb3e06ae8fcb501830852bdddb7e87bc
      metrics:
        in_range_score:
          rmse: 0.6269405964118039
          baseline_rmse: 1.0401230906449561
          nrmse: 0.6027561565074501
        unseen_score:
          rmse: 1.412499210910415
          baseline_rmse: 1.7874220810107455
          nrmse: 0.7902437963123291
        duplication_error: 0.34753360299755176
        probe_error: 1.0865928441284074
        probe_target:
        - 0.65
        - 1.9500000000000002
        - 3.9000000000000004
        probe_prediction:
        - 0.7397217154502869
        - 0.7481788396835327
        - 0.7602300643920898
        steps: 2
      checks:
        All measurements finite: true
        Seen nRMSE < 0.35, unseen nRMSE < 0.30, duplication and cardinality errors < 0.20: false
      outcome: not_met
      duration_seconds: 0.724
    - started_at: '2026-09-15T02:17:20.021979+00:00'
      mode: full
      seed: 3615
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 70dfbf74a5344939544a0869e108d29b141f31a431040ac421f69ac2484d3787
        script_sha256: 940a234cfd0627f31ce4c070050203072b2954f8ab70587f28e1894f7db2965a
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: f06fdf3ee348cdab290eee5280ca3978bb3e06ae8fcb501830852bdddb7e87bc
      metrics:
        in_range_score:
          rmse: 0.01776947570306214
          baseline_rmse: 1.0401230906449561
          nrmse: 0.01708401232785218
        unseen_score:
          rmse: 0.1318423008366465
          baseline_rmse: 1.7874220810107455
          nrmse: 0.07376114586326066
        duplication_error: 0.06995505807797699
        probe_error: 0.048478743460122514
        probe_target:
        - 0.65
        - 1.9500000000000002
        - 3.9000000000000004
        probe_prediction:
        - 0.6695117950439453
        - 1.9607654809951782
        - 3.751617193222046
        steps: 1100
      checks:
        All measurements finite: true
        Seen nRMSE < 0.35, unseen nRMSE < 0.30, duplication and cardinality errors < 0.20: true
      outcome: met
      duration_seconds: 34.076
  P003:
    script: proofs/aggregation/mean_duplicate_invariance.py
    page: docs/proofs/aggregation/mean-duplicate-invariance.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/aggregation/cardinality_generalization/test_mean_duplicate_invariance.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/aggregation/cardinality_generalization/support.py
      summary: |-
        The checked-in report says every behavioral gate passes at this fixed seed.
        The result remains provisional until the controls are repeated across seeds.
      insights: |-
        **With item attention disabled, Mean preserves the answer when a whole bag is repeated.** It averages encoded Number tokens, so duplicating every item leaves the representation unchanged. The decoder must still learn how that representation corresponds to the arithmetic mean of the raw amounts.

        That invariance is useful for an average and destructive for a total. The same duplicated bag has twice the sum, which cannot be recovered from an unchanged summary without additional information. This proof checks learned mean accuracy together with permutation and duplication stability. It does not imply that every architecture containing Mean discards count; earlier item interaction can change what reaches the reducer.
      evidence: |-
        The proof uses deterministic CPU training at seed 3600 for 350 updates.
        Training uses 768 records of lengths one through six. Validation uses 192; the 384 test records have at most three items before duplication.

        The source reports gate clearance but does not record measured scores. nRMSE divides test RMSE by the training-mean baseline error; lower is better.

        | Check | Required gate | Recorded evidence |
        | --- | --- | --- |
        | Held-out mean nRMSE | < 0.25 | Gate reported passing |
        | Complete-item permutation drift | < 0.000001 target SD | Gate reported passing |
        | Complete-bag duplication drift | < 0.000001 target SD | Gate reported passing |
    runs:
    - started_at: '2026-09-15T02:14:03.087597+00:00'
      mode: smoke
      seed: 3600
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 02efc670933c194c70390e7b9d4a1d3f8003d548a006b38fbae516e4f40ce6d6
        script_sha256: 0bd2109beffe831baa765f127e9c1786b7c6a557907fc25c0d8d19bdae806cc0
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 2c62be872f128a42d93cbba77f5f789045c57a03fc7b9c1b05a0d4bc965a4b5c
      metrics:
        measured:
          rmse: 0.38763687422212156
          baseline_rmse: 0.4464820375017577
          nrmse: 0.8682026188356917
        permutation_drift: 9.660340108552e-08
        duplication_drift: 1.521048304462154e-07
        steps: 2
      checks:
        Mean nRMSE below 0.25: false
        Permutation drift below 1e-6 target SD: true
        Duplication drift below 1e-6 target SD: true
      outcome: not_met
      duration_seconds: 0.692
    - started_at: '2026-09-15T02:17:57.471956+00:00'
      mode: full
      seed: 3600
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 02efc670933c194c70390e7b9d4a1d3f8003d548a006b38fbae516e4f40ce6d6
        script_sha256: 0bd2109beffe831baa765f127e9c1786b7c6a557907fc25c0d8d19bdae806cc0
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 2c62be872f128a42d93cbba77f5f789045c57a03fc7b9c1b05a0d4bc965a4b5c
      metrics:
        measured:
          rmse: 0.00870920478372268
          baseline_rmse: 0.4464820375017577
          nrmse: 0.019506282565036885
        permutation_drift: 9.016303112837792e-08
        duplication_drift: 1.4843119244744396e-07
        steps: 350
      checks:
        Mean nRMSE below 0.25: true
        Permutation drift below 1e-6 target SD: true
        Duplication drift below 1e-6 target SD: true
      outcome: met
      duration_seconds: 7.091
  P004:
    script: proofs/aggregation/visible_count_sum.py
    page: docs/proofs/aggregation/visible-count-sum.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/aggregation/cardinality_generalization/test_visible_count_sum.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/aggregation/cardinality_generalization/support.py
      summary: |-
        The checked-in report says every behavioral gate passes at this fixed seed.
        The result remains provisional until the controls are repeated across seeds.
      insights: |-
        **Providing an item count lets the model distinguish totals that an average alone cannot.** Every item in a record repeats the same amount, so the branch summary stays unchanged when only the number of copies changes. The ordinary root count field supplies the missing factor needed for a total.

        The matched probes require different predictions for the same repeated value at different counts. This isolates learning the amount-times-count relationship from recovering multiplicity through the collection itself. It is a useful diagnostic when a reduction appears to lose mass. The proof covers repeated-value bags and familiar counts; it does not establish sums over arbitrary mixed-value collections.
      evidence: |-
        The proof uses deterministic CPU training at seed 3605 for 700 updates.
        The split contains 1,024 training, 256 validation, and 512 test records.

        The source reports gate clearance but does not record measured scores. nRMSE divides test RMSE by the training-mean baseline error; lower is better.

        | Check | Required gate | Recorded evidence |
        | --- | --- | --- |
        | Held-out sum nRMSE | < 0.25 | Gate reported passing |
        | Six-minus-one probe prediction | > 2.5 | Gate reported passing |
        | Probe RMSE | < 0.35 | Gate reported passing |
    runs:
    - started_at: '2026-09-15T02:14:07.120269+00:00'
      mode: smoke
      seed: 3605
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 6ce281d0517c8197cd92a45e4c1c5a22985eee2ecfa2b19afde05484eb5547db
        script_sha256: c1885747ad039202f9c713a2dc8c9c2905da05ddf11b891f85c0086dde9d69fe
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: f7fb9b4e437be5f31e8378a4d66f929898e67dc0298d9a20ed9ff900d9015c61
      metrics:
        measured:
          rmse: 2.141662911831524
          baseline_rmse: 2.2334354369152405
          nrmse: 0.9589097031564654
        probe_error: 3.231573420102224
        probe_target:
        - 0.7
        - 4.199999999999999
        probe_prediction:
        - -0.22359752655029297
        - -0.275835245847702
        steps: 2
      checks:
        Visible-count nRMSE below 0.25: false
        Matched-count prediction gap above 2.5: false
        Matched-count RMSE below 0.35: false
      outcome: not_met
      duration_seconds: 0.686
    - started_at: '2026-09-15T02:18:07.972553+00:00'
      mode: full
      seed: 3605
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 6ce281d0517c8197cd92a45e4c1c5a22985eee2ecfa2b19afde05484eb5547db
        script_sha256: c1885747ad039202f9c713a2dc8c9c2905da05ddf11b891f85c0086dde9d69fe
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: f7fb9b4e437be5f31e8378a4d66f929898e67dc0298d9a20ed9ff900d9015c61
      metrics:
        measured:
          rmse: 0.04991937532832079
          baseline_rmse: 2.2334354369152405
          nrmse: 0.022350937261597342
        probe_error: 0.043074799555061556
        probe_target:
        - 0.7
        - 4.199999999999999
        probe_prediction:
        - 0.7487784624099731
        - 4.236490249633789
        steps: 700
      checks:
        Visible-count nRMSE below 0.25: true
        Matched-count prediction gap above 2.5: true
        Matched-count RMSE below 0.35: true
      outcome: met
      duration_seconds: 16.503
  P005:
    script: proofs/aggregation/visible_count_unseen_lengths.py
    page: docs/proofs/aggregation/visible-count-unseen-lengths.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/aggregation/cardinality_generalization/test_visible_count_unseen_lengths.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/aggregation/cardinality_generalization/support.py
      summary: |-
        The checked-in report says every behavioral gate passes at this fixed seed.
        The result remains provisional until the controls are repeated across seeds.
      insights: |-
        **Supplying count lets this model extend its learned total to counts absent from training.** Mean carries the repeated amount, while the visible count carries multiplicity. Doubling both the bag and its count checks whether predictions respond approximately like a product.

        This separates numerical extrapolation from structural counting: the model is told how many items exist. It therefore answers a different question from the Attention proof without a count field. The result supports a limited extension of the amount-times-count relationship, using bags whose values are identical within each record. It does not establish wider mixed-value sums or reliable behavior at arbitrarily large counts.
      evidence: |-
        The proof uses deterministic CPU training at seed 3621 for 700 updates.
        Training uses 1,024 records and validation 256. The unseen test contains 512 records, with 256 separate short records for duplication.

        The source reports gate clearance but does not record measured scores. nRMSE divides test RMSE by the training-mean baseline error; lower is better.

        | Check | Required gate | Recorded evidence |
        | --- | --- | --- |
        | Unseen-count sum nRMSE | < 0.40 | Gate reported passing |
        | Complete-bag doubling error | < 0.20 unseen-target SD | Gate reported passing |
    runs:
    - started_at: '2026-09-15T02:14:11.138217+00:00'
      mode: smoke
      seed: 3621
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: c1409aed71c9e427c0038327918a3bc6e4f9be0ddc8d781ca7906e76d651f3bb
        script_sha256: 7925a4c3f6179c4455db597bb005017a232a7267d1e83e7fa3ca117146cc005b
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 416dfcbc48fa5dc8eafd8b6a8a79404bc2e3cded6afe662535504301badd5119
      metrics:
        unseen_score:
          rmse: 4.629937546017952
          baseline_rmse: 4.8922481485064635
          nrmse: 0.9463824003758698
        duplication_error: 0.12502611168610908
        steps: 2
      checks:
        All measurements finite: true
        Unseen nRMSE below 0.40 and duplication error below 0.20: false
      outcome: not_met
      duration_seconds: 0.653
    - started_at: '2026-09-15T02:18:27.827905+00:00'
      mode: full
      seed: 3621
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: c1409aed71c9e427c0038327918a3bc6e4f9be0ddc8d781ca7906e76d651f3bb
        script_sha256: 7925a4c3f6179c4455db597bb005017a232a7267d1e83e7fa3ca117146cc005b
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 416dfcbc48fa5dc8eafd8b6a8a79404bc2e3cded6afe662535504301badd5119
      metrics:
        unseen_score:
          rmse: 1.0328117902916467
          baseline_rmse: 4.8922481485064635
          nrmse: 0.21111189762664637
        duplication_error: 0.17863387934508984
        steps: 700
      checks:
        All measurements finite: true
        Unseen nRMSE below 0.40 and duplication error below 0.20: true
      outcome: met
      duration_seconds: 16.509
  P006:
    script: proofs/aggregation/aligned_pair_covariance.py
    page: docs/proofs/aggregation/aligned-pair-covariance.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/aggregation/distribution_statistics/test_aligned_pair_covariance.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/aggregation/distribution_statistics/support.py
      summary: |-
        The checked-in report says every behavioral gate passes at this fixed seed.
        The result remains provisional until the controls are repeated across seeds.
      insights: |-
        **Covariance depends on which X belongs with which Y, not just the two value distributions.** Circularly shifting only Y preserves both marginal sets of numbers but breaks accuracy against the original covariance labels. That is evidence that the model uses item-level pairing.

        Keep aligned fields on the same repeated item so their relationship remains available before aggregation. The supplied-cross-product control helps distinguish that interaction from the final averaging step. This proof supports learned population covariance in its tested setting; it does not establish Pearson correlation, which also requires normalization by both spreads. Complete-pair permutation and varying collection lengths remain separate checks.
      evidence: |-
        The proof uses deterministic CPU training at seed 3508 for 1,100 updates.
        The split contains 1,536 training, 384 validation, and 768 test records.

        The source reports gate clearance but does not record measured scores. nRMSE divides test RMSE by the training-mean baseline error; lower is better.

        | Check | Required gate | Recorded evidence |
        | --- | --- | --- |
        | Held-out covariance nRMSE | < 0.35 | Gate reported passing |
        | Shifted-y nRMSE increase | ≥ 0.35 | Gate reported passing |
        | Baseline RMSE | > 0.35 | Gate reported passing |
    runs:
    - started_at: '2026-09-15T02:14:15.111777+00:00'
      mode: smoke
      seed: 3508
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 9f4bb0bff69a8408d3a32a4d322c5d54ab1f93ee02890b0750817f6fde1dfa88
        script_sha256: 2ffe78169520d9859ef392e497a2147d965579e3a333e729101bfe252b1829af
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: c22da3412e3bc4bab52bc043f4656508dc3352ad4eacbfa34f570170e974776c
      metrics:
        intact:
          rmse: 0.5274288524922595
          baseline_rmse: 0.47722980830253015
          nrmse: 1.1051884088470574
        corrupted:
          rmse: 0.5368457160690728
          baseline_rmse: 0.47722980830253015
          nrmse: 1.1249207545911515
        steps: 2
      checks:
        All measurements finite: true
        Baseline RMSE above 0.35: true
        Corruption preserves baseline: true
        Covariance nRMSE below 0.35: false
        Shuffled pairing raises nRMSE by at least 0.35: false
      outcome: not_met
      duration_seconds: 0.942
    - started_at: '2026-09-15T02:18:47.729841+00:00'
      mode: full
      seed: 3508
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 9f4bb0bff69a8408d3a32a4d322c5d54ab1f93ee02890b0750817f6fde1dfa88
        script_sha256: 2ffe78169520d9859ef392e497a2147d965579e3a333e729101bfe252b1829af
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: c22da3412e3bc4bab52bc043f4656508dc3352ad4eacbfa34f570170e974776c
      metrics:
        intact:
          rmse: 0.03611944439780519
          baseline_rmse: 0.47722980830253015
          nrmse: 0.0756856419473865
        corrupted:
          rmse: 0.6538480142116774
          baseline_rmse: 0.47722980830253015
          nrmse: 1.3700904738900628
        steps: 1100
      checks:
        All measurements finite: true
        Baseline RMSE above 0.35: true
        Corruption preserves baseline: true
        Covariance nRMSE below 0.35: true
        Shuffled pairing raises nRMSE by at least 0.35: true
      outcome: met
      duration_seconds: 29.055
  P007:
    script: proofs/aggregation/raw_value_variance.py
    page: docs/proofs/aggregation/raw-value-variance.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/aggregation/distribution_statistics/test_raw_value_variance.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/aggregation/distribution_statistics/support.py
      summary: |-
        The checked-in report says every behavioral gate passes at this fixed seed.
        The result remains provisional until the controls are repeated across seeds.
      insights: |-
        **The model can learn how spread out values are, even when their averages are the same.** Independently varied location and scale prevent the mean alone from supplying the variance label. The matched-mean control requires a larger prediction for the more dispersed collection, without providing squared deviations as inputs.

        This supports learning beyond a single raw-average statistic. It does not mean `rf.Mean()` always erases spread: averaging nonlinear encoded features is different from supplying only the arithmetic mean. This particular proof uses Attention. The squared-deviation control isolates the easier reduction task. This proof uses population variance; a sample-variance target, varying lengths, and missing values need separate checks.
      evidence: |-
        The proof uses deterministic CPU training at seed 3504 for 900 updates.
        The split contains 1,280 training, 320 validation, and 640 test records.

        The source reports gate clearance but does not record measured scores. nRMSE divides test RMSE by the training-mean baseline error; lower is better.

        | Check | Required gate | Recorded evidence |
        | --- | --- | --- |
        | Held-out variance nRMSE | < 0.30 | Gate reported passing |
        | Matched-mean prediction separation | > 0.65 | Gate reported passing |
    runs:
    - started_at: '2026-09-15T02:14:19.399578+00:00'
      mode: smoke
      seed: 3504
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 51f0fe1ca3c0f68991bab59bd92cf0d1e8a755b8a60f3b66fcdcf41e342f0d8c
        script_sha256: c15e9c78bd4282de4c2275d8308d02778eb0d466f0c81934e04132e43fade4a6
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: e5acc260bda808202519fbac2453d782447bd949cba214ae3b802040f9a3bdba
      metrics:
        measured:
          rmse: 0.6614792398888426
          baseline_rmse: 0.4630170659412655
          nrmse: 1.4286282051917982
        paired_prediction:
        - 1.135880708694458
        - 1.1724250316619873
        steps: 2
      checks:
        Variance nRMSE below 0.30: false
        Matched-mean variance prediction gap above 0.65: false
      outcome: not_met
      duration_seconds: 0.735
    - started_at: '2026-09-15T02:19:20.158395+00:00'
      mode: full
      seed: 3504
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 51f0fe1ca3c0f68991bab59bd92cf0d1e8a755b8a60f3b66fcdcf41e342f0d8c
        script_sha256: c15e9c78bd4282de4c2275d8308d02778eb0d466f0c81934e04132e43fade4a6
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: e5acc260bda808202519fbac2453d782447bd949cba214ae3b802040f9a3bdba
      metrics:
        measured:
          rmse: 0.01230695448216799
          baseline_rmse: 0.4630170659412655
          nrmse: 0.02657991548788646
        paired_prediction:
        - 0.037198811769485474
        - 1.2225090265274048
        steps: 900
      checks:
        Variance nRMSE below 0.30: true
        Matched-mean variance prediction gap above 0.65: true
      outcome: met
      duration_seconds: 23.07
  P008:
    script: proofs/aggregation/supplied_cross_deviations.py
    page: docs/proofs/aggregation/supplied-cross-deviations.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/aggregation/distribution_statistics/test_supplied_cross_deviations.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/aggregation/distribution_statistics/support.py
      summary: |-
        The checked-in report says every behavioral gate passes at this fixed seed.
        The result remains provisional until the controls are repeated across seeds.
      insights: |-
        **Once centered products are supplied, the model can learn their average as covariance.** The difficult information about pairing and centering has already been calculated outside the model. Positive, negative, and canceling contributions then share the same reduction task.

        This control helps localize a failure in raw-pair covariance. If supplied products are easy but raw pairs are not, the missing behavior is more likely in the interaction than in final averaging. Passing here does not demonstrate learned centering, multiplication, or sensitivity to raw X–Y pairing. The proof checks numerical accuracy for its fixed collection length, without independently testing broader covariance identities.
      evidence: |-
        The proof uses deterministic CPU training at seed 3513 for 350 updates.
        The split contains 768 training, 192 validation, and 384 test records.

        The source reports gate clearance but does not record measured scores. nRMSE divides test RMSE by the training-mean baseline error; lower is better.

        | Check | Required gate | Recorded evidence |
        | --- | --- | --- |
        | Held-out covariance nRMSE | < 0.20 | Gate reported passing |
    runs:
    - started_at: '2026-09-15T02:14:23.484928+00:00'
      mode: smoke
      seed: 3513
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 772bd81f23b43f14312f70a3f585f5914ad9dc8d3ac095ae146bdd51990259f0
        script_sha256: 0769700abc6770b6cf9548da350dc9676ab84c1e7f14a449ad0ecc32cbc27d94
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: afb47f7c85ae5d5999437ba681b54168ccf00b3567b810f5b95650749bc823c7
      metrics:
        measured:
          rmse: 0.6519931857112699
          baseline_rmse: 0.4641245625126908
          nrmse: 1.4047806092862023
        steps: 2
      checks:
        Covariance nRMSE below 0.20: false
      outcome: not_met
      duration_seconds: 0.698
    - started_at: '2026-09-15T02:19:46.599284+00:00'
      mode: full
      seed: 3513
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 772bd81f23b43f14312f70a3f585f5914ad9dc8d3ac095ae146bdd51990259f0
        script_sha256: 0769700abc6770b6cf9548da350dc9676ab84c1e7f14a449ad0ecc32cbc27d94
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: afb47f7c85ae5d5999437ba681b54168ccf00b3567b810f5b95650749bc823c7
      metrics:
        measured:
          rmse: 0.008793690333400911
          baseline_rmse: 0.4641245625126908
          nrmse: 0.018946832474871358
        steps: 350
      checks:
        Covariance nRMSE below 0.20: true
      outcome: met
      duration_seconds: 7.622
  P009:
    script: proofs/aggregation/supplied_squared_deviations.py
    page: docs/proofs/aggregation/supplied-squared-deviations.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/aggregation/distribution_statistics/test_supplied_squared_deviations.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/aggregation/distribution_statistics/support.py
      summary: |-
        The checked-in report says every behavioral gate passes at this fixed seed.
        The result remains provisional until the controls are repeated across seeds.
      insights: |-
        **Providing squared deviations tests averaging; it does not show that the model can calculate variance from raw values.** The generator has already centered and squared each value. The model receives those sufficient statistics and learns to decode their average as population variance.

        That makes the case a useful diagnostic beside raw-value variance: if this succeeds while the raw route fails, investigate centering or the learned nonlinear interaction before blaming final reduction. Mean averages encoded tokens, so numerical decoding still has to work. The accuracy gate does not independently establish permutation behavior, varying collection lengths, or handling of missing values, and it supplies no evidence that the model learned the preprocessing operation.
      evidence: |-
        The proof uses deterministic CPU training at seed 3500 for 350 updates.
        The split contains 768 training, 192 validation, and 384 test records.

        The source reports gate clearance but does not record measured scores. nRMSE divides test RMSE by the training-mean baseline error; lower is better.

        | Check | Required gate | Recorded evidence |
        | --- | --- | --- |
        | Held-out variance nRMSE | < 0.20 | Gate reported passing |
    runs:
    - started_at: '2026-09-15T02:14:27.504678+00:00'
      mode: smoke
      seed: 3500
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 9794c74e27d86088dfb4ea8d03abccb0a8bc826edc859bf652613b0ffc95017b
        script_sha256: 342287554d0bcab4367eedfd87f4f8f5361511ebd304cf1d100a9d4e1480e5d8
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 19fb61d95346c08bc1691b7b2efd5acb4eddba8782100b18e3777490f80e9f6d
      metrics:
        measured:
          rmse: 0.6144500835113652
          baseline_rmse: 0.4800716415268894
          nrmse: 1.2799133095158028
        steps: 2
      checks:
        Variance nRMSE below 0.20: false
      outcome: not_met
      duration_seconds: 0.677
    - started_at: '2026-09-15T02:19:57.574262+00:00'
      mode: full
      seed: 3500
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 9794c74e27d86088dfb4ea8d03abccb0a8bc826edc859bf652613b0ffc95017b
        script_sha256: 342287554d0bcab4367eedfd87f4f8f5361511ebd304cf1d100a9d4e1480e5d8
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 19fb61d95346c08bc1691b7b2efd5acb4eddba8782100b18e3777490f80e9f6d
      metrics:
        measured:
          rmse: 0.010172192102680725
          baseline_rmse: 0.4800716415268894
          nrmse: 0.02118890436920542
        steps: 350
      checks:
        Variance nRMSE below 0.20: true
      outcome: met
      duration_seconds: 7.135
  P010:
    script: proofs/aggregation/selected_group_raw_weighted_sum.py
    page: docs/proofs/aggregation/selected-group-raw-weighted-sum.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/aggregation/grouped_weighted_aggregation/test_selected_group_raw_weighted_sum.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/aggregation/grouped_weighted_aggregation/support.py
      summary: |-
        The checked-in report says every behavioral gate passes at this fixed seed.
        The result remains provisional until the controls are repeated across seeds.
      insights: |-
        **The model can select a requested group and learn its weighted total from raw values and weights.** The same bag appears with different requested groups, so bag content alone cannot determine the answer. Rotating group labels tests selection; swapping weights within each group separately tests the value–weight relationship. Both controls remove accuracy against retained original labels.

        Keeping group, value, and weight together preserves the relationships the answer needs. The supplied-contribution control helps separate multiplication from selection and reduction. The result is still narrow: groups are familiar and equally populated. Unseen labels, absent groups, and varying group sizes are additional tasks, not consequences of this pass.
      evidence: |-
        The proof uses deterministic CPU training at seed 3605 for 1,100 updates.
        The split uses 512 training, 128 validation, and 256 test bags, each expanded into three requests.

        The source reports gate clearance but does not record measured scores. nRMSE divides test RMSE by the training-mean baseline error; lower is better.

        | Check | Required gate | Recorded evidence |
        | --- | --- | --- |
        | Held-out answer nRMSE | < 0.50 | Gate reported passing |
        | Group-label corruption nRMSE increase | ≥ 0.20 | Gate reported passing |
        | Within-group weight-swap nRMSE increase | ≥ 0.20 | Gate reported passing |
        | Complete-item permutation drift | < 0.10 target SD | Gate reported passing |
    runs:
    - started_at: '2026-09-15T02:14:31.538988+00:00'
      mode: smoke
      seed: 3605
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 27937931b9c7d89f9cced00722a005874718f90849eb68704f32bb43c221fa0d
        script_sha256: 7c8a462450b4d74edd3322f2ecad3ad037b22434fcf56896f842e33ab6403ccf
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 10677fafe774f9ac7a11e615d3dd85df77b22b4b918ccbf8475a99f5033b455b
      metrics:
        intact:
          rmse: 0.8720222974706681
          baseline_rmse: 0.8856217062634284
          nrmse: 0.9846442237169882
        labels:
          rmse: 0.8719627359023779
          baseline_rmse: 0.8856217062634284
          nrmse: 0.984576969755315
        pairing:
          rmse: 0.8717713469755564
          baseline_rmse: 0.8856217062634284
          nrmse: 0.9843608628944871
        permutation_drift: 0.005300220432817928
        steps: 2
      checks:
        All measurements finite: true
        Raw grouped sum nRMSE below 0.50: false
        Rotated labels raise nRMSE by at least 0.20: false
        Swapped weights raise nRMSE by at least 0.20: false
        Permutation drift below 0.10 target SD: true
      outcome: not_met
      duration_seconds: 1.434
    - started_at: '2026-09-15T02:20:08.067014+00:00'
      mode: full
      seed: 3605
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 27937931b9c7d89f9cced00722a005874718f90849eb68704f32bb43c221fa0d
        script_sha256: 7c8a462450b4d74edd3322f2ecad3ad037b22434fcf56896f842e33ab6403ccf
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 10677fafe774f9ac7a11e615d3dd85df77b22b4b918ccbf8475a99f5033b455b
      metrics:
        intact:
          rmse: 0.043258763522469844
          baseline_rmse: 0.8856217062634284
          nrmse: 0.04884564506101041
        labels:
          rmse: 1.2619153938747705
          baseline_rmse: 0.8856217062634284
          nrmse: 1.424892123747714
        pairing:
          rmse: 0.5351155153189048
          baseline_rmse: 0.8856217062634284
          nrmse: 0.6042258354039648
        permutation_drift: 0.02378622793395685
        steps: 1100
      checks:
        All measurements finite: true
        Raw grouped sum nRMSE below 0.50: true
        Rotated labels raise nRMSE by at least 0.20: true
        Swapped weights raise nRMSE by at least 0.20: true
        Permutation drift below 0.10 target SD: true
      outcome: met
      duration_seconds: 34.949
  P011:
    script: proofs/aggregation/selected_group_supplied_contribution_sum.py
    page: docs/proofs/aggregation/selected-group-supplied-contribution-sum.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/aggregation/grouped_weighted_aggregation/test_selected_group_supplied_contribution_sum.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/aggregation/grouped_weighted_aggregation/support.py
      summary: |-
        The checked-in report says every behavioral gate passes at this fixed seed.
        The result remains provisional until the controls are repeated across seeds.
      insights: |-
        **The model can select and sum a requested group’s supplied contributions.** Each bag is reused with different requests, and rotating item group labels breaks accuracy against the original answer. That makes the association between groups and contributions relevant, rather than allowing one answer for the whole bag.

        The products are already present, so this case tests selection and reduction without establishing learned multiplication. Compare it with the raw-pair proof when diagnosing a difficult schema. The two routes expose different numbers of input fields, so their scores are not a matched comparison of model capacity. Missing groups and new category labels also remain outside this case.
      evidence: |-
        The proof uses deterministic CPU training at seed 3600 for 800 updates.
        The split uses 384 training, 96 validation, and 192 test bags, each expanded into three requests.

        The source reports gate clearance but does not record measured scores. nRMSE divides test RMSE by the training-mean baseline error; lower is better.

        | Check | Required gate | Recorded evidence |
        | --- | --- | --- |
        | Held-out answer nRMSE | < 0.50 | Gate reported passing |
        | Group-label corruption nRMSE increase | ≥ 0.20 | Gate reported passing |
        | Complete-item permutation drift | < 0.10 target SD | Gate reported passing |
    runs:
    - started_at: '2026-09-15T02:14:36.319678+00:00'
      mode: smoke
      seed: 3600
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: b8adda32c5f5c52e2ac75517b67ba47e34f325d46ad60ae14baef2822def6f30
        script_sha256: ae820fdf66aa1d6daf4738a363a65cd6b8430edab73b834eac71cd943fe76643
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: b761289e7e48ae19e8a183638ff5da2d292099945133c2c25bd57d1b4c9e9e4c
      metrics:
        intact:
          rmse: 0.9259963059149292
          baseline_rmse: 0.9164778582723881
          nrmse: 1.0103859002774862
        corrupted:
          rmse: 0.9261492348204072
          baseline_rmse: 0.9164778582723881
          nrmse: 1.010552766180571
        permutation_drift: 0.001964887514259805
        steps: 2
      checks:
        All measurements finite: true
        Intact calibration nRMSE below 1.60: true
        Corrupt calibration nRMSE below 1.80: true
        Grouped contribution nRMSE below 0.50: false
        Rotated labels raise nRMSE by at least 0.20: false
        Permutation drift below 0.10 target SD: true
      outcome: not_met
      duration_seconds: 0.986
    - started_at: '2026-09-15T02:20:46.436531+00:00'
      mode: full
      seed: 3600
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: b8adda32c5f5c52e2ac75517b67ba47e34f325d46ad60ae14baef2822def6f30
        script_sha256: ae820fdf66aa1d6daf4738a363a65cd6b8430edab73b834eac71cd943fe76643
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: b761289e7e48ae19e8a183638ff5da2d292099945133c2c25bd57d1b4c9e9e4c
      metrics:
        intact:
          rmse: 0.06792581690778365
          baseline_rmse: 0.9164778582723881
          nrmse: 0.07411615708406487
        corrupted:
          rmse: 1.277367547523599
          baseline_rmse: 0.9164778582723881
          nrmse: 1.393778950570075
        permutation_drift: 0.030823682800309726
        steps: 800
      checks:
        All measurements finite: true
        Intact calibration nRMSE below 1.60: true
        Corrupt calibration nRMSE below 1.80: true
        Grouped contribution nRMSE below 0.50: true
        Rotated labels raise nRMSE by at least 0.20: true
        Permutation drift below 0.10 target SD: true
      outcome: met
      duration_seconds: 23.792
  P012:
    script: proofs/aggregation/requested_rank_values.py
    page: docs/proofs/aggregation/requested-rank-values.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/aggregation/order_statistics/test_requested_rank_values.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/aggregation/order_statistics/support.py
      summary: |-
        The checked-in report says every behavioral gate passes at this fixed seed.
        The result remains provisional until the controls are repeated across seeds.
      insights: |-
        **The model can use a request to pick the minimum, maximum, median, or a quartile from an unsorted collection.** Each bag appears with every request, so a bag-only answer cannot solve the task. Hiding rank collapses those predictions, while cycling rank labels destroys accuracy against the original targets.

        Preserving encoded item coordinates leaves evidence available for request-conditioned decoding; it does not itself perform sorting. Separate gates for every rank and data shape prevent good minimum or maximum predictions from hiding failed quartiles. The tested quantiles select observed values from an odd-length bag. Even lengths, interpolation conventions, empty collections, and much larger bags are additional questions.
      evidence: |-
        The proof uses deterministic CPU training at seed 3700 for 800 updates.
        The split contains 1,024 training, 192 validation, and 384 test bags, each expanded into five requests. nRMSE baselines are matched to each reported rank or data-shape cell.

        The values below are recorded in the source report, not a new run. Lower nRMSE is better; 1.0 matches the corresponding constant-mean baseline.

        | Check | Required gate | Recorded evidence |
        | --- | --- | --- |
        | Minimum / maximum nRMSE | < 0.30 each | 0.0423 / 0.0550 |
        | Q25 / median / Q75 nRMSE | < 0.35 each | 0.0975 / 0.0882 / 0.1243 |
        | Symmetric / left-skewed / right-skewed nRMSE | < 0.45 each | 0.0580 / 0.0549 / 0.0522 |
        | Duplicate-bearing nRMSE | < 0.45 | 0.0820 |
        | Complete-item permutation drift | < 0.10 target SD | 0.0367 target SD |
        | Cycled-rank nRMSE | ≥ 0.80 and increase ≥ 0.35 | 1.4380 (intact overall: 0.0823) |
        | Hidden-rank within-bag spread | ≤ 0.000001 | 0.0000002384 |
        | Hidden-rank degradation | Both endpoints and ≥ 3 ranks at nRMSE ≥ 0.65 | Gate reported passing |
    runs:
    - started_at: '2026-09-15T02:14:40.625295+00:00'
      mode: smoke
      seed: 3700
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 39f67bb6c9feee68195d0831b099e7d1c7baa9126415cbc747ca26177e703b2b
        script_sha256: edf7585291d13f57fef4a81aa9a1a541b958e220c979df889d23d9e9ee45bdf4
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 8731b8d90639964fe900d976f62a7a9898f57242f861056429469d709e0cd718
      metrics:
        intact:
          rmse: 1.72987399014268
          baseline_rmse: 0.9290372023301314
          nrmse: 1.8620072326532873
        by_rank:
          maximum:
            rmse: 1.2088060619832266
            baseline_rmse: 0.9466038978237984
            nrmse: 1.2769924830884594
          median:
            rmse: 1.4201135867295638
            baseline_rmse: 0.8438626855475819
            nrmse: 1.682872831150311
          minimum:
            rmse: 2.517855671484593
            baseline_rmse: 1.0886907856680468
            nrmse: 2.312737192810516
          q25:
            rmse: 1.9098741998891142
            baseline_rmse: 0.8870723799603668
            nrmse: 2.1530083035326215
          q75:
            rmse: 1.2235884816106544
            baseline_rmse: 0.8574627753116424
            nrmse: 1.4269872895251279
        by_shape:
          duplicates:
            rmse: 1.7452287371682402
            baseline_rmse: 1.2044208081983223
            nrmse: 1.4490190847656523
          left_skewed:
            rmse: 1.8125247855763011
            baseline_rmse: 1.2724328485237015
            nrmse: 1.4244561413824106
          right_skewed:
            rmse: 1.6108291608029603
            baseline_rmse: 1.1207206271078058
            nrmse: 1.4373155288128816
          symmetric:
            rmse: 1.7447108810428138
            baseline_rmse: 1.2584867784356901
            nrmse: 1.3863561468730758
        cycled:
          rmse: 1.8391260087321306
          baseline_rmse: 0.9290372023301314
          nrmse: 1.9796042657058215
        hidden:
          maximum:
            rmse: 0.8487453493215398
            baseline_rmse: 0.9466038978237984
            nrmse: 0.8966214393082141
          median:
            rmse: 1.6411632223135708
            baseline_rmse: 0.8438626855475819
            nrmse: 1.9448226001942734
          minimum:
            rmse: 2.868993195177375
            baseline_rmse: 1.0886907856680468
            nrmse: 2.6352691075794232
          q25:
            rmse: 2.0961026769485365
            baseline_rmse: 0.8870723799603668
            nrmse: 2.362944359785148
          q75:
            rmse: 1.2235404929666727
            baseline_rmse: 0.8574627753116424
            nrmse: 1.426931323662395
        permutation_drift: 0.0012358029816055868
        hidden_family_spread: 0.0
        target_scale: 1.2148096616638178
        steps: 2
      checks:
        Expected number of rank requests: true
        All ranks represented: true
        All bag shapes represented: true
        Training bags separate from validation and test: true
        Validation bags separate from test: true
        All measurements finite: true
        Target SD above 0.80: true
        Per-rank baseline RMSE above 0.60: true
        Per-shape baseline RMSE above 0.80: true
        Hidden requests yield identical predictions: true
        Endpoint, interior-rank, shape, and causal-control gates: false
      outcome: not_met
      duration_seconds: 1.905
    - started_at: '2026-09-15T02:21:13.612512+00:00'
      mode: full
      seed: 3700
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 39f67bb6c9feee68195d0831b099e7d1c7baa9126415cbc747ca26177e703b2b
        script_sha256: edf7585291d13f57fef4a81aa9a1a541b958e220c979df889d23d9e9ee45bdf4
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 8731b8d90639964fe900d976f62a7a9898f57242f861056429469d709e0cd718
      metrics:
        intact:
          rmse: 0.06546551629972189
          baseline_rmse: 0.9290372023301314
          nrmse: 0.07046597933379513
        by_rank:
          maximum:
            rmse: 0.03148641920531384
            baseline_rmse: 0.9466038978237984
            nrmse: 0.03326250745184946
          median:
            rmse: 0.0777021138527348
            baseline_rmse: 0.8438626855475819
            nrmse: 0.09207909673398339
          minimum:
            rmse: 0.048558041332576324
            baseline_rmse: 1.0886907856680468
            nrmse: 0.0446022341438115
          q25:
            rmse: 0.0775761143980616
            baseline_rmse: 0.8870723799603668
            nrmse: 0.08745184288290837
          q75:
            rmse: 0.07761262221592768
            baseline_rmse: 0.8574627753116424
            nrmse: 0.09051427589695611
        by_shape:
          duplicates:
            rmse: 0.07047749576287497
            baseline_rmse: 1.2044208081983223
            nrmse: 0.05851567432507361
          left_skewed:
            rmse: 0.06460019800743773
            baseline_rmse: 1.2724328485237015
            nrmse: 0.05076904300481396
          right_skewed:
            rmse: 0.05263029709184923
            baseline_rmse: 1.1207206271078058
            nrmse: 0.04696112110265152
          symmetric:
            rmse: 0.07233757069444668
            baseline_rmse: 1.2584867784356901
            nrmse: 0.05747980188108365
        cycled:
          rmse: 1.3455171411280074
          baseline_rmse: 0.9290372023301314
          nrmse: 1.4482919927784341
        hidden:
          maximum:
            rmse: 1.8848899419521308
            baseline_rmse: 0.9466038978237984
            nrmse: 1.9912129522025122
          median:
            rmse: 0.7047759204544627
            baseline_rmse: 0.8438626855475819
            nrmse: 0.8351784390100554
          minimum:
            rmse: 0.8839106462852007
            baseline_rmse: 1.0886907856680468
            nrmse: 0.8119023858026059
          q25:
            rmse: 0.21711282571787752
            baseline_rmse: 0.8870723799603668
            nrmse: 0.2447520975994967
          q75:
            rmse: 1.2040925365318929
            baseline_rmse: 0.8574627753116424
            nrmse: 1.4042505064948958
        permutation_drift: 0.029800371800515996
        hidden_family_spread: 0.0
        target_scale: 1.2148096616638178
        steps: 800
      checks:
        Expected number of rank requests: true
        All ranks represented: true
        All bag shapes represented: true
        Training bags separate from validation and test: true
        Validation bags separate from test: true
        All measurements finite: true
        Target SD above 0.80: true
        Per-rank baseline RMSE above 0.60: true
        Per-shape baseline RMSE above 0.80: true
        Hidden requests yield identical predictions: true
        Endpoint, interior-rank, shape, and causal-control gates: true
      outcome: met
      duration_seconds: 21.578
  P013:
    script: proofs/aggregation/mean_erases_contribution_count.py
    page: docs/proofs/aggregation/mean-erases-contribution-count.py
    historical:
      status: Expected limitation
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/aggregation/weighted_aggregation/test_mean_erases_contribution_count.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/aggregation/weighted_aggregation/support.py
      summary: |-
        The checked-in report confirms the intended count-erasure boundary. Passing
        this proof does not mean its sum predictions are correct.
      insights: |-
        **This Mean configuration discards the count required to recover a sum.** With item attention disabled, averaging identical encoded contributions produces the same summary for one copy or many. A larger decoder cannot recover a distinction that no longer reaches it.

        The model still learns the contribution average, showing that useful content survives. Its matching sum predictions are the intended limitation, even though the correct totals differ. To predict variable-length totals, preserve multiplicity through a suitable reduction or supply an explicit count. Mean remains useful when repeating the whole collection should leave the desired answer unchanged.
      evidence: |-
        The proof uses deterministic CPU training at seed 3309 for 300 updates.
        The split contains 1,024 training, 256 validation, and 512 test records.

        The source reports gate clearance but does not record measured scores. nRMSE divides test RMSE by the training-mean baseline error; lower is better.

        | Check | Required gate | Recorded evidence |
        | --- | --- | --- |
        | Contribution-average nRMSE | < 0.25 | Gate reported passing |
        | One-versus-six sum prediction difference | ≤ 0.000001 | Gate reported passing |
    runs:
    - started_at: '2026-09-15T02:14:45.888837+00:00'
      mode: smoke
      seed: 3309
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 7e5aab558b63eaef5c34cffc99b3a41b4be03057be065a22a5f68d770c0e209f
        script_sha256: eeea4bcdd55825b7b630e130d623ab78c41e7e4142776d8c8d1de2765c795461
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: be07c95b2046830c894f00b369878efe9bdd1a96d793eb8990d3fec5d52033b9
      metrics:
        mean_score:
          rmse: 0.43001463612786694
          baseline_rmse: 0.711858212210264
          nrmse: 0.6040734359061549
        paired_sum:
        - 0.47120678424835205
        - 0.47120681405067444
        steps: 2
      checks:
        Mean contribution nRMSE below 0.25: false
        Mean reduction erases contribution count: true
      outcome: not_met
      duration_seconds: 0.635
    - started_at: '2026-09-15T02:21:38.565842+00:00'
      mode: full
      seed: 3309
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 7e5aab558b63eaef5c34cffc99b3a41b4be03057be065a22a5f68d770c0e209f
        script_sha256: eeea4bcdd55825b7b630e130d623ab78c41e7e4142776d8c8d1de2765c795461
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: be07c95b2046830c894f00b369878efe9bdd1a96d793eb8990d3fec5d52033b9
      metrics:
        mean_score:
          rmse: 0.018810305821033203
          baseline_rmse: 0.711858212210264
          nrmse: 0.02642423097519473
        paired_sum:
        - 2.6523079872131348
        - 2.652308464050293
        steps: 300
      checks:
        Mean contribution nRMSE below 0.25: true
        Mean reduction erases contribution count: true
      outcome: met
      duration_seconds: 7.326
  P014:
    script: proofs/aggregation/raw_value_weight_sum.py
    page: docs/proofs/aggregation/raw-value-weight-sum.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/aggregation/weighted_aggregation/test_raw_value_weight_sum.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/aggregation/weighted_aggregation/support.py
      summary: |-
        The checked-in report says every behavioral gate passes at this fixed seed.
        The result remains provisional until the controls are repeated across seeds.
      insights: |-
        **The model uses the weight attached to each value, rather than only the collection’s separate values and weights.** Swapping weights between items preserves both sets of numbers but worsens predictions against the original labels. Reordering complete items leaves predictions approximately stable, while scaling all weights changes the answer proportionally.

        Keeping related fields on the same item gives the model a route to learn their interaction before aggregation. The supplied-product control helps isolate that interaction when diagnosing a failure. This proof supports the raw paired schema for its fixed collection length; it does not establish variable-length totals, negative-weight behavior, or exact multiplication.
      evidence: |-
        The proof uses deterministic CPU training at seed 3304 for 900 updates.
        The split contains 1,024 training, 256 validation, and 512 test records.

        The source reports gate clearance but does not record measured scores. nRMSE divides test RMSE by the training-mean baseline error; lower is better.

        | Check | Required gate | Recorded evidence |
        | --- | --- | --- |
        | Held-out nRMSE | < 0.30 | Gate reported passing |
        | Weight-permutation nRMSE increase | ≥ 0.35 | Gate reported passing |
        | Scaled-weight nRMSE | < 0.35 | Gate reported passing |
        | Complete-item permutation drift | < 0.08 target SD | Gate reported passing |
        | Weight-scaling error | < 0.15 scaled-target SD | Gate reported passing |
    runs:
    - started_at: '2026-09-15T02:14:49.869994+00:00'
      mode: smoke
      seed: 3304
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 663ebdfbebc94e9be8bc9a1ae859d351aa37aa7fab3e21279afbeca2e745122c
        script_sha256: 22ad4b6ad0f2c2e18e5d2f4ebfb49e7849f22e5bbf04828fb94e3a05edb5a2aa
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 4c7d7d064a251e97905d4c30e5d117c0110b815f702a9233e77d701f7280c815
      metrics:
        intact:
          rmse: 1.102865133530183
          baseline_rmse: 1.2971704626253104
          nrmse: 0.8502083305983719
        corrupted:
          rmse: 1.1030686681928599
          baseline_rmse: 1.2971704626253104
          nrmse: 0.8503652372413624
        scaled:
          rmse: 0.7985595666588989
          baseline_rmse: 0.9728778469689828
          nrmse: 0.8208220272944076
        permutation_drift: 0.028831436786201575
        scaling_error: 0.12094008745694862
        steps: 2
      checks:
        Weighted sum nRMSE below 0.30: false
        Shuffled weights raise nRMSE by at least 0.35: false
        Scaled-weight nRMSE below 0.35: false
        Permutation drift below 0.08 target SD: true
        Weight scaling error below 0.15 target SD: true
      outcome: not_met
      duration_seconds: 0.849
    - started_at: '2026-09-15T02:21:49.304365+00:00'
      mode: full
      seed: 3304
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 663ebdfbebc94e9be8bc9a1ae859d351aa37aa7fab3e21279afbeca2e745122c
        script_sha256: 22ad4b6ad0f2c2e18e5d2f4ebfb49e7849f22e5bbf04828fb94e3a05edb5a2aa
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 4c7d7d064a251e97905d4c30e5d117c0110b815f702a9233e77d701f7280c815
      metrics:
        intact:
          rmse: 0.02914664462386432
          baseline_rmse: 1.2971704626253104
          nrmse: 0.022469402028223156
        corrupted:
          rmse: 0.7510852935035259
          baseline_rmse: 1.2971704626253104
          nrmse: 0.5790181900869246
        scaled:
          rmse: 0.03725923202770983
          baseline_rmse: 0.9728778469689828
          nrmse: 0.03829795502466377
        permutation_drift: 0.01038750135440631
        scaling_error: 0.032901590615004826
        steps: 900
      checks:
        Weighted sum nRMSE below 0.30: true
        Shuffled weights raise nRMSE by at least 0.35: true
        Scaled-weight nRMSE below 0.35: true
        Permutation drift below 0.08 target SD: true
        Weight scaling error below 0.15 target SD: true
      outcome: met
      duration_seconds: 26.607
  P015:
    script: proofs/aggregation/supplied_contribution_sum.py
    page: docs/proofs/aggregation/supplied-contribution-sum.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/aggregation/weighted_aggregation/test_supplied_contribution_sum.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/aggregation/weighted_aggregation/support.py
      summary: |-
        The checked-in report says every behavioral gate passes at this fixed seed.
        The result remains provisional until the controls are repeated across seeds.
      insights: |-
        **The model can sum contributions when their products have already been calculated.** This removes value–weight binding and multiplication from the task, leaving numerical encoding, reduction, and decoding. It is useful evidence that the simpler aggregation route works.

        A failure on raw pairs alongside success here would point toward the missing interaction, rather than summation alone. However, every collection has the same length, so learning an average and a fixed scaling factor could also solve this task. The proof has an accuracy gate but no separate duplication or permutation gate. Its success should not be described as general arithmetic over arbitrary collection lengths.
      evidence: |-
        The proof uses deterministic CPU training at seed 3300 for 500 updates.
        The split contains 768 training, 192 validation, and 384 test records.

        The source reports gate clearance but does not record measured scores. nRMSE divides test RMSE by the training-mean baseline error; lower is better.

        | Check | Required gate | Recorded evidence |
        | --- | --- | --- |
        | Held-out sum nRMSE | < 0.25 | Gate reported passing |
    runs:
    - started_at: '2026-09-15T02:14:54.062805+00:00'
      mode: smoke
      seed: 3300
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: aa9e4c1923a4dccf37b5737ea295f9c6ec0b22c4bc6c3c11921c7e1ad6e4cd5b
        script_sha256: 053b5681918b4d8dc4270d297ddd7803f8806a916f8c4340556cc7610ee1b727
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 7bf47e7f1f7173602f6d5d132f4aee9d0955fbf9e42640b5065a15de127c636e
      metrics:
        measured:
          rmse: 1.0598801036619754
          baseline_rmse: 1.2867287797077822
          nrmse: 0.8237012495381315
        steps: 2
      checks:
        Contribution sum nRMSE below 0.25: false
      outcome: not_met
      duration_seconds: 0.678
    - started_at: '2026-09-15T02:22:19.301684+00:00'
      mode: full
      seed: 3300
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: aa9e4c1923a4dccf37b5737ea295f9c6ec0b22c4bc6c3c11921c7e1ad6e4cd5b
        script_sha256: 053b5681918b4d8dc4270d297ddd7803f8806a916f8c4340556cc7610ee1b727
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 7bf47e7f1f7173602f6d5d132f4aee9d0955fbf9e42640b5065a15de127c636e
      metrics:
        measured:
          rmse: 0.018869576500494013
          baseline_rmse: 1.2867287797077822
          nrmse: 0.014664766031563636
        steps: 500
      checks:
        Contribution sum nRMSE below 0.25: true
      outcome: met
      duration_seconds: 13.0
  P016:
    script: proofs/aggregation/variable_cardinality_weighted_mean.py
    page: docs/proofs/aggregation/variable-cardinality-weighted-mean.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/aggregation/weighted_aggregation/test_variable_cardinality_weighted_mean.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/aggregation/weighted_aggregation/support.py
      summary: |-
        The checked-in report says every behavioral gate passes at this fixed seed.
        The result remains provisional until the controls are repeated across seeds.
      insights: |-
        **The model responds to relative weights while keeping the same answer when all weights are scaled together.** The model is reported to preserve its answer when complete items are reordered or duplicated, and when all weights are scaled equally. Swapping weights between values instead removes accuracy against the original labels.

        Those controls distinguish useful invariance from simply ignoring the weights. Keep each weight beside its value, and choose the target’s algebra deliberately: duplicating items preserves a weighted mean but doubles a weighted sum. This proof covers positive weights and lengths within the trained range; a zero denominator, signed weights, or substantially longer bags needs separate treatment.
      evidence: |-
        The proof uses deterministic CPU training at seed 3313 for 1,100 updates.
        The split contains 1,536 training, 384 validation, and 768 test records.

        The source reports gate clearance but does not record measured scores. nRMSE divides test RMSE by the training-mean baseline error; lower is better.

        | Check | Required gate | Recorded evidence |
        | --- | --- | --- |
        | Held-out weighted-mean nRMSE | < 0.40 | Gate reported passing |
        | Weight-permutation nRMSE increase | ≥ 0.25 | Gate reported passing |
        | Complete-item permutation drift | < 0.10 target SD | Gate reported passing |
        | Weight-scaling drift | < 0.10 target SD | Gate reported passing |
        | Complete-item duplication drift | < 0.10 target SD | Gate reported passing |
    runs:
    - started_at: '2026-09-15T02:14:58.090165+00:00'
      mode: smoke
      seed: 3313
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 34adfb1bbd259cfa3cffaef8d4b502ab0fa44ab136c8895e33999b05c4508b5c
        script_sha256: fa07c983ac756a34f954f103000c70969015f2119d2eb3b5f3fd7dda5231a3a5
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 7ac2b0bda39432a83e0715cbc65ab5026aa8ac0724f315dd9c338a98902ebebd
      metrics:
        intact:
          rmse: 0.5037878240325339
          baseline_rmse: 0.39181947854115323
          nrmse: 1.2857651332401037
        corrupted:
          rmse: 0.5022027721421557
          baseline_rmse: 0.39181947854115323
          nrmse: 1.2817197705739094
        permutation_drift: 0.06346261181616443
        scaling_drift: 0.08875849487822701
        duplication_drift: 0.09085059851980674
        steps: 2
      checks:
        Weighted mean nRMSE below 0.40: false
        Shuffled weights raise nRMSE by at least 0.25: false
        Permutation drift below 0.10 target SD: true
        Weight scaling drift below 0.10 target SD: true
        Duplication drift below 0.10 target SD: true
      outcome: not_met
      duration_seconds: 0.941
    - started_at: '2026-09-15T02:22:35.682947+00:00'
      mode: full
      seed: 3313
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 34adfb1bbd259cfa3cffaef8d4b502ab0fa44ab136c8895e33999b05c4508b5c
        script_sha256: fa07c983ac756a34f954f103000c70969015f2119d2eb3b5f3fd7dda5231a3a5
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 7ac2b0bda39432a83e0715cbc65ab5026aa8ac0724f315dd9c338a98902ebebd
      metrics:
        intact:
          rmse: 0.01875336608718387
          baseline_rmse: 0.39181947854115323
          nrmse: 0.04786226084779546
        corrupted:
          rmse: 0.38477710023252537
          baseline_rmse: 0.39181947854115323
          nrmse: 0.9820264721528177
        permutation_drift: 0.01338920024463998
        scaling_drift: 0.029665908104889224
        duplication_drift: 0.02135327380034293
        steps: 1100
      checks:
        Weighted mean nRMSE below 0.40: true
        Shuffled weights raise nRMSE by at least 0.25: true
        Permutation drift below 0.10 target SD: true
        Weight scaling drift below 0.10 target SD: true
        Duplication drift below 0.10 target SD: true
      outcome: met
      duration_seconds: 38.561
  P017:
    script: proofs/calibration/signal_vs_noise.py
    page: docs/proofs/calibration/signal-vs-noise.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/calibration/signal_detection/test_signal_vs_noise.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/calibration/signal_detection/support.py
      summary: |-
        The source records one paired seed clearing every gate. Exact AUC values are
        not recorded. The thresholds below are acceptance criteria, not measurements.
      insights: |-
        **A meaningful learning check should recognize a real signal and remain at chance when that signal is absent.** The two models have the same schema and training budget; only the relationship between the visible Boolean and the target changes.

        The recorded run clears both the positive AUC gate and the independent-noise chance band. Separate train, validation, and test streams help distinguish learned relationships from memorized observations. Exact scores are not recorded.

        Use this as a basic check before interpreting harder proof failures. Copying a Boolean does not establish aggregation or relational reasoning, and the one-seed result does not measure training efficiency.
      evidence: |-
        | Evaluation | Required gate | Recorded result |
        | --- | --- | --- |
        | Signal AUC | At least 0.98 | Gate reported passing |
        | Independent-noise AUC | 0.42–0.58 | Gate reported passing |
        | Signal minus noise AUC | At least 0.40 | Gate reported passing |

        This calibrates the learning and evaluation harness. It does not establish
        that a more complicated architecture can recover every relationship.
    runs:
    - started_at: '2026-09-15T02:15:02.357151+00:00'
      mode: smoke
      seed: 7
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 0afefb0737862e2bf07d3de59454b2b86b762ca70c0dfad3a5b6913493288603
        script_sha256: 1574fd9a843a615e2237292905ea63bf92efcb5812dbc5382d24c21bb55eb6f5
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 5ae87a38313d48d31f82d6a7244d53a5931db208ccd010b6ac0979f03e2f3bdd
      metrics:
        signal_auc: 0.9069156646728516
        noise_auc: 0.49146175384521484
        auc_gap: 0.4154539108276367
      checks:
        Signal AUC is at least 0.98: false
        Independent noise AUC remains between 0.42 and 0.58: true
        Signal exceeds noise by at least 0.40 AUC: true
      outcome: not_met
      duration_seconds: 1.264
    - started_at: '2026-09-15T02:23:17.604572+00:00'
      mode: full
      seed: 7
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 388d96f0024c691fa3c4ea225efa769f77981b7577578bf8077f8e1ca00decb5
        script_sha256: 1574fd9a843a615e2237292905ea63bf92efcb5812dbc5382d24c21bb55eb6f5
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-proof-scripts.RB4VJH/src/relflow
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 5ae87a38313d48d31f82d6a7244d53a5931db208ccd010b6ac0979f03e2f3bdd
      metrics:
        signal_auc: 1.0
        noise_auc: 0.4753994941711426
        auc_gap: 0.5246005058288574
      checks:
        Signal AUC is at least 0.98: true
        Independent noise AUC remains between 0.42 and 0.58: true
        Signal exceeds noise by at least 0.40 AUC: true
      outcome: met
      duration_seconds: 6.596
  P018:
    script: proofs/cluster/hidden_regression_regimes.py
    page: docs/proofs/cluster/hidden-regression-regimes.py
    historical:
      status: Partial evidence
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/cluster/cluster_convergence/test_hidden_regression_regimes.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/cluster/cluster_convergence/support.py
      summary: |-
        The source records one run meeting the count and usage gates. The experiment
        does not yet measure held-out regression quality or whether identities were
        assigned to their correct generating groups.
      insights: |-
        **Settling near five clusters does not yet show that the model discovered the five generating functions.** Repeated identities follow stable regimes while their numeric inputs vary; reconstruction engages adaptive Cluster state alongside the supervised numeric task.

        The recorded gates inspect terminal count and usage. Count is calculated from usage perplexity, so those diagnostics are coupled. Neither tells us whether identities share the correct regime or whether predictions work on independent observations.

        The current train and validation tables are identical. Evaluate held-out regression and assignment agreement before treating this as regime discovery. The existing result supports adaptive-state behavior, with the harder behavioral claim still open.
      evidence: |-
        | Diagnostic | Required gate | Recorded result |
        | --- | --- | --- |
        | Committed count in each final epoch | 4–7 for true count 5 | Gate reported passing |
        | Usage perplexity in each final epoch | 3.5–6.5 | Gate reported passing |
        | Terminal committed count | Neither lower bound 3 nor upper bound 15 | Gate reported passing |

        The evidence concerns adaptive state. Settling on approximately five groups
        does not establish that the model discovered the five functions correctly.
    runs:
    - started_at: '2026-09-15T02:15:06.979855+00:00'
      mode: smoke
      seed: 0
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: a855289777003bf0ec18ebf59ad0bc9a6180205fca745c1a42baa8cbd5ff521b
        script_sha256: 748439ffc5099809de9b0ce4b32dc2d46115de2a8ef143ffed3488546694fd93
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 51ce395948cba002dc428923ce333f93b6b4cb198ce5be247c92ccf5041773c9
      metrics:
        trajectory:
        - epoch: 0
          n_committed: 3
          perplexity: 3.258863687515259
          adherence: 0.012305669486522675
        final_committed:
        - 3
        final_perplexity:
        - 3.258863687515259
      checks:
        Final committed counts remain between 4 and 7: false
        Final perplexity remains within 1.5 of five: false
        Terminal commitment is above the lower bound: false
        Terminal commitment is below the upper bound: true
      outcome: not_met
      duration_seconds: 0.645
    - started_at: '2026-09-15T02:23:27.629749+00:00'
      mode: full
      seed: 0
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 4035bdca26e7f43662ce98fbb02dc392c9435b4288004b86dd61d42aa111ed8a
        script_sha256: 748439ffc5099809de9b0ce4b32dc2d46115de2a8ef143ffed3488546694fd93
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-proof-scripts.RB4VJH/src/relflow
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 51ce395948cba002dc428923ce333f93b6b4cb198ce5be247c92ccf5041773c9
      metrics:
        trajectory:
        - epoch: 0
          n_committed: 4
          perplexity: 4.372092247009277
          adherence: 0.05254526063799858
        - epoch: 1
          n_committed: 8
          perplexity: 8.402069091796875
          adherence: 0.0076850783079862595
        - epoch: 2
          n_committed: 7
          perplexity: 7.199680805206299
          adherence: 0.012563434429466724
        - epoch: 3
          n_committed: 6
          perplexity: 6.230902671813965
          adherence: 0.015585856512188911
        - epoch: 4
          n_committed: 6
          perplexity: 6.341165065765381
          adherence: 0.014966081827878952
        - epoch: 5
          n_committed: 6
          perplexity: 6.3358659744262695
          adherence: 0.01352382730692625
        - epoch: 6
          n_committed: 6
          perplexity: 6.37974214553833
          adherence: 0.01200682483613491
        - epoch: 7
          n_committed: 6
          perplexity: 6.326610565185547
          adherence: 0.01046148780733347
        - epoch: 8
          n_committed: 6
          perplexity: 6.308366775512695
          adherence: 0.00900269579142332
        - epoch: 9
          n_committed: 6
          perplexity: 6.272604465484619
          adherence: 0.007946990430355072
        - epoch: 10
          n_committed: 6
          perplexity: 6.247581481933594
          adherence: 0.0070823985151946545
        - epoch: 11
          n_committed: 6
          perplexity: 6.185416221618652
          adherence: 0.006402456201612949
        - epoch: 12
          n_committed: 6
          perplexity: 6.179567813873291
          adherence: 0.005967267323285341
        - epoch: 13
          n_committed: 6
          perplexity: 6.129400730133057
          adherence: 0.005367706995457411
        - epoch: 14
          n_committed: 6
          perplexity: 6.055844306945801
          adherence: 0.004808566067367792
        - epoch: 15
          n_committed: 6
          perplexity: 5.836822986602783
          adherence: 0.004326104186475277
        - epoch: 16
          n_committed: 6
          perplexity: 5.672842502593994
          adherence: 0.0036972553934901953
        - epoch: 17
          n_committed: 6
          perplexity: 5.597299575805664
          adherence: 0.0031334117520600557
        - epoch: 18
          n_committed: 6
          perplexity: 5.673702716827393
          adherence: 0.0026480776723474264
        - epoch: 19
          n_committed: 6
          perplexity: 5.611253261566162
          adherence: 0.002550099976360798
        - epoch: 20
          n_committed: 6
          perplexity: 5.72269344329834
          adherence: 0.0024596890434622765
        - epoch: 21
          n_committed: 6
          perplexity: 5.699801445007324
          adherence: 0.0021622052881866693
        - epoch: 22
          n_committed: 6
          perplexity: 5.627553939819336
          adherence: 0.0018641826463863254
        - epoch: 23
          n_committed: 6
          perplexity: 5.53046178817749
          adherence: 0.0016020906623452902
        - epoch: 24
          n_committed: 5
          perplexity: 5.434558868408203
          adherence: 0.0013695001835003495
        - epoch: 25
          n_committed: 5
          perplexity: 5.346553325653076
          adherence: 0.001190957147628069
        - epoch: 26
          n_committed: 5
          perplexity: 5.26736307144165
          adherence: 0.0010388604132458568
        - epoch: 27
          n_committed: 5
          perplexity: 5.203525543212891
          adherence: 0.0009039812721312046
        - epoch: 28
          n_committed: 5
          perplexity: 5.130213260650635
          adherence: 0.0008230844978243113
        - epoch: 29
          n_committed: 5
          perplexity: 5.073955535888672
          adherence: 0.0010630140313878655
        final_committed:
        - 5
        - 5
        - 5
        - 5
        - 5
        final_perplexity:
        - 5.346553325653076
        - 5.26736307144165
        - 5.203525543212891
        - 5.130213260650635
        - 5.073955535888672
      checks:
        Final committed counts remain between 4 and 7: true
        Final perplexity remains within 1.5 of five: true
        Terminal commitment is above the lower bound: true
        Terminal commitment is below the upper bound: true
      outcome: met
      duration_seconds: 23.844
  P019:
    script: proofs/cluster/plain_input_is_dormant.py
    page: docs/proofs/cluster/plain-input-is-dormant.py
    historical:
      status: Expected limitation
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/cluster/cluster_convergence/test_plain_input_is_dormant.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/cluster/cluster_convergence/support.py
      summary: |-
        The recorded test passes by observing unchanged commitment and zero adherence.
        Those are the expected signs of a dormant mechanism, not evidence that the
        model recovered a five-group partition.
      insights: |-
        **A prediction target beside a Cluster field does not activate that field’s adaptive grouping.** The identities repeat and carry stable labels, but the Cluster field is only an input.

        The expected result is unchanged committed count and zero adherence, which the source reports observing. This does not mean every parameter or the label decoder is frozen: the assertions concern these specific adaptive-state diagnostics. No label-prediction score is established here.

        When adaptive grouping is intended, add a reconstructing mask to the Cluster field before changing capacity or training longer. Then check predictive usefulness and assignment quality separately; merely activating commitment does not establish either.
      evidence: |-
        | Diagnostic | Required gate | Recorded result |
        | --- | --- | --- |
        | Committed count over all epochs | Constant | Reported unchanged |
        | Adherence over all epochs | Exactly 0 | Reported zero |

        The check makes no claim about the label decoder's predictive quality or about
        every model parameter remaining fixed. Its scope is adaptive Cluster state.
    runs:
    - started_at: '2026-09-15T02:15:10.965587+00:00'
      mode: smoke
      seed: 0
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 96f47589ff173377f03085e26c207c147dbdbb906f6a8d285d4b41d41a030da9
        script_sha256: 725a199da0187cc8dbc2ce31fcafbe5303510eb081793c27a2c57aa79b7ab00c
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 854f5153350c97a00943ff12741d68980750a65a947d818771b3e86d080bf2a8
      metrics:
        trajectory:
        - epoch: 0
          n_committed: 3
          perplexity: 3.0
          adherence: 0.0
        committed:
        - 3
        adherence:
        - 0.0
      checks:
        Committed count remains constant: true
        Adherence remains exactly zero: true
      outcome: met
      duration_seconds: 0.585
    - started_at: '2026-09-15T02:23:54.876896+00:00'
      mode: full
      seed: 0
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 49e7b928e110a6f0c7b138740d2cb92f4973b4a27a8bb4ed8a2e38831e9ab2f7
        script_sha256: 725a199da0187cc8dbc2ce31fcafbe5303510eb081793c27a2c57aa79b7ab00c
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-proof-scripts.RB4VJH/src/relflow
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 854f5153350c97a00943ff12741d68980750a65a947d818771b3e86d080bf2a8
      metrics:
        trajectory:
        - epoch: 0
          n_committed: 3
          perplexity: 3.0
          adherence: 0.0
        - epoch: 1
          n_committed: 3
          perplexity: 3.0
          adherence: 0.0
        - epoch: 2
          n_committed: 3
          perplexity: 3.0
          adherence: 0.0
        - epoch: 3
          n_committed: 3
          perplexity: 3.0
          adherence: 0.0
        - epoch: 4
          n_committed: 3
          perplexity: 3.0
          adherence: 0.0
        committed:
        - 3
        - 3
        - 3
        - 3
        - 3
        adherence:
        - 0.0
        - 0.0
        - 0.0
        - 0.0
        - 0.0
      checks:
        Committed count remains constant: true
        Adherence remains exactly zero: true
      outcome: met
      duration_seconds: 2.331
  P020:
    script: proofs/cluster/reconstructing_category_labels.py
    page: docs/proofs/cluster/reconstructing-category-labels.py
    historical:
      status: Partial evidence
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/cluster/cluster_convergence/test_reconstructing_category_labels.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/cluster/cluster_convergence/support.py
      summary: |-
        The recorded single-seed run settles near five clusters. Training and
        validation reuse the same observations, and the test checks neither held-out
        prediction nor recovery of the actual identity partition.
      insights: |-
        **The right number of clusters does not mean the right identities were grouped together.** Repeated identities provide consistent label evidence, and the Cluster reconstruction loss updates usage and commitment.

        The recorded run ends near five groups. However, committed count is derived by rounding and clamping usage perplexity: these are coupled diagnostics, not independent confirmations of recovery. Incorrect groups can satisfy both gates.

        Training and validation reuse observations, with no held-out skill or assignment-agreement requirement. Treat this as evidence about mechanism activation. Demonstrating useful clustering still requires independent predictions, partition recovery, and controls without genuine generating groups.
      evidence: |-
        | Diagnostic | Required gate | Recorded result |
        | --- | --- | --- |
        | Committed count in each final epoch | 4–7 for true count 5 | Gate reported passing |
        | Usage perplexity in each final epoch | 3.5–6.5 | Gate reported passing |
        | Terminal committed count | Neither lower bound 3 nor upper bound 15 | Gate reported passing |

        Usage perplexity summarizes how many clusters carry meaningful assignment
        mass. A plausible count and perplexity do not prove that the right identities
        share a cluster.
    runs:
    - started_at: '2026-09-15T02:15:14.899120+00:00'
      mode: smoke
      seed: 0
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 95f6a46ba99894f901600a04312fc1fd1f3354b5c362210ca1a213db64cdbfbc
        script_sha256: b327e09d1524c7eddc51d0c48472f183727b30cf364bd72ce1fee9822f7161be
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: af5644a349eddf217b9c669653bbef5be2fd4150e115838d2e4027b40a8c668c
      metrics:
        trajectory:
        - epoch: 0
          n_committed: 3
          perplexity: 3.3275811672210693
          adherence: 0.01613517478108406
        final_committed:
        - 3
        final_perplexity:
        - 3.3275811672210693
      checks:
        Final committed counts remain between 4 and 7: false
        Final perplexity remains within 1.5 of five: false
        Terminal commitment is above the lower bound: false
        Terminal commitment is below the upper bound: true
      outcome: not_met
      duration_seconds: 0.657
    - started_at: '2026-09-15T02:24:00.576894+00:00'
      mode: full
      seed: 0
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: ad145610d04bc8af8d40fb104042fd9aa3abb73ef86d4fade1cf1001bc933df5
        script_sha256: b327e09d1524c7eddc51d0c48472f183727b30cf364bd72ce1fee9822f7161be
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-proof-scripts.RB4VJH/src/relflow
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: af5644a349eddf217b9c669653bbef5be2fd4150e115838d2e4027b40a8c668c
      metrics:
        trajectory:
        - epoch: 0
          n_committed: 4
          perplexity: 4.334924221038818
          adherence: 0.05807165056467056
        - epoch: 1
          n_committed: 7
          perplexity: 6.767301559448242
          adherence: 0.008113355375826359
        - epoch: 2
          n_committed: 6
          perplexity: 6.064903259277344
          adherence: 0.01602412946522236
        - epoch: 3
          n_committed: 5
          perplexity: 5.252449035644531
          adherence: 0.020100772380828857
        - epoch: 4
          n_committed: 5
          perplexity: 5.424206256866455
          adherence: 0.019789520651102066
        - epoch: 5
          n_committed: 5
          perplexity: 5.493758678436279
          adherence: 0.018425457179546356
        - epoch: 6
          n_committed: 6
          perplexity: 5.526225566864014
          adherence: 0.016715876758098602
        - epoch: 7
          n_committed: 6
          perplexity: 5.5231709480285645
          adherence: 0.015048263594508171
        - epoch: 8
          n_committed: 6
          perplexity: 5.506030082702637
          adherence: 0.01349477469921112
        - epoch: 9
          n_committed: 6
          perplexity: 6.471004009246826
          adherence: 0.0005394776235334575
        - epoch: 10
          n_committed: 5
          perplexity: 5.432131290435791
          adherence: 0.0026502199470996857
        - epoch: 11
          n_committed: 5
          perplexity: 5.432953357696533
          adherence: 0.003791071241721511
        - epoch: 12
          n_committed: 5
          perplexity: 5.4138641357421875
          adherence: 0.004280708730220795
        - epoch: 13
          n_committed: 5
          perplexity: 5.387415409088135
          adherence: 0.0044521489180624485
        - epoch: 14
          n_committed: 5
          perplexity: 5.35729455947876
          adherence: 0.004438720177859068
        - epoch: 15
          n_committed: 5
          perplexity: 5.324090003967285
          adherence: 0.00431922497227788
        - epoch: 16
          n_committed: 5
          perplexity: 5.293123245239258
          adherence: 0.004147147759795189
        - epoch: 17
          n_committed: 5
          perplexity: 5.265658855438232
          adherence: 0.003949499223381281
        - epoch: 18
          n_committed: 5
          perplexity: 5.241479873657227
          adherence: 0.0037347483448684216
        - epoch: 19
          n_committed: 5
          perplexity: 5.218961715698242
          adherence: 0.0035151427146047354
        - epoch: 20
          n_committed: 5
          perplexity: 5.1984944343566895
          adherence: 0.003297733375802636
        - epoch: 21
          n_committed: 5
          perplexity: 5.180423259735107
          adherence: 0.003088444471359253
        - epoch: 22
          n_committed: 5
          perplexity: 5.1614885330200195
          adherence: 0.002890538889914751
        - epoch: 23
          n_committed: 5
          perplexity: 5.146783828735352
          adherence: 0.002702163066715002
        - epoch: 24
          n_committed: 5
          perplexity: 5.133707046508789
          adherence: 0.0025267833843827248
        - epoch: 25
          n_committed: 5
          perplexity: 5.120759963989258
          adherence: 0.002360387472435832
        - epoch: 26
          n_committed: 5
          perplexity: 5.110231399536133
          adherence: 0.002208678750321269
        - epoch: 27
          n_committed: 5
          perplexity: 5.101234436035156
          adherence: 0.002066380809992552
        - epoch: 28
          n_committed: 5
          perplexity: 5.0931925773620605
          adherence: 0.0019342011073604226
        - epoch: 29
          n_committed: 5
          perplexity: 5.0839056968688965
          adherence: 0.001811657682992518
        final_committed:
        - 5
        - 5
        - 5
        - 5
        - 5
        final_perplexity:
        - 5.120759963989258
        - 5.110231399536133
        - 5.101234436035156
        - 5.0931925773620605
        - 5.0839056968688965
      checks:
        Final committed counts remain between 4 and 7: true
        Final perplexity remains within 1.5 of five: true
        Terminal commitment is above the lower bound: true
        Terminal commitment is below the upper bound: true
      outcome: met
      duration_seconds: 14.894
  P021:
    script: proofs/identity/unseen_identity_equality.py
    page: docs/proofs/identity/unseen-identity-equality.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/identity/hash_equality/test_unseen_identity_equality.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/identity/hash_equality/support.py
      summary: |-
        The source records one seed clearing the Hash equality gate and both negative
        controls. It reports passing thresholds, without exact AUC measurements.
      insights: |-
        **Hash can preserve equality across fields without learning each identifier in advance.** Compatible batch-local representations let matching unseen strings supply a comparison signal to the shared model.

        The recorded Hash model clears the held-out equality gate on a disjoint namespace. Shuffling labels removes that advantage, while matched Category fields cannot reliably distinguish unseen strings after their content becomes unavailable. These are passing thresholds, not recorded exact AUC values.

        Use Hash when observation-local equality matters more than persistent category semantics. This result does not establish invertible identifiers, stable embeddings across separately encoded batches, or general relational joins. Prediction stability under a shared identity renaming remains untested.
      evidence: |-
        | Evaluation | Required gate | Recorded result |
        | --- | --- | --- |
        | Hash on unseen identities | AUC ≥ 0.95 | Gate reported passing |
        | Shuffled test labels | AUC 0.42–0.58 | Gate reported passing |
        | Category on unseen identities | AUC ≤ 0.65 | Gate reported passing |
        | Hash minus shuffled-label AUC | At least 0.35 | Gate reported passing |

        This establishes a provisional route for equality, not an invertible or
        persistent identity representation. Hash collisions remain possible.
    runs:
    - started_at: '2026-09-15T02:15:18.910151+00:00'
      mode: smoke
      seed: 29
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 9e3113cf14a05d6faf0c703bba652d39193e5711836e6f170227bee35b841090
        script_sha256: 3ab7430e2f102ab4f801c636b7c4cde373225f5577851b5f6fd468bf26594b12
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 1feddae272636fdf4e05b9cad1b0b4f610ad7b055f866a29fd4f8dc04736f3ba
      metrics:
        hash_auc: 0.510551929473877
        shuffled_auc: 0.4934225082397461
        category_oov_auc: 0.5
        auc_gap: 0.01712942123413086
      checks:
        Unseen Hash equality AUC is at least 0.95: false
        Shuffled labels remain between 0.42 and 0.58 AUC: true
        Category OOV AUC is at most 0.65: true
        Hash exceeds shuffled labels by at least 0.35 AUC: false
      outcome: not_met
      duration_seconds: 1.711
    - started_at: '2026-09-15T02:24:18.855867+00:00'
      mode: full
      seed: 29
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: f8f9e5eafa2d1516fa31c67b12cdedad7e96f80290c0c5ed32f0b6300cb6c0b0
        script_sha256: 3ab7430e2f102ab4f801c636b7c4cde373225f5577851b5f6fd468bf26594b12
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-proof-scripts.RB4VJH/src/relflow
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 1feddae272636fdf4e05b9cad1b0b4f610ad7b055f866a29fd4f8dc04736f3ba
      metrics:
        hash_auc: 0.9998767375946045
        shuffled_auc: 0.49859464168548584
        category_oov_auc: 0.5
        auc_gap: 0.5012820959091187
      checks:
        Unseen Hash equality AUC is at least 0.95: true
        Shuffled labels remain between 0.42 and 0.58 AUC: true
        Category OOV AUC is at most 0.65: true
        Hash exceeds shuffled labels by at least 0.35 AUC: true
      outcome: met
      duration_seconds: 29.041
  P022:
    script: proofs/relational/attention_number_payload.py
    page: docs/proofs/relational/attention-number-payload.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/relational/argmax_retrieval/test_attention_number_payload.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/relational/argmax_retrieval/__init__.py
      summary: |-
        The checked-in report records approximately **0.30 nRMSE** on one deterministic
        CPU seed. The matched pass-through route records approximately 0.16.
        Neither result establishes capacity for longer collections.
      insights: |-
        **A compressed summary can preserve enough information to retrieve the value attached to the highest score.** The summary slots do not represent
        named candidates. The item branch reduces first, so requesting several root
        outputs cannot recreate information that the earlier summary failed to retain.

        The payload-rotation control removes accuracy while preserving score and
        payload marginals. That supports relational information surviving the tested
        route, rather than success from collection statistics alone. The retained-token
        route records better accuracy on the matched task, but this comparison supplies
        no speed or memory measurements. Treat summary width as task-specific capacity;
        longer collections, other payload types, and exact retrieval remain separate
        questions.
      evidence: |-
        Both routes use identical splits: 4,096 training, 1,024 validation, and 2,048
        test records, trained for 25 CPU epochs. nRMSE uses the training-mean baseline.

        | Check | Required gate | Recorded result |
        | --- | --- | --- |
        | Intact retrieval | nRMSE ≤ 0.35 | Approximately 0.30 |
        | Rotated payloads | nRMSE ≥ 0.90 | Gate reported passing |
        | Corruption gap | At least 0.35 nRMSE | Gate reported passing |
    runs:
    - started_at: '2026-09-15T02:15:24.019056+00:00'
      mode: smoke
      seed: 23
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 5575a43226d5d7d4b349e101e3f98d57f0a7362da711f5a777c3495a3ed6e93b
        script_sha256: 503311defddbad62bd63fbe125a23ef712b2bd1cee711fb96c5af2b2f32e3f09
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
      metrics:
        rmse: 1.00318426502101
        baseline_rmse: 0.9911584043638657
        intact_nrmse: 1.012133136947835
        broken_nrmse: 1.012690002090478
      checks:
        Intact retrieval nRMSE <= 0.35: false
        Broken pairing nRMSE >= 0.90: true
        Breaking pairing increases nRMSE by >= 0.35: false
      outcome: not_met
      duration_seconds: 0.903
    - started_at: '2026-09-15T02:24:51.311825+00:00'
      mode: full
      seed: 23
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: d57439096e83b67b4fab821b5fed80a4aef76a6bf15860436d866f012b3b7b54
        script_sha256: 9daa6891a91d7daa86e24ef8862f4ac97576ae382b6c2ff2a418e90dffc2cf00
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-proof-scripts.RB4VJH/src/relflow
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: a064d7690ae53ac7f06d95845d3d3d56897664bae9cb61fd1f68591d032878a9
      metrics:
        rmse: 0.2813291196788821
        baseline_rmse: 0.9911584043638657
        intact_nrmse: 0.2838387067498475
        broken_nrmse: 1.3881021097428687
      checks:
        Intact retrieval nRMSE <= 0.35: true
        Broken pairing nRMSE >= 0.90: true
        Breaking pairing increases nRMSE by >= 0.35: true
      outcome: met
      duration_seconds: 19.478
  P023:
    script: proofs/relational/pass_through_number_payload.py
    page: docs/proofs/relational/pass-through-number-payload.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/relational/argmax_retrieval/test_pass_through_number_payload.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/relational/argmax_retrieval/__init__.py
      summary: |-
        The checked-in report records approximately **0.16 nRMSE** for three candidates
        on one deterministic CPU seed. Rotating payloads removes the retrieval skill.
        These are recorded results, not a fresh run.
      insights: |-
        **The model learns which payload belongs to the highest score, rather than
        merely predicting a statistic of the whole collection.** All candidate scores
        and payloads are visible, and their shared item coordinates preserve the
        pairing. The root answer is hidden; its scalar decoder uses the retained
        encoded evidence to produce one Number.

        Rotating payloads preserves both marginal distributions but breaks the original
        answer's association with its score. The resulting loss of accuracy supports
        use of that pairing. It does not establish exact argmax computation or behavior
        beyond the tested three candidates. Preserve candidate evidence when diagnosing
        similar learned retrieval tasks; compute a known selection rule directly when
        its result must be exact.
      evidence: |-
        The protocol uses 4,096 training, 1,024 validation, and 2,048 test records over
        25 CPU epochs. nRMSE divides error by the training-mean predictor's test error.

        | Check | Required gate | Recorded result |
        | --- | --- | --- |
        | Intact retrieval | nRMSE ≤ 0.35 | Approximately 0.16 |
        | Rotated payloads | nRMSE ≥ 0.90 | Gate reported passing |
        | Corruption gap | At least 0.35 nRMSE | Gate reported passing |
    runs:
    - started_at: '2026-09-15T02:15:28.285395+00:00'
      mode: smoke
      seed: 23
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 900cce04e87494f814ea387300d091bc0dbd5d6e5061949b90fe0eee152a6865
        script_sha256: db70cebd0a97d453687fc2419f2aaead18fc65d0c8ecb49a2bf7b681c8f15edc
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
      metrics:
        rmse: 0.9003777396122906
        baseline_rmse: 0.9911584043638657
        intact_nrmse: 0.9084095293427503
        broken_nrmse: 0.9110087154088085
        train_nrmse: 0.9087091985224002
      checks:
        Intact retrieval nRMSE <= 0.35: false
        Broken pairing nRMSE >= 0.90: true
        Breaking pairing increases nRMSE by >= 0.35: false
      outcome: not_met
      duration_seconds: 1.165
    - started_at: '2026-09-15T02:25:14.219811+00:00'
      mode: full
      seed: 23
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: bf49f8710d19a73ca107a284a243d846ed29b9f4b97d9db0738ff1a0e43b2e57
        script_sha256: 04959a39d9d1a7129efdf2eb244fd0f24d7636490f894aa9bf1fb3f5441a34f3
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-proof-scripts.RB4VJH/src/relflow
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: b6b705dfe51f8869b4e15f0009a20ba2c1bd05167b35c59d1a96ffbc4500de1c
      metrics:
        rmse: 0.2512988007621003
        baseline_rmse: 0.9911584043638657
        intact_nrmse: 0.2535405033702823
        broken_nrmse: 1.372341575993056
        train_nrmse: 0.25405967626833875
      checks:
        Intact retrieval nRMSE <= 0.35: true
        Broken pairing nRMSE >= 0.90: true
        Breaking pairing increases nRMSE by >= 0.35: true
      outcome: met
      duration_seconds: 16.776
  P024:
    script: proofs/relational/aligned_position_control.py
    page: docs/proofs/relational/aligned-position-control.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/relational/associative_recall/test_aligned_position_control.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/relational/associative_recall/__init__.py
      summary: |-
        The control is reported passing on one deterministic CPU seed with both valid
        and broken keys. That is evidence for positional copying, not associative
        recall. The [shuffled recall proof](hash-recall.qmd) tests identity dependence.
      insights: |-
        **A model can copy the right value using position while ignoring matching identities.** Aligned source and query positions give the
        model another way to recover every target. Rotating query keys while retaining
        target positions leaves accuracy high, so this control does not establish
        identity-based recall.

        Repeated decoder queries retain positional information. Although branch and
        root reductions are compressed, decoder memory also includes the target
        value field's own parcel, which still contains visible source values. Success
        therefore does not show that one summary preserves all source information.
        Keep this control beside shuffled-key recall: their different responses to
        broken keys distinguish copying by position from using identity.
      evidence: |-
        The protocol fits 2,048 records, validates on 512, and tests 1,024 after 800
        CPU steps. nRMSE is relative to predicting zero for every query value.

        | Check | Required gate | Recorded result |
        | --- | --- | --- |
        | Aligned copying | nRMSE ≤ 0.25 | Gate reported passing |
        | Broken query keys | nRMSE ≤ 0.25 | Gate reported passing |
        | Change after key rotation | Absolute nRMSE difference ≤ 0.10 | Gate reported passing |
    runs:
    - started_at: '2026-09-15T02:15:32.810216+00:00'
      mode: smoke
      seed: 17
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 8066d228439b45ab2bd515e8eb74119d1629cc4bf26c039c89fc62018f46b990
        script_sha256: 7f440546bb98a590a86b30285c8c3dea47d431040545088512c6f747f78cedeb
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
      metrics:
        intact_nrmse: 1.3284462697596782
        broken_nrmse: 1.319193460072285
        corruption_gap: -0.009252809687393171
      checks:
        Aligned copying nRMSE <= 0.25: false
        Broken identities retain copying nRMSE <= 0.25: false
        Identity change alters nRMSE by <= 0.10: true
      outcome: not_met
      duration_seconds: 1.028
    - started_at: '2026-09-15T02:25:34.435010+00:00'
      mode: full
      seed: 17
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: c2018887f84ae8aded1142132631ffa7a366bb5f242a5bdb153b12e9b6909eef
        script_sha256: 678769f758499d0f3f88ad57c6934bd7e0beda583ab7d3c153558c30e787041b
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-proof-scripts.RB4VJH/src/relflow
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: fca216695f5ed371bc7347114e5c00e12a80a72cffac9a4b455786435ddc326c
      metrics:
        intact_nrmse: 0.023022250453277816
        broken_nrmse: 0.022929462165871755
        corruption_gap: -9.278828740606065e-05
      checks:
        Aligned copying nRMSE <= 0.25: true
        Broken identities retain copying nRMSE <= 0.25: true
        Identity change alters nRMSE by <= 0.10: true
      outcome: met
      duration_seconds: 21.143
  P025:
    script: proofs/relational/hash_recall.py
    page: docs/proofs/relational/hash-recall.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/relational/associative_recall/test_hash_recall.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/relational/associative_recall/__init__.py
      summary: |-
        The checked-in report records passing accuracy and broken-key gates for one
        deterministic CPU seed with two source/query pairs. It does not report exact
        nRMSE values or a larger supported memory capacity.
      insights: |-
        **The model recalls values for unseen keys, and breaking the key relationship
        removes that skill.** Fresh values and independently shuffled records prevent
        fixed positions or remembered answers from reliably solving the task. Hash
        preserves equality without a learned vocabulary; the Boolean query mask hides
        only query values, leaving source values visible.

        The decoder can use both retained ancestor context and the value field's own
        visible source parcel. Aligned identity and role fields condition each repeated
        query. Rotating query keys while retaining original targets tests whether that
        relationship matters. This supports learned recall for two pairs, not a
        deterministic lookup guarantee. Larger memories, absent or duplicate keys,
        and collisions remain untested.
      evidence: |-
        The protocol uses 2,048 training, 512 validation, and 1,024 test records with
        800 CPU training steps. nRMSE uses a zero-value predictor as its baseline.

        | Check | Required gate | Recorded result |
        | --- | --- | --- |
        | Unseen-key recall | nRMSE ≤ 0.25 | Gate reported passing |
        | Broken query keys | nRMSE ≥ 0.80 | Gate reported passing |
        | Broken-key gap | At least 0.50 nRMSE | Gate reported passing |
    runs:
    - started_at: '2026-09-15T02:15:37.206852+00:00'
      mode: smoke
      seed: 17
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: b85144ea5b72ef48269097a25fdc5a83d0aae6b270e71bd3428c4c4a6ccee51c
        script_sha256: bd11e0de7a0290b37c65f046dc14ee373653042e641ad38ecca1c55a4b9167c3
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
      metrics:
        intact_nrmse: 1.3100486307342105
        broken_nrmse: 1.3160914357450295
        corruption_gap: 0.006042805010818997
      checks:
        Finite errors: true
        Recall calibration nRMSE <= 0.90: false
        Identity recall nRMSE <= 0.25: false
        Broken identities nRMSE >= 0.80: true
        Corruption increases nRMSE by >= 0.50: false
      outcome: not_met
      duration_seconds: 1.321
    - started_at: '2026-09-15T02:25:58.975476+00:00'
      mode: full
      seed: 17
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 1416b1e5eae1bca63fe91c913072ace23e081c14c5fcd75fcd5a9b7b1eb9c9d5
        script_sha256: 878047d7b42d34092cc055942a7fa6d2c07acc26d54ec1a024d5216d70f3c934
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-proof-scripts.RB4VJH/src/relflow
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 42e2656c4c6174d3130fcb1e5c58a75385b7a77203226f60d0a76aa0d249a76f
      metrics:
        intact_nrmse: 0.22284473798592025
        broken_nrmse: 1.3745850849698824
        corruption_gap: 1.1517403469839622
      checks:
        Finite errors: true
        Recall calibration nRMSE <= 0.90: true
        Identity recall nRMSE <= 0.25: true
        Broken identities nRMSE >= 0.80: true
        Corruption increases nRMSE by >= 0.50: true
      outcome: met
      duration_seconds: 18.046
  P026:
    script: proofs/relational/filtered_mean.py
    page: docs/proofs/relational/filtered-mean.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/relational/category_conditioned_reduction/test_filtered_mean.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/relational/category_conditioned_reduction/__init__.py
      summary: |-
        The checked-in report records passing accuracy and label-corruption gates for
        all three groups on one deterministic CPU seed. Exact per-group scores are
        not recorded.
      insights: |-
        **The model uses group membership to select which values contribute to its
        answer.** The same bag supplies separate requests for each group, while the
        operation stays fixed at mean. Item coordinates keep group and value together;
        the visible root request can condition how the decoder uses the learned
        collection summary.

        Shuffling only group labels preserves all values and category counts but makes
        the retained original answers inconsistent with the new membership. Increased
        error supports use of the group/value relationship. It does not establish an
        exact filtering algorithm or behavior for absent groups and unknown categories.
        This small task also shows that pass-through reduction is not required for
        every learned group selection.
      evidence: |-
        Training uses 512 bags, validation 64, and evaluation 128, each with two items
        per group, over 800 CPU steps. Each group's nRMSE uses its own training-mean
        baseline.

        | Check | Required gate | Recorded result |
        | --- | --- | --- |
        | Each selected group | nRMSE ≤ 0.55 | Gate reported passing |
        | Corrupted labels, each group | At least 0.25 nRMSE worse | Gate reported passing |
    runs:
    - started_at: '2026-09-15T02:15:41.934570+00:00'
      mode: smoke
      seed: 16
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: d0969247caa4a66c61d244e6f5b19e8435e14f29d98b1bc8bea094de43162c77
        script_sha256: 24dce1cd9121d4ce217c351000eb2c7d738d134d30bb7fb03a3a29b68bb9672b
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
      metrics:
        intact/A/rmse: 1.4523209310098621
        intact/A/baseline_rmse: 0.8356639150214514
        intact/A/nrmse: 1.73792466672751
        intact/B/rmse: 1.4579753429050628
        intact/B/baseline_rmse: 0.8356760790930771
        intact/B/nrmse: 1.7446656418445532
        intact/C/rmse: 1.3736421037993132
        intact/C/baseline_rmse: 0.8854705200121815
        intact/C/nrmse: 1.5513131976210974
        corrupted/A/rmse: 1.4521147074815042
        corrupted/A/baseline_rmse: 0.8356639150214514
        corrupted/A/nrmse: 1.7376778886572224
        corrupted/B/rmse: 1.460544778113098
        corrupted/B/baseline_rmse: 0.8356760790930771
        corrupted/B/nrmse: 1.747740320266393
        corrupted/C/rmse: 1.3736453993344222
        corrupted/C/baseline_rmse: 0.8854705200121815
        corrupted/C/nrmse: 1.5513169194108516
      checks:
        Group A nRMSE <= 0.55: false
        Group B nRMSE <= 0.55: false
        Group C nRMSE <= 0.55: false
        Group A corruption increases nRMSE by >= 0.25: false
        Group B corruption increases nRMSE by >= 0.25: false
        Group C corruption increases nRMSE by >= 0.25: false
      outcome: not_met
      duration_seconds: 0.838
    - started_at: '2026-09-15T02:26:20.438891+00:00'
      mode: full
      seed: 16
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: fbf0ec5b8f7b7d088d28ccd39477847b27d364a3b7ea3eb1a036e6e04da6d153
        script_sha256: 0f63f0d8908f3f35cc2a58a6584ba703f971215e9eced5e9b1ba73695298f6fa
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-proof-scripts.RB4VJH/src/relflow
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 35a76e5b8dd67fb06ad22b0303f47f0543e320c432f5ad13f3277e8b444075d8
      metrics:
        intact/A/rmse: 0.022685833035542592
        intact/A/baseline_rmse: 0.8356639150214514
        intact/A/nrmse: 0.027147077464700926
        intact/B/rmse: 0.016297808242230382
        intact/B/baseline_rmse: 0.8356760790930771
        intact/B/nrmse: 0.01950254249220306
        intact/C/rmse: 0.01636764611243637
        intact/C/baseline_rmse: 0.8854705200121815
        intact/C/nrmse: 0.018484687793119525
        corrupted/A/rmse: 0.7936227859752805
        corrupted/A/baseline_rmse: 0.8356639150214514
        corrupted/A/nrmse: 0.9496913432655618
        corrupted/B/rmse: 0.7921123931195244
        corrupted/B/baseline_rmse: 0.8356760790930771
        corrupted/B/nrmse: 0.9478701292720615
        corrupted/C/rmse: 0.8906145939256858
        corrupted/C/baseline_rmse: 0.8854705200121815
        corrupted/C/nrmse: 1.0058094242521292
      checks:
        Group A nRMSE <= 0.55: true
        Group B nRMSE <= 0.55: true
        Group C nRMSE <= 0.55: true
        Group A corruption increases nRMSE by >= 0.25: true
        Group B corruption increases nRMSE by >= 0.25: true
        Group C corruption increases nRMSE by >= 0.25: true
      outcome: met
      duration_seconds: 27.037
  P027:
    script: proofs/relational/group_operation_composition.py
    page: docs/proofs/relational/group-operation-composition.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/relational/category_conditioned_reduction/test_group_operation_composition.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/relational/category_conditioned_reduction/__init__.py
      summary: |-
        The checked-in report records all twelve group-operation cells passing their
        nRMSE gate on one deterministic CPU seed. Corruption controls for this composed
        case remain unfinished; the simpler filtered-mean proof supplies the current
        label-corruption evidence.
      insights: |-
        **The model can answer requests for different groups and operations, but this combined task still needs checks that it uses both requests.**
        The same bag supplies different answers according to visible group and
        operation requests. Measuring every cell prevents an easy subset from hiding
        a failed operation or group.

        Item coordinates bind categories to values, retained item slots preserve their
        evidence, and request fields can condition the scalar decoder. The twelve
        root outputs are learned summaries, not twelve declared statistics. Label and
        request corruptions have not been applied to this exact route; neighboring
        proofs do not substitute for them. The evidence supports bounded conditional
        prediction, with broader relational composition still requiring validation.
      evidence: |-
        The protocol trains on 512 bags, validates on 64, and tests 128 after 1,200 CPU
        steps. Each cell's error is normalized by its matching training-mean baseline.

        | Check | Required gate | Recorded result |
        | --- | --- | --- |
        | Every group-operation cell | nRMSE ≤ 0.30 | All twelve gates reported passing |
        | Numerical calibration | Finite nRMSE in every cell | Gate reported passing |
    runs:
    - started_at: '2026-09-15T02:15:46.160072+00:00'
      mode: smoke
      seed: 16
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 88a51fd340db0ef3750bd8f39a8d4b51ab649e93c5d25cf2ed1dde0b7897c44c
        script_sha256: 9c92d932819a07221efb44a05b1f054a78a964ae168be02ebf45505a08819555
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
      metrics:
        intact/max/A/rmse: 1.343814516534358
        intact/max/A/baseline_rmse: 0.8798919617581095
        intact/max/A/nrmse: 1.5272494521364717
        intact/max/B/rmse: 1.1504907006995917
        intact/max/B/baseline_rmse: 0.8645386409025352
        intact/max/B/nrmse: 1.3307568294443575
        intact/max/C/rmse: 1.0778907341768926
        intact/max/C/baseline_rmse: 0.8226223328561437
        intact/max/C/nrmse: 1.3103105655233762
        intact/mean/A/rmse: 0.8382183208600148
        intact/mean/A/baseline_rmse: 0.8703165895406241
        intact/mean/A/nrmse: 0.9631188591986376
        intact/mean/B/rmse: 0.8416726901990014
        intact/mean/B/baseline_rmse: 0.8474965036769826
        intact/mean/B/nrmse: 0.9931282153345603
        intact/mean/C/rmse: 0.8131480088868479
        intact/mean/C/baseline_rmse: 0.814604977900874
        intact/mean/C/nrmse: 0.9982114410621691
        intact/min/A/rmse: 1.433727790190114
        intact/min/A/baseline_rmse: 0.8766077148642057
        intact/min/A/nrmse: 1.635540921987221
        intact/min/B/rmse: 1.579062064564362
        intact/min/B/baseline_rmse: 0.8365111183932998
        intact/min/B/nrmse: 1.8876761227003074
        intact/min/C/rmse: 1.671122153392365
        intact/min/C/baseline_rmse: 0.8391276941102654
        intact/min/C/nrmse: 1.9914992260674589
        intact/sum/A/rmse: 3.516778776872889
        intact/sum/A/baseline_rmse: 3.4812663581624963
        intact/sum/A/nrmse: 1.0102010059147377
        intact/sum/B/rmse: 3.357539921339317
        intact/sum/B/baseline_rmse: 3.3899860147079304
        intact/sum/B/nrmse: 0.9904288415268259
        intact/sum/C/rmse: 3.2731957658294757
        intact/sum/C/baseline_rmse: 3.258419911603496
        intact/sum/C/nrmse: 1.0045346685285594
      checks:
        max/A finite calibration nRMSE <= 1.60: true
        max/B finite calibration nRMSE <= 1.60: true
        max/C finite calibration nRMSE <= 1.60: true
        mean/A finite calibration nRMSE <= 1.60: true
        mean/B finite calibration nRMSE <= 1.60: true
        mean/C finite calibration nRMSE <= 1.60: true
        min/A finite calibration nRMSE <= 1.60: false
        min/B finite calibration nRMSE <= 1.60: false
        min/C finite calibration nRMSE <= 1.60: false
        sum/A finite calibration nRMSE <= 1.60: true
        sum/B finite calibration nRMSE <= 1.60: true
        sum/C finite calibration nRMSE <= 1.60: true
        max/A nRMSE <= 0.30: false
        max/B nRMSE <= 0.30: false
        max/C nRMSE <= 0.30: false
        mean/A nRMSE <= 0.30: false
        mean/B nRMSE <= 0.30: false
        mean/C nRMSE <= 0.30: false
        min/A nRMSE <= 0.30: false
        min/B nRMSE <= 0.30: false
        min/C nRMSE <= 0.30: false
        sum/A nRMSE <= 0.30: false
        sum/B nRMSE <= 0.30: false
        sum/C nRMSE <= 0.30: false
      outcome: not_met
      duration_seconds: 1.525
    - started_at: '2026-09-15T02:26:50.904617+00:00'
      mode: full
      seed: 16
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: cb22c1a08f196d542a455a3c2afb632dfc40ce2daaaf964ec83921cd95d3b2b1
        script_sha256: b8f1279fd689729389850b05e122db2b30185f813165cf70741f0f9200a12ef7
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-proof-scripts.RB4VJH/src/relflow
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 733ea4403e53b9e7862481f18886205de05f779a0a316e12a379716cbd0b9789
      metrics:
        intact/max/A/rmse: 0.18308504484072816
        intact/max/A/baseline_rmse: 0.8798919617581095
        intact/max/A/nrmse: 0.20807673305130153
        intact/max/B/rmse: 0.16941651406402344
        intact/max/B/baseline_rmse: 0.8645386409025352
        intact/max/B/nrmse: 0.19596176046817418
        intact/max/C/rmse: 0.1579989945141643
        intact/max/C/baseline_rmse: 0.8226223328561437
        intact/max/C/nrmse: 0.19206747519921077
        intact/mean/A/rmse: 0.06480399142037688
        intact/mean/A/baseline_rmse: 0.8703165895406241
        intact/mean/A/nrmse: 0.07446025067105996
        intact/mean/B/rmse: 0.07211585837754324
        intact/mean/B/baseline_rmse: 0.8474965036769826
        intact/mean/B/nrmse: 0.08509280930913397
        intact/mean/C/rmse: 0.049025701102873395
        intact/mean/C/baseline_rmse: 0.814604977900874
        intact/mean/C/nrmse: 0.06018340475797968
        intact/min/A/rmse: 0.14529593248443903
        intact/min/A/baseline_rmse: 0.8766077148642057
        intact/min/A/nrmse: 0.16574795090292657
        intact/min/B/rmse: 0.17183883376188822
        intact/min/B/baseline_rmse: 0.8365111183932998
        intact/min/B/nrmse: 0.2054232513871923
        intact/min/C/rmse: 0.17559495849844933
        intact/min/C/baseline_rmse: 0.8391276941102654
        intact/min/C/nrmse: 0.20925892415532088
        intact/sum/A/rmse: 0.1923188640205741
        intact/sum/A/baseline_rmse: 3.4812663581624963
        intact/sum/A/nrmse: 0.05524393833572822
        intact/sum/B/rmse: 0.25666843512215765
        intact/sum/B/baseline_rmse: 3.3899860147079304
        intact/sum/B/nrmse: 0.07571371504441776
        intact/sum/C/rmse: 0.2897579721848155
        intact/sum/C/baseline_rmse: 3.258419911603496
        intact/sum/C/nrmse: 0.08892591502800606
      checks:
        max/A finite calibration nRMSE <= 1.60: true
        max/B finite calibration nRMSE <= 1.60: true
        max/C finite calibration nRMSE <= 1.60: true
        mean/A finite calibration nRMSE <= 1.60: true
        mean/B finite calibration nRMSE <= 1.60: true
        mean/C finite calibration nRMSE <= 1.60: true
        min/A finite calibration nRMSE <= 1.60: true
        min/B finite calibration nRMSE <= 1.60: true
        min/C finite calibration nRMSE <= 1.60: true
        sum/A finite calibration nRMSE <= 1.60: true
        sum/B finite calibration nRMSE <= 1.60: true
        sum/C finite calibration nRMSE <= 1.60: true
        max/A nRMSE <= 0.30: true
        max/B nRMSE <= 0.30: true
        max/C nRMSE <= 0.30: true
        mean/A nRMSE <= 0.30: true
        mean/B nRMSE <= 0.30: true
        mean/C nRMSE <= 0.30: true
        min/A nRMSE <= 0.30: true
        min/B nRMSE <= 0.30: true
        min/C nRMSE <= 0.30: true
        sum/A nRMSE <= 0.30: true
        sum/B nRMSE <= 0.30: true
        sum/C nRMSE <= 0.30: true
      outcome: met
      duration_seconds: 36.59
  P028:
    script: proofs/relational/direct_sibling_hash_overlap.py
    page: docs/proofs/relational/direct-sibling-hash-overlap.py
    historical:
      status: Expected limitation
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/relational/collection_overlap/test_direct_sibling_hash_overlap.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/relational/collection_overlap/support.py
      summary: |-
        The recorded intact **AUC is 0.4972**. This proof deliberately passes when the
        model remains near chance and barely responds to removing an overlap. A green
        test records the known limitation; it does not mean overlap detection works.
      insights: |-
        **Retaining every identity token does not make the current model reliably
        detect overlap between two collections.** The scalar target must discover a
        match anywhere across both sides, which is a different demand from a repeated
        target carrying its own visible query identity. The passing flat equality
        control shows that unseen Hash comparison itself can work.

        This proof deliberately passes when predictions remain near chance and barely
        respond to removing the shared member. Low drift under renaming and permutation
        is not useful invariance by itself: an uninformative predictor can also stay
        stable. The result describes the tested architecture and budget, not an
        impossibility theorem. Compute overlap directly when an application requires
        it today.
      evidence: |-
        One deterministic CPU run uses 3,072 training, 768 validation, and 1,024 test
        records over 700 steps. AUC of 0.5 corresponds to chance ranking.

        | Check | Limitation gate | Recorded result |
        | --- | --- | --- |
        | Intact AUC | 0.35–0.65 | 0.4972 |
        | Consistent renaming and permutation AUC | 0.35–0.65 | 0.5153 |
        | Removed-overlap AUC against retained labels | 0.35–0.65 | 0.4940 |
        | Mean invariant probability drift | ≤ 0.15 | 0.0006 |
        | Mean positive probability drop after removal | Absolute value ≤ 0.10 | Approximately 0.0000 |
    runs:
    - started_at: '2026-09-15T02:15:51.082706+00:00'
      mode: smoke
      seed: 3711
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 16d423174935a6a34268f877e935d2d75756405850dad1daef33919698a2c475
        script_sha256: dbadefe57cc473749cefe590eda0e37dceb6737669eb2f205869393771b37e70
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 105c5ef8d9e7cb724caead45e22a50bd200a140fdea28a581c58a12c7b532548
      metrics:
        intact_auc: 0.5161590576171875
        invariant_auc: 0.5326423645019531
        broken_auc: 0.499969482421875
        invariant_drift: 0.012097313185222447
        positive_break_drop: 0.0007783769397065043
      checks:
        Labels are exactly balanced: true
        Labels match actual overlap: true
        Renaming and permutation preserve overlap: true
        Intervention removes all overlaps: true
        Finite metrics: true
        Intact AUC remains in the calibrated chance band: true
        Renamed and permuted AUC remains in the chance band: true
        Broken AUC remains in the chance band: true
        Invariant probability drift <= 0.15: true
        Absolute positive break response <= 0.10: true
        train generator has balanced truthful labels: true
        train sides have two to five unique members: true
        train positive rows have exactly one overlap: true
        validate generator has balanced truthful labels: true
        validate sides have two to five unique members: true
        validate positive rows have exactly one overlap: true
        test generator has balanced truthful labels: true
        test sides have two to five unique members: true
        test positive rows have exactly one overlap: true
        invariant generator has balanced truthful labels: true
        invariant sides have two to five unique members: true
        invariant positive rows have exactly one overlap: true
      outcome: met
      duration_seconds: 1.02
    - started_at: '2026-09-15T02:27:30.953191+00:00'
      mode: full
      seed: 3711
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: da4241972f82b268dd5602e23ee7406ae38d32d5efe15b016539e9fd38034103
        script_sha256: dbadefe57cc473749cefe590eda0e37dceb6737669eb2f205869393771b37e70
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-proof-scripts.RB4VJH/src/relflow
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 105c5ef8d9e7cb724caead45e22a50bd200a140fdea28a581c58a12c7b532548
      metrics:
        intact_auc: 0.47298240661621094
        invariant_auc: 0.5077915191650391
        broken_auc: 0.47818946838378906
        invariant_drift: 0.001136141800088808
        positive_break_drop: -2.6322610210627317e-05
      checks:
        Labels are exactly balanced: true
        Labels match actual overlap: true
        Renaming and permutation preserve overlap: true
        Intervention removes all overlaps: true
        Finite metrics: true
        Intact AUC remains in the calibrated chance band: true
        Renamed and permuted AUC remains in the chance band: true
        Broken AUC remains in the chance band: true
        Invariant probability drift <= 0.15: true
        Absolute positive break response <= 0.10: true
        train generator has balanced truthful labels: true
        train sides have two to five unique members: true
        train positive rows have exactly one overlap: true
        validate generator has balanced truthful labels: true
        validate sides have two to five unique members: true
        validate positive rows have exactly one overlap: true
        test generator has balanced truthful labels: true
        test sides have two to five unique members: true
        test positive rows have exactly one overlap: true
        invariant generator has balanced truthful labels: true
        invariant sides have two to five unique members: true
        invariant positive rows have exactly one overlap: true
      outcome: met
      duration_seconds: 24.44
  P029:
    script: proofs/relational/flat_unseen_hash_equality_control.py
    page: docs/proofs/relational/flat-unseen-hash-equality-control.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/relational/collection_overlap/test_flat_unseen_hash_equality_control.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/relational/collection_overlap/support.py
      summary: |-
        The checked-in report records **0.9890 AUC** for unseen equality on one
        deterministic CPU seed. This supports the identity primitive; it does not
        establish [sibling collection overlap](direct-sibling-hash-overlap.qmd).
      insights: |-
        **The model can compare two unseen scalar identities, so failed collection
        overlap cannot be explained solely by an unusable Hash representation.**
        The fields share the same root context and preserve equality through Hash
        encoding. Fresh identities and balanced labels rule out a persistent lookup
        table or a majority-label solution.

        Making formerly equal pairs unequal while retaining their positive labels
        lowers their predicted probabilities and removes ranking skill against those
        labels. That supports sensitivity to equality, rather than merely a favorable
        intact score. It does not establish calibrated probabilities or an all-pairs
        comparison across repeated branches. Keep this primitive control when testing
        more complex identity-routing schemas, so different failure locations remain
        distinguishable.
      evidence: |-
        The protocol uses 3,072 training, 768 validation, and 1,024 test records with
        600 CPU training steps. AUC evaluates positive/negative probability ranking.

        | Check | Required gate | Recorded result |
        | --- | --- | --- |
        | Intact equality | AUC ≥ 0.95 | 0.9890 |
        | All-unequal intervention | AUC between 0.35 and 0.65 | Gate reported passing |
        | Formerly positive mean probability drop | ≥ 0.25 | Gate reported passing |
    runs:
    - started_at: '2026-09-15T02:15:55.481514+00:00'
      mode: smoke
      seed: 3701
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 382a44adb3b7cbbdd0fad996496997f360efc46c4f347fa34439d41c063d4bcc
        script_sha256: b74c5b04fbbd8a062b08955346d0302fc697c48fae2ebdd82fd87b81b232a980
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: d643cee2bef8d7a7b905b658008a5437b069c80d0a935394ec8788a6524e7aca
      metrics:
        intact_auc: 0.48752593994140625
        broken_auc: 0.5044612884521484
        positive_probability_drop: -0.0024551497772336006
      checks:
        Finite metrics: true
        Unseen equality AUC >= 0.95: false
        All-unequal control AUC is in [0.35, 0.65]: true
        Breaking equality lowers positive probability by >= 0.25: false
      outcome: not_met
      duration_seconds: 0.746
    - started_at: '2026-09-15T02:27:58.822559+00:00'
      mode: full
      seed: 3701
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 91bd2a492989c34950f499cf1412eca0775dd53798c15806bfb6596c10c9cc4c
        script_sha256: b74c5b04fbbd8a062b08955346d0302fc697c48fae2ebdd82fd87b81b232a980
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-proof-scripts.RB4VJH/src/relflow
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: d643cee2bef8d7a7b905b658008a5437b069c80d0a935394ec8788a6524e7aca
      metrics:
        intact_auc: 0.9998245239257812
        broken_auc: 0.5046043395996094
        positive_probability_drop: 0.9927793605953639
      checks:
        Finite metrics: true
        Unseen equality AUC >= 0.95: true
        All-unequal control AUC is in [0.35, 0.65]: true
        Breaking equality lowers positive probability by >= 0.25: true
      outcome: met
      duration_seconds: 12.087
  P030:
    script: proofs/relational/repeated_subtotal_reconstruction.py
    page: docs/proofs/relational/repeated-subtotal-reconstruction.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/relational/item_alignment/test_repeated_subtotal_reconstruction.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/relational/item_alignment/__init__.py
      summary: |-
        The checked-in report records passing accuracy, target-permutation, and output
        geometry gates for one seed. It reports threshold success rather than an exact
        measured nRMSE.
      insights: |-
        **The model learns each item's subtotal and keeps its prediction attached to
        the correct coordinate.** Repeated decoder queries can use aligned quantity
        and price inputs as well as ancestor context; they are not limited to one
        identical root representation for every item.

        Permuting only target subtotals leaves requests and predictions unchanged but
        raises error against the altered labels. That isolates coordinate alignment.
        Separate assertions verify that real items are inferred and padded coordinates
        are not, including empty orders. The arithmetic score is still aggregated over
        lengths, so a weak individual length could be hidden. This establishes local
        learned arithmetic and output geometry, not general cross-item reasoning or
        exact billing calculations.
      evidence: |-
        The protocol fits 4,096 orders, validates on 1,024, and tests 2,048 over 25 CPU
        epochs. nRMSE divides error by the training-mean subtotal baseline's test error.

        | Check | Required gate | Recorded result |
        | --- | --- | --- |
        | Aligned subtotals | nRMSE ≤ 0.25 | Gate reported passing |
        | Permuted targets | At least 0.50 nRMSE worse | Gate reported passing |
        | Output shape | Exactly five coordinates per order | Gate reported passing |
        | Inferred flags | Match every real and padded position | Gate reported passing |
    runs:
    - started_at: '2026-09-15T02:15:59.644893+00:00'
      mode: smoke
      seed: 31
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 09034fe14c4e7d2bcb9140d8874c5d9c560f5be662cb507b93f68379a6ad677f
        script_sha256: a36c5276358abc7ad4fd394d00ba84875037a2e0a70c181bde322eb31912c870
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: b5ee5a1268175a2973329686c3cffc200b555c22b1c4e6f8c5fc3c2cc6ebc214
      metrics:
        aligned_nrmse: 0.7709520467502883
        permuted_target_nrmse: 0.9386946831751944
        baseline_rmse: 1.0618151651706766
      checks:
        Target permutation preserves visible inputs: true
        Output retains the fixed branch length: true
        Inferred flags match real and padded coordinates: true
        Aligned subtotal nRMSE <= 0.25: false
        Permuting targets increases nRMSE by >= 0.50: false
      outcome: not_met
      duration_seconds: 0.96
    - started_at: '2026-09-15T02:28:14.376443+00:00'
      mode: full
      seed: 31
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: fda8373e15faa5243cd2403d7f817b0918a80af65494718cbace2bcbe2769df9
        script_sha256: a36c5276358abc7ad4fd394d00ba84875037a2e0a70c181bde322eb31912c870
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-proof-scripts.RB4VJH/src/relflow
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: b5ee5a1268175a2973329686c3cffc200b555c22b1c4e6f8c5fc3c2cc6ebc214
      metrics:
        aligned_nrmse: 0.014522491722698478
        permuted_target_nrmse: 1.15685115020635
        baseline_rmse: 1.0618151651706766
      checks:
        Target permutation preserves visible inputs: true
        Output retains the fixed branch length: true
        Inferred flags match real and padded coordinates: true
        Aligned subtotal nRMSE <= 0.25: true
        Permuting targets increases nRMSE by >= 0.50: true
      outcome: met
      duration_seconds: 24.979
  P031:
    script: proofs/relational/fixed_length.py
    page: docs/proofs/relational/fixed-length.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/relational/operation_conditioned_reduction/test_fixed_length.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/relational/operation_conditioned_reduction/__init__.py
      summary: |-
        The checked-in report records passing accuracy, permutation, and hidden-request
        gates for one deterministic CPU seed. Only the fixed-length stage is
        implemented; variable-length behavior is not established.
      insights: |-
        **The model changes its answer when the operation changes and approximately
        preserves it when item order changes.** Hiding the operation makes the four
        requests for a bag identical while their original labels remain different.
        Their predictions collapse and lose skill, confirming that the request supplies
        necessary information.

        The operation is an ordinary Category that can condition the scalar decoder;
        it does not select an exact Python arithmetic function. The permutation control
        checks prediction drift as well as accuracy. However, all bags have eight
        values, where sum is always eight times mean. Success therefore does not
        establish cardinality-aware reduction at unseen lengths or exact numerical
        invariance.
      evidence: |-
        The protocol uses 768 training bags, 96 validation bags, and 192 test bags,
        each expanded to four requests, with 800 CPU steps. nRMSE uses a separate
        training-mean baseline for each operation.

        | Check | Required gate | Recorded result |
        | --- | --- | --- |
        | Each intact operation | nRMSE ≤ 0.20 | Gate reported passing |
        | Each permuted operation | nRMSE ≤ 0.25 | Gate reported passing |
        | Permutation prediction drift | ≤ 0.05 target standard deviations | Gate reported passing |
        | Hidden operation | At least three operations have nRMSE ≥ 0.75 | Gate reported passing |
        | Hidden-request predictions within a bag | Range ≤ 0.000001 | Gate reported passing |
    runs:
    - started_at: '2026-09-15T02:16:03.996588+00:00'
      mode: smoke
      seed: 15
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 62ced399961d080505c59329596ad3767dc9bb626979be359aa15da5b22d2163
        script_sha256: 7f81b9118213f10591d191b93e52f855717cd5a3b08be9a5712abf5fa9f24c93
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 31fcdcf26561155d7b818d649ea6a8403986927026e2d4b3a0798fceb2f8a7c3
      metrics:
        intact/max/rmse: 0.24276711326097464
        intact/max/baseline_rmse: 0.23385342033136094
        intact/max/nrmse: 1.0381165813909556
        intact/mean/rmse: 0.874801602685532
        intact/mean/baseline_rmse: 0.07489171086510313
        intact/mean/nrmse: 11.680886877604479
        intact/min/rmse: 1.6565280672176041
        intact/min/baseline_rmse: 0.16915466453487707
        intact/min/nrmse: 9.792978938964191
        intact/sum/rmse: 0.6963204996029917
        intact/sum/baseline_rmse: 0.599133686920825
        intact/sum/nrmse: 1.1622122321007295
        permuted/max/rmse: 0.24370657285819872
        permuted/max/baseline_rmse: 0.23385342033136094
        permuted/max/nrmse: 1.042133882467386
        permuted/mean/rmse: 0.8748468615042658
        permuted/mean/baseline_rmse: 0.07489171086510313
        permuted/mean/nrmse: 11.681491201076478
        permuted/min/rmse: 1.6564830683180556
        permuted/min/baseline_rmse: 0.16915466453487707
        permuted/min/nrmse: 9.792712916743213
        permuted/sum/rmse: 0.6965404203539123
        permuted/sum/baseline_rmse: 0.599133686920825
        permuted/sum/nrmse: 1.1625792966736646
        hidden/max/rmse: 0.3520049073429206
        hidden/max/baseline_rmse: 0.23385342033136094
        hidden/max/nrmse: 1.505237369819709
        hidden/mean/rmse: 1.3600422330501925
        hidden/mean/baseline_rmse: 0.07489171086510313
        hidden/mean/nrmse: 18.160117018823826
        hidden/min/rmse: 2.5565300579880046
        hidden/min/baseline_rmse: 0.16915466453487707
        hidden/min/nrmse: 15.113565239348677
        hidden/sum/rmse: 0.6036948735460839
        hidden/sum/baseline_rmse: 0.599133686920825
        hidden/sum/nrmse: 1.007612969734185
        permutation_delta: 0.008511913246519127
        hidden_request_spread: 0.0
      checks:
        max intact nRMSE <= 0.20: false
        mean intact nRMSE <= 0.20: false
        min intact nRMSE <= 0.20: false
        sum intact nRMSE <= 0.20: false
        max permuted nRMSE <= 0.25: false
        mean permuted nRMSE <= 0.25: false
        min permuted nRMSE <= 0.25: false
        sum permuted nRMSE <= 0.25: false
        Permutation changes predictions by <= 0.05 target SD: true
        Hidden operations yield identical predictions within each bag: true
        At least three hidden operations have nRMSE >= 0.75: true
      outcome: not_met
      duration_seconds: 0.872
    - started_at: '2026-09-15T02:28:42.814023+00:00'
      mode: full
      seed: 15
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 2d5872818918750d5dd4a892f068fcd0cf560af376de7e361367382beb0a5b72
        script_sha256: 7f81b9118213f10591d191b93e52f855717cd5a3b08be9a5712abf5fa9f24c93
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-proof-scripts.RB4VJH/src/relflow
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 31fcdcf26561155d7b818d649ea6a8403986927026e2d4b3a0798fceb2f8a7c3
      metrics:
        intact/max/rmse: 0.016075673436341642
        intact/max/baseline_rmse: 0.23385342033136094
        intact/max/nrmse: 0.06874252005193277
        intact/mean/rmse: 0.008308030323814258
        intact/mean/baseline_rmse: 0.07489171086510313
        intact/mean/nrmse: 0.11093391014632975
        intact/min/rmse: 0.015463228388389033
        intact/min/baseline_rmse: 0.16915466453487707
        intact/min/nrmse: 0.09141473237470643
        intact/sum/rmse: 0.07823626348240274
        intact/sum/baseline_rmse: 0.599133686920825
        intact/sum/nrmse: 0.13058231441548301
        permuted/max/rmse: 0.016185715502419738
        permuted/max/baseline_rmse: 0.23385342033136094
        permuted/max/nrmse: 0.06921308005452828
        permuted/mean/rmse: 0.008212482576849044
        permuted/mean/baseline_rmse: 0.07489171086510313
        permuted/mean/nrmse: 0.10965809809902165
        permuted/min/rmse: 0.015627105714010044
        permuted/min/baseline_rmse: 0.16915466453487707
        permuted/min/nrmse: 0.09238353406912983
        permuted/sum/rmse: 0.07855264479525767
        permuted/sum/baseline_rmse: 0.599133686920825
        permuted/sum/nrmse: 0.1311103790524106
        hidden/max/rmse: 0.43109935007945926
        hidden/max/baseline_rmse: 0.23385342033136094
        hidden/max/nrmse: 1.8434596743062759
        hidden/mean/rmse: 1.0185653080899941
        hidden/mean/baseline_rmse: 0.07489171086510313
        hidden/mean/nrmse: 13.600507937716367
        hidden/min/rmse: 2.18709472988387
        hidden/min/baseline_rmse: 0.16915466453487707
        hidden/min/nrmse: 12.929556130761767
        hidden/sum/rmse: 0.4999611200004406
        hidden/sum/baseline_rmse: 0.599133686920825
        hidden/sum/nrmse: 0.8344733920236236
        permutation_delta: 0.0035254994047517196
        hidden_request_spread: 0.0
      checks:
        max intact nRMSE <= 0.20: true
        mean intact nRMSE <= 0.20: true
        min intact nRMSE <= 0.20: true
        sum intact nRMSE <= 0.20: true
        max permuted nRMSE <= 0.25: true
        mean permuted nRMSE <= 0.25: true
        min permuted nRMSE <= 0.25: true
        sum permuted nRMSE <= 0.25: true
        Permutation changes predictions by <= 0.05 target SD: true
        Hidden operations yield identical predictions within each bag: true
        At least three hidden operations have nRMSE >= 0.75: true
      outcome: met
      duration_seconds: 22.958
  P032:
    script: proofs/relational/grouped_peer_deviation.py
    page: docs/proofs/relational/grouped-peer-deviation.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/relational/peer_relative_inference/test_grouped_peer_deviation.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/relational/peer_relative_inference/support.py
      summary: |-
        The checked-in report records **0.054 nRMSE** on one deterministic CPU seed.
        Corrupting only group labels raises error to **1.424 nRMSE**, supporting
        dependence on the group/value relationship in this bounded task.
      insights: |-
        **The model uses an item’s group to compare its value with the right peers.** Rotating labels preserves value and label
        marginals while retaining original targets, and accuracy deteriorates.
        Independent group translations and whole-item permutations preserve the true
        relationship and pass their respective controls.

        The repeated decoder can combine retained collection evidence with its own
        aligned group and value. That provides a route for membership-dependent peer
        context without a supplied mean. However, every group has exactly two members,
        where deviation is half the difference between their values. This is narrower
        than arbitrary group averaging. Approximate invariance, broader cardinalities,
        and missing membership still need separate evidence.
      evidence: |-
        The protocol trains on 2,048 records, validates on 512, and tests 768 over 900
        CPU steps. Every record has three two-member groups. Errors and drift are
        normalized by the training-target mean baseline's test RMSE.

        | Check | Required gate | Recorded result |
        | --- | --- | --- |
        | Raw grouped deviation | nRMSE < 0.40 | 0.054 |
        | Independent group translations | nRMSE < 0.50 | 0.358 |
        | Corrupted labels | At least 0.25 nRMSE worse | 1.424 nRMSE |
        | Complete-item permutation drift | < 0.20 | 0.056 |
        | Corruption changes the true answer | Oracle nRMSE > 0.75 | 1.801 |
    runs:
    - started_at: '2026-09-15T02:16:08.255738+00:00'
      mode: smoke
      seed: 3720
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 214aba157d7c9f15e48d1db4be220c0504db173508c31bbe643d2f90b2cebd2f
        script_sha256: c52208c4ec14675db96c2b233454bb5c949bd9ff072c7cbbd137ea5126d8d645
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: b5a56c905a4c6c8288cc2cf6c596fc212632505595b40fede51184b46345a0c4
      metrics:
        intact_rmse: 0.8757277449836613
        baseline_rmse: 0.7508689291187257
        intact_nrmse: 1.1662857670931717
        corrupted_rmse: 0.8761525686649027
        corrupted_nrmse: 1.166851543175743
        oracle_corruption_nrmse: 1.8011994379885266
        translated_rmse: 0.8786807056759145
        translated_nrmse: 1.1702184916709737
        permutation_drift: 0.02689185364140891
      checks:
        Baseline RMSE > 0.000001: true
        Label corruption changes the oracle by > 0.75 nRMSE: true
        Training deviations are exactly centered: true
        Translation preserves target shape: true
        Translation preserves all targets: true
        Permutation preserves the target multiset: true
        Normalized permutation drift < 0.20: true
        Grouped deviation nRMSE < 0.40: false
        Group-translated nRMSE < 0.50: false
        Label corruption increases nRMSE by >= 0.25: false
        Finite calibration and model metrics: true
      outcome: not_met
      duration_seconds: 1.312
    - started_at: '2026-09-15T02:29:09.246487+00:00'
      mode: full
      seed: 3720
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: a10f24b8624a527c95bf8f3ce7018e8cbaf81185e82f903f2f6f38558f3bfe9a
        script_sha256: c52208c4ec14675db96c2b233454bb5c949bd9ff072c7cbbd137ea5126d8d645
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-proof-scripts.RB4VJH/src/relflow
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: b5a56c905a4c6c8288cc2cf6c596fc212632505595b40fede51184b46345a0c4
      metrics:
        intact_rmse: 0.03094794110295926
        baseline_rmse: 0.7508689291187257
        intact_nrmse: 0.04121616956408359
        corrupted_rmse: 1.1910543200116956
        corrupted_nrmse: 1.5862346593693835
        oracle_corruption_nrmse: 1.8011994379885266
        translated_rmse: 0.05739833194248641
        translated_nrmse: 0.07644254505224135
        permutation_drift: 0.021679712617358064
      checks:
        Baseline RMSE > 0.000001: true
        Label corruption changes the oracle by > 0.75 nRMSE: true
        Training deviations are exactly centered: true
        Translation preserves target shape: true
        Translation preserves all targets: true
        Permutation preserves the target multiset: true
        Normalized permutation drift < 0.20: true
        Grouped deviation nRMSE < 0.40: true
        Group-translated nRMSE < 0.50: true
        Label corruption increases nRMSE by >= 0.25: true
        Finite calibration and model metrics: true
      outcome: met
      duration_seconds: 26.181
  P033:
    script: proofs/relational/single_query_preserves_group_membership.py
    page: docs/proofs/relational/single-query-preserves-group-membership.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/relational/peer_relative_inference/test_single_query_preserves_group_membership.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/relational/peer_relative_inference/support.py
      summary: |-
        The checked-in report records **0.074 nRMSE**, worsening to **1.561** after
        group-label corruption, on one deterministic CPU seed. This supports the
        specific grouped-deviation route; it does not show that one vector preserves
        arbitrary collection information.
      insights: |-
        **A single collection summary can support per-item predictions when the decoder also sees each item’s group and value.** The result is not
        evidence that one vector losslessly stores an arbitrary collection or that
        all useful information passes through that vector alone.

        Corrupting group labels while retaining original targets removes accuracy,
        supporting use of the membership relationship in this compressed route.
        Translation and permutation controls from the retained-token case have not
        been repeated here. This model also trains for more steps than that case, so
        the recorded accuracy comparison is not an efficiency comparison. Validate
        summary capacity for the actual target and collection sizes before generalizing
        from these three two-member groups.
      evidence: |-
        The case uses the same 2,048 training, 512 validation, and 768 test records as
        the retained-token case, but trains for 1,200 CPU steps. nRMSE uses the constant
        training-target mean baseline; these results are not an efficiency comparison.

        | Check | Required gate | Recorded result |
        | --- | --- | --- |
        | Grouped deviation | nRMSE ≤ 0.20 | 0.074 |
        | Corrupted group labels | nRMSE ≥ 0.90 | 1.561 |
        | Corruption gap | At least 0.75 nRMSE | Approximately 1.487 |
        | Corruption changes the true answer | Oracle nRMSE > 0.75 | Gate reported passing |
    runs:
    - started_at: '2026-09-15T02:16:12.968141+00:00'
      mode: smoke
      seed: 3720
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 687b97acb5e8b32582ea68f03372e000e2e509b8b60aa7ae003132cee5754158
        script_sha256: fe5e6cda6001a993912ca7eb2ef0339ee3fa3c49b0f7f9618bf77aba6853fcdd
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: ed0e37033289539d08a0f6e5c37cbbdaad64a7afa96e7e77512abc64e174a3cd
      metrics:
        intact_rmse: 0.8341561749725644
        baseline_rmse: 0.7508689291187257
        intact_nrmse: 1.110921150981158
        corrupted_rmse: 0.8346241720007317
        corrupted_nrmse: 1.1115444249108926
        oracle_corruption_nrmse: 1.8011994379885266
      checks:
        Baseline RMSE > 0.000001: true
        Label corruption changes the oracle by > 0.75 nRMSE: true
        Single-summary grouped nRMSE <= 0.20: false
        Corrupted labels nRMSE >= 0.90: true
        Label corruption increases nRMSE by >= 0.75: false
        Finite calibration and model metrics: true
      outcome: not_met
      duration_seconds: 0.905
    - started_at: '2026-09-15T02:29:38.906782+00:00'
      mode: full
      seed: 3720
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: bfba4071bb16e91ed6bfc14b1e8f66ea54f3b7777ec49ec9b53ad05ee59f07c3
        script_sha256: fe5e6cda6001a993912ca7eb2ef0339ee3fa3c49b0f7f9618bf77aba6853fcdd
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-proof-scripts.RB4VJH/src/relflow
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: ed0e37033289539d08a0f6e5c37cbbdaad64a7afa96e7e77512abc64e174a3cd
      metrics:
        intact_rmse: 0.04267593323879911
        baseline_rmse: 0.7508689291187257
        intact_nrmse: 0.0568353964105116
        corrupted_rmse: 1.1652676743201078
        corrupted_nrmse: 1.5518922532694894
        oracle_corruption_nrmse: 1.8011994379885266
      checks:
        Baseline RMSE > 0.000001: true
        Label corruption changes the oracle by > 0.75 nRMSE: true
        Single-summary grouped nRMSE <= 0.20: true
        Corrupted labels nRMSE >= 0.90: true
        Label corruption increases nRMSE by >= 0.75: true
        Finite calibration and model metrics: true
      outcome: met
      duration_seconds: 37.115
  P034:
    script: proofs/relational/supplied_peer_mean_control.py
    page: docs/proofs/relational/supplied-peer-mean-control.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/relational/peer_relative_inference/test_supplied_peer_mean_control.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/relational/peer_relative_inference/support.py
      summary: |-
        The checked-in report records **0.030 nRMSE** on one deterministic CPU seed.
        Because the mean is supplied, success establishes local arithmetic and
        coordinate decoding; it does not establish learned averaging or peer selection.
      insights: |-
        **Supplying the peer mean makes this a test of local subtraction, not learned
        aggregation.** Each hidden deviation has both operands beside it at the same
        coordinate. The repeated decoder can use those visible siblings together with
        ancestor context to return an item-specific Number.

        This control helps localize a failure before asking a model to infer a mean
        or select peers. Its low error cannot establish either of those harder
        capabilities, because the input already supplies the statistic. The recorded
        failed compression contrast was exploratory and is not a general impossibility
        result. Compare the raw-value proof to assess aggregation; use this case to
        check whether local arithmetic and repeated decoding work.
      evidence: |-
        Training uses 1,024 records, validation 256, and evaluation 512, with six items
        per record and 600 CPU steps. nRMSE is relative to the constant training-target
        mean baseline.

        | Check | Required gate | Recorded result |
        | --- | --- | --- |
        | Local subtraction | nRMSE < 0.25 | 0.030 |
        | Numerical calibration | Finite errors; nondegenerate baseline | Gate reported passing |

        The historical source also records an exploratory compressed contrast at 1.000 nRMSE. It was not retained as a behavioral gate and does not establish that compression always fails.
    runs:
    - started_at: '2026-09-15T02:16:17.273254+00:00'
      mode: smoke
      seed: 3700
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 71bddf8132d18f65ccb25c6a7f9a19944e81eb12a126b584c42d684f16e78113
        script_sha256: 4cace2eb41ab88a71f1bc9b585123a421d4970358090b99fe7de405bcc5d0469
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: b9daad4e5b1827cb5da87393719da162e3431161105edf2eeda124d237114638
      metrics:
        intact_rmse: 0.9265824077626078
        baseline_rmse: 0.7110739767923704
        intact_nrmse: 1.3030745576464327
      checks:
        Baseline RMSE > 0.000001: true
        Supplied-mean subtraction nRMSE < 0.25: false
        Finite calibration and model metrics: true
      outcome: not_met
      duration_seconds: 0.788
    - started_at: '2026-09-15T02:30:19.496159+00:00'
      mode: full
      seed: 3700
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: f3022f2bb476ae3edea531b988bc93f235d22fc7907aad02be265fe63caac4c6
        script_sha256: 4cace2eb41ab88a71f1bc9b585123a421d4970358090b99fe7de405bcc5d0469
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-proof-scripts.RB4VJH/src/relflow
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: b9daad4e5b1827cb5da87393719da162e3431161105edf2eeda124d237114638
      metrics:
        intact_rmse: 0.011463659567015207
        baseline_rmse: 0.7110739767923704
        intact_nrmse: 0.016121613138941424
      checks:
        Baseline RMSE > 0.000001: true
        Supplied-mean subtraction nRMSE < 0.25: true
        Finite calibration and model metrics: true
      outcome: met
      duration_seconds: 17.817
  P035:
    script: proofs/relational/ungrouped_peer_deviation.py
    page: docs/proofs/relational/ungrouped-peer-deviation.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/relational/peer_relative_inference/test_ungrouped_peer_deviation.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/relational/peer_relative_inference/support.py
      summary: |-
        The checked-in report records **0.091 nRMSE**, rising to **0.283** after a
        common translation, on one deterministic CPU seed. Permutation drift is
        **0.101** in baseline-error units. Invariance is approximate at these gates.
      insights: |-
        **The model can compare each value with the collection’s average without being given that average.** Independently varying collection locations
        make an item's raw value alone a poor predictor. One learned branch summary
        works together with each repeated target's aligned visible value; the summary
        is not the decoder's only source of information.

        Common translations preserve the correct deviations, while complete-item
        permutations should move predictions with their items. Both controls pass,
        although error increases after translation and permutation drift is nonzero.
        The result supports approximate aggregation and routing for six-item
        collections. It does not establish exact set equivariance, variable-length
        behavior, or peer selection by category.
      evidence: |-
        The protocol uses 1,536 training, 384 validation, and 768 test records, each
        with six items, over 900 CPU steps. nRMSE and permutation drift are normalized
        by the constant training-target mean baseline's test RMSE.

        | Check | Required gate | Recorded result |
        | --- | --- | --- |
        | Raw peer deviation | nRMSE < 0.35 | 0.091 |
        | Common translation | nRMSE < 0.45 | 0.283 |
        | Complete-item permutation drift | < 0.20 | 0.101 |
    runs:
    - started_at: '2026-09-15T02:16:21.437497+00:00'
      mode: smoke
      seed: 3710
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 94205b0b7969106cc7f8b4127f4daff2fb705a02e4c5ffba78a9855fe4d2d18a
        script_sha256: 378e7fa709c17675af94bd36ec5c9c4714366d1ccc32c564bba1f9835ba949da
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: a889f86c2492f28476ab519d32d2c6775442cc0347d5393fb610c264313ff583
      metrics:
        intact_rmse: 0.7623859710556313
        baseline_rmse: 0.731698187191497
        intact_nrmse: 1.0419404945937125
        translated_rmse: 0.7647988210717267
        translated_nrmse: 1.045238097428232
        permutation_drift: 0.01002924168988225
      checks:
        Baseline RMSE > 0.000001: true
        Training deviations are exactly centered: true
        Translation preserves target shape: true
        Translation preserves all targets: true
        Permutation preserves the target multiset: true
        Normalized permutation drift < 0.20: true
        Ungrouped deviation nRMSE < 0.35: false
        Common-translated nRMSE < 0.45: false
        Finite calibration and model metrics: true
      outcome: not_met
      duration_seconds: 1.012
    - started_at: '2026-09-15T02:30:40.787058+00:00'
      mode: full
      seed: 3710
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 60d95a6154cb98ceffe4e920888974f8c91f232a70dd01d4053d948651ff683c
        script_sha256: 378e7fa709c17675af94bd36ec5c9c4714366d1ccc32c564bba1f9835ba949da
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-proof-scripts.RB4VJH/src/relflow
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: a889f86c2492f28476ab519d32d2c6775442cc0347d5393fb610c264313ff583
      metrics:
        intact_rmse: 0.015504269163810253
        baseline_rmse: 0.731698187191497
        intact_nrmse: 0.0211894322484532
        translated_rmse: 0.06316018432937254
        translated_nrmse: 0.08631999564164905
        permutation_drift: 0.0038441138616867295
      checks:
        Baseline RMSE > 0.000001: true
        Training deviations are exactly centered: true
        Translation preserves target shape: true
        Translation preserves all targets: true
        Permutation preserves the target multiset: true
        Normalized permutation drift < 0.20: true
        Ungrouped deviation nRMSE < 0.35: true
        Common-translated nRMSE < 0.45: true
        Finite calibration and model metrics: true
      outcome: met
      duration_seconds: 26.877
  P036:
    script: proofs/relational/category_identity.py
    page: docs/proofs/relational/category-identity.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/relational/sibling_entity_transfer/test_category_identity.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/relational/sibling_entity_transfer/__init__.py
      summary: |-
        The checked-in report records **0.0046 nRMSE** with token preservation and
        **0.0198** with fixed-width compression in the bounded two-category case.
        Both routes pass on the calibrated seed; larger category spaces are untested.
      insights: |-
        **The model transfers changing values by identity across independently ordered
        branches.** The two categories recur, but their source values are resampled
        for every row, so remembering one value per category cannot solve the task.
        Visible target identities can condition repeated decoder queries over source
        evidence routed through the root.

        Rotating target keys while retaining their original values removes accuracy,
        supporting keyed transfer rather than positional copying. Both retained and
        compressed routes work in this small persistent-vocabulary case. That does
        not establish compressed retrieval for unseen identities or larger category
        spaces. Treat it as evidence of a learned communication path; use an exact
        join when the matching rule and transferred value must be guaranteed.
      evidence: |-
        Each route trains on 2,048 records, validates on 512, and tests 1,024 over 600
        CPU steps. nRMSE divides target error by the error of predicting zero.

        | Check | Required gate | Recorded result |
        | --- | --- | --- |
        | Retained-token transfer | nRMSE ≤ 0.25 | 0.0046 |
        | Compressed Category control | nRMSE ≤ 0.25 | 0.0198 |
        | Broken target identities | nRMSE ≥ 0.80 | Gate reported passing |
        | Broken-key gap | At least 0.50 nRMSE | Gate reported passing |
    runs:
    - started_at: '2026-09-15T02:16:25.845731+00:00'
      mode: smoke
      seed: 17
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 74977865e512339bb5cf106f7386d69930ad8e388c1f5e5dbc6ab6fa7200b5ed
        script_sha256: f4fbf560e15c41cd8d90995f93b5a0e2468299c80e35daad69c6ff5f6c16c924
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 2ab0faeb6cf13b0c0171b7dafa5a0a3c5059897a0099f7d94950f06a62f9b335
      metrics:
        compressed_nrmse: 1.0569129682637717
        compressed_broken_nrmse: 1.0557399192276302
        preserved_nrmse: 0.9541982666300821
        preserved_broken_nrmse: 0.9526219724384437
      checks:
        Finite errors: true
        Preserved transfer calibration nRMSE <= 1.10: true
        Preserved transfer nRMSE <= 0.25: false
        Broken identities nRMSE >= 0.80: true
        Identity corruption increases nRMSE by >= 0.50: false
        Compressed Category transfer nRMSE <= 0.25: false
      outcome: not_met
      duration_seconds: 1.25
    - started_at: '2026-09-15T02:31:11.132537+00:00'
      mode: full
      seed: 17
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: cf819d1bef585c450ece5954dfc33af65a41b113031718b2e329be42f142cd90
        script_sha256: f4fbf560e15c41cd8d90995f93b5a0e2468299c80e35daad69c6ff5f6c16c924
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-proof-scripts.RB4VJH/src/relflow
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 2ab0faeb6cf13b0c0171b7dafa5a0a3c5059897a0099f7d94950f06a62f9b335
      metrics:
        compressed_nrmse: 0.0073523894407589085
        compressed_broken_nrmse: 1.4491613336984703
        preserved_nrmse: 0.026091784336623156
        preserved_broken_nrmse: 1.459659564323525
      checks:
        Finite errors: true
        Preserved transfer calibration nRMSE <= 1.10: true
        Preserved transfer nRMSE <= 0.25: true
        Broken identities nRMSE >= 0.80: true
        Identity corruption increases nRMSE by >= 0.50: true
        Compressed Category transfer nRMSE <= 0.25: true
      outcome: met
      duration_seconds: 37.629
  P037:
    script: proofs/relational/hash_identity.py
    page: docs/proofs/relational/hash-identity.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/relational/sibling_entity_transfer/test_hash_identity.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/relational/sibling_entity_transfer/__init__.py
      summary: |-
        The checked-in report records passing accuracy, broken-key, and compression
        comparison gates on one deterministic CPU seed with two entities. Exact Hash
        route scores are not recorded.
      insights: |-
        **Fresh identities can connect source values to targets in another branch
        without a learned identity vocabulary.** Shared Hash encoding preserves
        within-batch equality. Coordinate-local encoding binds each source key to its
        value, and visible target keys can condition repeated queries over source
        context carried through the root.

        Independent branch orders remove reliable positional copying. Rotating only
        target keys while retaining target values breaks accuracy, showing that the
        association matters. Retaining tokens also outperforms the tested compressed
        route, unlike the small persistent-Category control. This is evidence for two
        entities under one protocol, not an exact join or unlimited memory. Missing
        sources, duplicate identities, and collisions require explicit conventions
        and further tests.
      evidence: |-
        Both routes use 2,048 training, 512 validation, and 1,024 test records with
        600 CPU steps each. nRMSE is relative to predicting zero for every value.

        | Check | Required gate | Recorded result |
        | --- | --- | --- |
        | Retained-token transfer | nRMSE ≤ 0.25 | Gate reported passing |
        | Improvement over compression | At least 0.15 nRMSE | Gate reported passing |
        | Broken target identities | nRMSE ≥ 0.80 | Gate reported passing |
        | Broken-key gap | At least 0.50 nRMSE | Gate reported passing |
    runs:
    - started_at: '2026-09-15T02:16:30.528071+00:00'
      mode: smoke
      seed: 17
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 3b6916162868132177eb181a2fc1857a4fabf105cb8aa04fd7c302b6fbac7298
        script_sha256: 6041f0d886b9eed53cb50017003dbb7b7537de816d04575d65cbd9282c9ab544
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: d6ded589e78dd1d78616e27fbe906f2c5f43a66bb0872bd212b8f24663d3a259
      metrics:
        compressed_nrmse: 1.0592964517256729
        compressed_broken_nrmse: 1.054979311079157
        preserved_nrmse: 1.0359586409059693
        preserved_broken_nrmse: 1.0312150015201824
      checks:
        Finite errors: true
        Preserved transfer calibration nRMSE <= 1.10: true
        Preserved transfer nRMSE <= 0.25: false
        Broken identities nRMSE >= 0.80: true
        Identity corruption increases nRMSE by >= 0.50: false
        Preserving Hash tokens improves nRMSE by >= 0.15: false
      outcome: not_met
      duration_seconds: 1.295
    - started_at: '2026-09-15T02:31:52.200292+00:00'
      mode: full
      seed: 17
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 8c2c1cfe503e109ba3f9592952c0b0242c5ed9aed61bafc84f4dcae324ade526
        script_sha256: 6041f0d886b9eed53cb50017003dbb7b7537de816d04575d65cbd9282c9ab544
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-proof-scripts.RB4VJH/src/relflow
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: d6ded589e78dd1d78616e27fbe906f2c5f43a66bb0872bd212b8f24663d3a259
      metrics:
        compressed_nrmse: 0.7247225475245465
        compressed_broken_nrmse: 0.7231541658372164
        preserved_nrmse: 0.08587741211423401
        preserved_broken_nrmse: 1.4392457107919758
      checks:
        Finite errors: true
        Preserved transfer calibration nRMSE <= 1.10: true
        Preserved transfer nRMSE <= 0.25: true
        Broken identities nRMSE >= 0.80: true
        Identity corruption increases nRMSE by >= 0.50: true
        Preserving Hash tokens improves nRMSE by >= 0.15: true
      outcome: met
      duration_seconds: 37.497
  P038:
    script: proofs/state/null_versus_zero.py
    page: docs/proofs/state/null-versus-zero.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/state/missingness/test_null_versus_zero.py
      summary: |-
        The source records one seed passing the signal, independent-validity, and
        null-to-zero controls. It does not record the individual metric values.
      insights: |-
        **A null and a real zero carry different information, even when every present number is zero.** Number encodes value state separately from continuous content, giving the model a route to recognize missingness.

        The recorded signal model clears both AUC and accuracy gates. Independent validity stays at chance, and replacing nulls with zeros destroys the signal while retaining the original labels. The latter creates identical inputs that require different answers.

        Preserve nulls when that distinction matters. Imputation can erase useful information before training begins. This proof establishes the representation's capability; it does not show that missingness is predictive in every application or cover every kind of absent data.
      evidence: |-
        | Evaluation | Required gate | Recorded result |
        | --- | --- | --- |
        | Validity signal | AUC ≥ 0.99; accuracy ≥ 0.98 | Gates reported passing |
        | Independent validity | AUC 0.42–0.58; accuracy 0.45–0.55 | Gates reported passing |
        | Nulls replaced with zero | AUC 0.42–0.58; accuracy 0.45–0.55 | Gates reported passing |
        | Signal versus independent validity | AUC improvement ≥ 0.40 | Gate reported passing |

        Accuracy uses a fixed probability threshold of 0.5. The experiment supports
        preserving nulls when missingness is meaningful; filling them with a real
        value can erase the only available signal.
    runs:
    - started_at: '2026-09-15T02:16:35.227282+00:00'
      mode: smoke
      seed: 11
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: f8d8f0b81af72508d75a3cfa5e48b475bc8c949e8a455dcceea3a47fb988770b
        script_sha256: 7baf07e28cf2b94670a1d7887577adbb24ac6f9707745ef9ed186c4d9e0b2028
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: b3c605573856a1df5e385fe8d903293dadb821731e05695d736b3f7345b4e80e
      metrics:
        state_auc: 1.0
        state_accuracy: 1.0
        independent_auc: 0.49365234375
        independent_accuracy: 0.49365234375
        prefilled_auc: 0.5
        prefilled_accuracy: 0.5
        auc_gap: 0.50634765625
      checks:
        Null state reaches 0.99 AUC: true
        Null state reaches 0.98 accuracy: true
        Independent validity AUC remains between 0.42 and 0.58: true
        Independent validity accuracy remains between 0.45 and 0.55: true
        Null-to-zero AUC remains between 0.42 and 0.58: true
        Null-to-zero accuracy remains between 0.45 and 0.55: true
        State exceeds its control by at least 0.40 AUC: true
      outcome: met
      duration_seconds: 1.18
    - started_at: '2026-09-15T02:25:41.822592+00:00'
      mode: full
      seed: 11
      steps_override: null
      accelerator: cpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 96266262609686640fc4fd3293e42c70865a5abcb7a1de6fc3a127d4835c9f9c
        script_sha256: 7baf07e28cf2b94670a1d7887577adbb24ac6f9707745ef9ed186c4d9e0b2028
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-proof-scripts.RB4VJH/src/relflow
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: b3c605573856a1df5e385fe8d903293dadb821731e05695d736b3f7345b4e80e
      metrics:
        state_auc: 1.0
        state_accuracy: 1.0
        independent_auc: 0.50634765625
        independent_accuracy: 0.5
        prefilled_auc: 0.5
        prefilled_accuracy: 0.5
        auc_gap: 0.49365234375
      checks:
        Null state reaches 0.99 AUC: true
        Null state reaches 0.98 accuracy: true
        Independent validity AUC remains between 0.42 and 0.58: true
        Independent validity accuracy remains between 0.45 and 0.55: true
        Null-to-zero AUC remains between 0.42 and 0.58: true
        Null-to-zero accuracy remains between 0.45 and 0.55: true
        State exceeds its control by at least 0.40 AUC: true
      outcome: met
      duration_seconds: 2.408
    - started_at: '2026-09-15T02:32:33.163989+00:00'
      mode: full
      seed: 11
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 96266262609686640fc4fd3293e42c70865a5abcb7a1de6fc3a127d4835c9f9c
        script_sha256: 7baf07e28cf2b94670a1d7887577adbb24ac6f9707745ef9ed186c4d9e0b2028
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-proof-scripts.RB4VJH/src/relflow
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: b3c605573856a1df5e385fe8d903293dadb821731e05695d736b3f7345b4e80e
      metrics:
        state_auc: 1.0
        state_accuracy: 1.0
        independent_auc: 0.50634765625
        independent_accuracy: 0.5
        prefilled_auc: 0.5
        prefilled_accuracy: 0.5
        auc_gap: 0.49365234375
      checks:
        Null state reaches 0.99 AUC: true
        Null state reaches 0.98 accuracy: true
        Independent validity AUC remains between 0.42 and 0.58: true
        Independent validity accuracy remains between 0.45 and 0.55: true
        Null-to-zero AUC remains between 0.42 and 0.58: true
        Null-to-zero accuracy remains between 0.45 and 0.55: true
        State exceeds its control by at least 0.40 AUC: true
      outcome: met
      duration_seconds: 3.926
  P039:
    script: proofs/structure/attention_learns_fixed_width_sum.py
    page: docs/proofs/structure/attention-learns-fixed-width-sum.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/structure/hierarchical_statistics/test_attention_learns_fixed_width_sum.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/structure/hierarchical_statistics/support.py
      summary: |-
        The source records one seed clearing the normalized-error gate. It does not
        record the exact error. This is a fixed-length positive control, with no
        nested grouping or variable-length generalization claim.
      insights: |-
        **The model can learn to approximately add six visible numbers.** All six independently drawn values are visible, making this a useful positive control before testing more complicated nested statistics.

        The recorded model clears normalized RMSE below 0.25 against a constant training-mean baseline. That demonstrates substantially lower held-out error, but no exact error value or prediction-level permutation control is reported. The task always contains six items.

        Do not extend this result to variable cardinality, arbitrary hierarchy depth, or exact arithmetic. The nested-cardinality case asks whether local structure survives successive reductions; this control only establishes that the model can learn a numerical sum at one level.
      evidence: |-
        | Evaluation | Required gate | Recorded result |
        | --- | --- | --- |
        | Held-out total prediction | Normalized RMSE < 0.25 | Gate reported passing |

        Normalized RMSE is model RMSE divided by the RMSE of always predicting the
        training target mean. Clearing 0.25 means at least a 75% reduction in this
        error measure against that baseline.

        The test evaluates the sum directly. Although the target is mathematically
        unchanged by transaction reordering, this implementation does not assert a
        prediction-level permutation check.
    runs:
    - started_at: '2026-09-15T02:16:39.941841+00:00'
      mode: smoke
      seed: 2600
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 4f1b50be78a216f337ac47c38eee09faae0b211abc4a8ef7c5af075296ee988a
        script_sha256: ce6942ec566a85121547afac7ec3726d3f39bebfdeab5164141e0c45bb6314c3
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 1579dd7d142c8799060b7c2f06fbc33b2ee7755a721f37420412d8c1e3500f76
      metrics:
        steps: 2
        baseline_rmse: 1.395327666226233
        validate_rmse: 1.3016960558014405
        test_rmse: 1.219479366755207
        test_nrmse: 0.8739734732368486
        target_std: 1.3947314823294805
      checks:
        Test normalized RMSE is below 0.25: false
      outcome: not_met
      duration_seconds: 0.669
    - started_at: '2026-09-15T02:32:40.570072+00:00'
      mode: full
      seed: 2600
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 4d533a8f738c4ada1fb839506ccb931b32a981f27d52ecef16b4645f5b33eb0e
        script_sha256: ce6942ec566a85121547afac7ec3726d3f39bebfdeab5164141e0c45bb6314c3
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-proof-scripts.RB4VJH/src/relflow
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 1579dd7d142c8799060b7c2f06fbc33b2ee7755a721f37420412d8c1e3500f76
      metrics:
        steps: 400
        baseline_rmse: 1.395327666226233
        validate_rmse: 0.023647580528284976
        test_rmse: 0.023375447649324754
        test_nrmse: 0.0167526583290256
        target_std: 1.3947314823294805
      checks:
        Test normalized RMSE is below 0.25: true
      outcome: met
      duration_seconds: 10.593
  P040:
    script: proofs/structure/attention_preserves_nested_cardinality.py
    page: docs/proofs/structure/attention-preserves-nested-cardinality.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/structure/hierarchical_statistics/test_attention_preserves_nested_cardinality.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/structure/hierarchical_statistics/support.py
      summary: |-
        The source records one seed beating the flattened-information oracle and
        recovering about **84%** of the true difference between regrouped pairs.
        Evidence is limited to two partitions of repeated equal values.
      insights: |-
        **How values are grouped can change the answer even when the values themselves stay the same.** The matched observations contain the same six amounts but divide them into different session sizes, changing the largest session total.

        Attention reduction includes an additive sum and count contribution alongside normalized attention. The recorded model beats the best flattened-information prediction and recovers about 84% of the true pair difference. The difference metric uses absolute magnitudes; the separate RMSE gate checks closeness to actual targets.

        This supports the tested route through two partitions of equal values. It does not establish exact nested arithmetic or arbitrary capacity. Varying amounts within sessions and testing more partitions remain necessary extensions.
      evidence: |-
        | Evaluation | Required gate | Recorded result |
        | --- | --- | --- |
        | Held-out RMSE versus flattened oracle | Less than 75% of oracle RMSE | Gate reported passing |
        | Mean absolute predicted pair difference | At least 75% of true pair difference | Approximately 84% recovered |

        The difference metric uses absolute magnitudes. The separate RMSE gate
        checks whether predictions also approach their actual targets. This supports
        the tested learned hierarchy, not exact arithmetic for arbitrary collections.
    runs:
    - started_at: '2026-09-15T02:16:44.262970+00:00'
      mode: smoke
      seed: 2601
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: e1d35c792ec05ebf703fc1845e370643161bfdfdd922ecd91d71346231885d1a
        script_sha256: e8c9b24b1f5c60412d8fc1e63466176cc32a1dbcfb2428c80f7f4e546839ee6b
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 6b34f02b6be45d51b86a74a95ca42dc32b49eeeca4b4810c5042b00815fb1ec9
      metrics:
        steps: 2
        flat_oracle_rmse: 1.0647465517891985
        test_rmse: 1.912723549487529
        predicted_pair_delta: 0.0004965085536241531
        true_pair_delta: 2.010377930933031
        recovered_pair_delta_fraction: 0.00024697274377346543
      checks:
        Attention improves over the flattened oracle by at least 25%: false
        Attention recovers at least 75% of the pair delta: false
      outcome: not_met
      duration_seconds: 0.624
    - started_at: '2026-09-15T02:32:54.629950+00:00'
      mode: full
      seed: 2601
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: ea54b5d38d1dc4dfbc86298f368ee6648c70ca67934a913cf4e0fd9b4d3ff914
        script_sha256: e8c9b24b1f5c60412d8fc1e63466176cc32a1dbcfb2428c80f7f4e546839ee6b
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-proof-scripts.RB4VJH/src/relflow
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 6b34f02b6be45d51b86a74a95ca42dc32b49eeeca4b4810c5042b00815fb1ec9
      metrics:
        steps: 80
        flat_oracle_rmse: 1.0647465517891985
        test_rmse: 0.2992299183830936
        predicted_pair_delta: 1.8223806042224169
        true_pair_delta: 2.010377930933031
        recovered_pair_delta_fraction: 0.9064865745798536
      checks:
        Attention improves over the flattened oracle by at least 25%: true
        Attention recovers at least 75% of the pair delta: true
      outcome: met
      duration_seconds: 2.859
  P041:
    script: proofs/structure/mean_erases_cardinality.py
    page: docs/proofs/structure/mean-erases-cardinality.py
    historical:
      status: Expected limitation
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/structure/hierarchical_statistics/test_mean_erases_cardinality.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/structure/hierarchical_statistics/support.py
      summary: |-
        The source records one seed learning the average while producing identical
        total predictions for one and six equal values. Passing demonstrates both
        a useful average representation and deliberate count erasure in this route.
      insights: |-
        **With branch attention disabled, averaging identical encoded values erases how many copies were present.** One amount and six copies yield the same branch summary, so a downstream decoder cannot recover their different totals from that summary.

        The recorded model learns the average but produces identical total predictions for the explicit one-versus-six pair. This is an expected information boundary, not simply insufficient training. Mean reduces encoded tokens rather than calculating a raw numerical average directly.

        Choose a summary that retains what the parent needs. The result specifically uses `attention=None`; preceding attention can change the available information. Exact business totals belong in preprocessing, while learned alternatives need their own behavioral checks.
      evidence: |-
        | Evaluation | Required gate | Recorded result |
        | --- | --- | --- |
        | Held-out mean prediction | Normalized RMSE < 0.25 | Gate reported passing |
        | Total predictions for one versus six equal amounts | Equal within absolute tolerance 0.000001 | Gate reported passing |

        Normalized RMSE divides model error by the error of predicting the training
        target mean. `Mean` reduces encoded tokens; it is not an exact raw-number
        averaging operator. This count-erasure result specifically disables branch
        attention and does not characterize every architecture that uses Mean.
    runs:
    - started_at: '2026-09-15T02:16:48.536440+00:00'
      mode: smoke
      seed: 2599
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 75235cae5c0e5c0258784aed316466a0a0c1d98394714a0e1396b453cd6b5cb6
        script_sha256: a20f560bbcd9e75aa15ba4dbf243a45a13ad4a00c0dfd1dc6efee4bb6d0fadb3
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 6e8c37bb90f8785db9e235c6d6bf104191faf7329c8b31ed085290ebbcdcb1b2
      metrics:
        steps: 2
        mean_baseline_rmse: 0.2930153390602116
        mean_rmse: 0.1510877962918501
        mean_nrmse: 0.5156310136405627
        paired_total_predictions:
        - 0.8707736730575562
        - 0.8707737326622009
      checks:
        Mean normalized RMSE is below 0.25: false
        One and six equal values produce the same total prediction: true
      outcome: not_met
      duration_seconds: 0.655
    - started_at: '2026-09-15T02:33:00.987438+00:00'
      mode: full
      seed: 2599
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: d0d1e7ff37eb0e1e36df063b960ad31ae3dadad9f8fc9d91ca5b1677b84a5262
        script_sha256: a20f560bbcd9e75aa15ba4dbf243a45a13ad4a00c0dfd1dc6efee4bb6d0fadb3
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-proof-scripts.RB4VJH/src/relflow
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 6e8c37bb90f8785db9e235c6d6bf104191faf7329c8b31ed085290ebbcdcb1b2
      metrics:
        steps: 300
        mean_baseline_rmse: 0.2930153390602116
        mean_rmse: 0.004598747738179377
        mean_nrmse: 0.015694563134233674
        paired_total_predictions:
        - 4.13906192779541
        - 4.139062881469727
      checks:
        Mean normalized RMSE is below 0.25: true
        One and six equal values produce the same total prediction: true
      outcome: met
      duration_seconds: 7.367
  P042:
    script: proofs/temporal/business_window_requires_composition.py
    page: docs/proofs/temporal/business-window-requires-composition.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/temporal/datepart_periodicity/test_business_window_requires_composition.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/temporal/datepart_periodicity/support.py
      summary: |-
        The source records accuracy **1.000** with both coordinates, compared with
        **0.500** from weekday and **0.750** from hour alone. Evidence covers one
        deterministic model seed.
      insights: |-
        **Weekday and hour together identify a business window that neither coordinate resolves alone.** A weekday evening and a weekend morning each share one coordinate with an open observation, so either single-coordinate representation loses a necessary distinction.

        The recorded combined accuracy is 1.000, compared with 0.500 from weekday and 0.750 from hour alone. The weekday fit does not reach all the skill available from its marginal signal; these are observed fits, not three equally optimized solutions.

        This supports learned coordinate composition in the constructed calendar. It does not cover holidays, timezones, or daylight-saving rules. Derive fixed business logic exactly in preprocessing when learning an approximation is unnecessary.
      evidence: |-
        | Visible coordinates | Required gate | Recorded accuracy |
        | --- | --- | --- |
        | Weekday | At most 0.82 | 0.500 |
        | Hour | At most 0.82 | 0.750 |
        | Weekday and hour | At least 0.95 | 1.000 |
        | Improvement over stronger control | At least 0.15 | 0.250 |

        The weekday-only fit does not reach the approximately 0.75 accuracy available
        from its marginal signal. The result still establishes that the combined
        representation clears the target gate; it does not claim equally complete
        optimization of every control.

        For a fixed business-calendar rule, derive the result exactly in
        [preprocessing](../../guides/preprocessors.qmd). Here, learning the rule
        serves as a controlled test of coordinate composition.
    runs:
    - started_at: '2026-09-15T02:16:52.837717+00:00'
      mode: smoke
      seed: 59
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: f9d64288f0f466605e863191ccaaa604439c5c5c9111328694622446bd14eee4
        script_sha256: 561c2cce30d0fa236db8be35d37ffa372273d89af735ae9dcaf6d24692dd5124
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 6417616c6292f48eaa814977e23b11536760703c6530296ab922189ebe603d79
      metrics:
        day_only_accuracy: 0.5
        hour_only_accuracy: 0.5
        composed_accuracy: 0.900390625
        accuracy_gap: 0.400390625
      checks:
        Weekday-only accuracy is at most 0.82: true
        Hour-only accuracy is at most 0.82: true
        Combined coordinates reach 0.95 accuracy: false
        Composition improves over either coordinate by at least 0.15: true
      outcome: not_met
      duration_seconds: 1.127
    - started_at: '2026-09-15T02:33:11.826682+00:00'
      mode: full
      seed: 59
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 7cbac86d045a9eb1a03079a4157637b249bc961a9ea22c63256c06bbcce68823
        script_sha256: 561c2cce30d0fa236db8be35d37ffa372273d89af735ae9dcaf6d24692dd5124
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-proof-scripts.RB4VJH/src/relflow
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 6417616c6292f48eaa814977e23b11536760703c6530296ab922189ebe603d79
      metrics:
        day_only_accuracy: 0.75
        hour_only_accuracy: 0.75
        composed_accuracy: 1.0
        accuracy_gap: 0.25
      checks:
        Weekday-only accuracy is at most 0.82: true
        Hour-only accuracy is at most 0.82: true
        Combined coordinates reach 0.95 accuracy: true
        Composition improves over either coordinate by at least 0.15: true
      outcome: met
      duration_seconds: 11.27
  P043:
    script: proofs/temporal/leap_boundary_requires_context.py
    page: docs/proofs/temporal/leap-boundary-requires-context.py
    historical:
      status: Expected limitation
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/temporal/datepart_periodicity/test_leap_boundary_requires_context.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/temporal/datepart_periodicity/support.py
      summary: |-
        The recorded single-seed accuracy is **0.500** from day-of-year alone and
        **1.000** after adding week-of-month. Passing confirms an expected boundary
        and a successful way to restore the missing distinction.
      insights: |-
        **Day 60 can be February 29 or March 1, so its number alone cannot identify the month.** With balanced labels and only day-of-year visible, the model has no information that can resolve the two answers.

        The recorded accuracy is 0.500 for that route and 1.000 after adding week-of-month, which separates the dates. The models use different training budgets, but additional optimization alone cannot resolve identical inputs with conflicting labels. This is a representation boundary with a positive control.

        Supply the needed coordinate or calculate exact calendar results in preprocessing. Success with week-of-month does not establish general leap-year reasoning, timezone semantics, or reliability for every alternative coordinate choice.
      evidence: |-
        | Visible coordinates | Required gate | Recorded accuracy |
        | --- | --- | --- |
        | Day-of-year | 0.49–0.51 | 0.500 |
        | Day-of-year and week-of-month | At least 0.95 | 1.000 |
        | Improvement from added context | At least 0.40 | 0.500 |

        For exact month extraction, use a month coordinate or
        [preprocessing](../../guides/preprocessors.qmd). The proof examines what a
        learned representation can distinguish when that direct answer is omitted.
    runs:
    - started_at: '2026-09-15T02:16:57.612852+00:00'
      mode: smoke
      seed: 53
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: b2f7e05a951aff1161e8460b1a9ff353ad869b084e68addee4b991fd78758323
        script_sha256: cdeb97aaf83051e0807a6ec177335ad911e0845c5148ebfa1967edfec648aebc
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: be99626909e5bdc858197826e8739bbd8ce65e40403f3fbb6e0bf1b80b206bca
      metrics:
        day_only_accuracy: 0.5
        with_week_of_month_accuracy: 1.0
        accuracy_gap: 0.5
      checks:
        Day-of-year accuracy remains between 0.49 and 0.51: true
        Visible week-of-month accuracy reaches 0.95: true
        Visible week-of-month improves accuracy by at least 0.40: true
      outcome: met
      duration_seconds: 0.755
    - started_at: '2026-09-15T02:33:26.590070+00:00'
      mode: full
      seed: 53
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 861d768941ab50df484595ff65b2015661898a445630cbc59a9a5c6d36124ddd
        script_sha256: cdeb97aaf83051e0807a6ec177335ad911e0845c5148ebfa1967edfec648aebc
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-proof-scripts.RB4VJH/src/relflow
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: be99626909e5bdc858197826e8739bbd8ce65e40403f3fbb6e0bf1b80b206bca
      metrics:
        day_only_accuracy: 0.5
        with_week_of_month_accuracy: 1.0
        accuracy_gap: 0.5
      checks:
        Day-of-year accuracy remains between 0.49 and 0.51: true
        Visible week-of-month accuracy reaches 0.95: true
        Visible week-of-month improves accuracy by at least 0.40: true
      outcome: met
      duration_seconds: 3.024
  P044:
    script: proofs/temporal/month_from_day_of_year.py
    page: docs/proofs/temporal/month-from-day-of-year.py
    historical:
      status: Provisional pass
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/temporal/datepart_periodicity/test_month_from_day_of_year.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/temporal/datepart_periodicity/support.py
      summary: |-
        The source records held-out accuracy of **0.967**, falling to **0.110** after
        timestamp permutation. These are results from one deterministic model seed.
      insights: |-
        **In non-leap years, the day number is enough to learn which month a date belongs to.** DateParts supplies only day-of-year, and the model learns its month intervals from odd dates before testing on even dates in unseen years.

        The recorded accuracy is 0.967, dropping to 0.110 when timestamps are permuted while labels stay fixed. That supports use of the date–month relationship rather than success from label frequencies alone. Evidence covers one model seed and the deliberately restricted calendar.

        For exact month extraction, expose the month coordinate or derive it in preprocessing. This proof tests learned periodicity, not general calendar reasoning; leap-year ambiguity requires additional information.
      evidence: |-
        | Evaluation | Required gate | Recorded accuracy |
        | --- | --- | --- |
        | Held-out dates and years | At least 0.90 | 0.967 |
        | Permuted timestamps | At most 0.20 | 0.110 |
        | Original minus permuted | At least 0.65 | 0.857 |

        This is a learned periodicity experiment. For an application that simply
        needs the month, expose `month_of_year` or calculate it exactly in
        [preprocessing](../../guides/preprocessors.qmd). The
        [leap boundary](leap-boundary-requires-context.qmd) explains why this
        experiment deliberately excludes leap years.
    runs:
    - started_at: '2026-09-15T02:17:02.045083+00:00'
      mode: smoke
      seed: 41
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 0fe6738a407c52e3e325562948f4799ea000018eec419d7c20a96975ae240aa6
        script_sha256: 03b24a65c18f22b9fe7716f6cecd09449ab96557cca25763fa21a90a77708d1b
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 6ea6c4b6783b52e864c4bb7aa57dced26d1d13671aa74c77a5c3fdd10f789f26
      metrics:
        periodic_accuracy: 0.16033495962619781
        permuted_accuracy: 0.0983966514468193
        accuracy_gap: 0.06193830817937851
      checks:
        Unseen-date month accuracy reaches 0.90: false
        Timestamp permutation accuracy is at most 0.20: true
        Original dates exceed permutation by at least 0.65 accuracy: false
      outcome: not_met
      duration_seconds: 0.668
    - started_at: '2026-09-15T02:33:33.068764+00:00'
      mode: full
      seed: 41
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: cae4dc037ec67b465f2ab85f206e430dced41943a92a823f44372077271946b9
        script_sha256: 03b24a65c18f22b9fe7716f6cecd09449ab96557cca25763fa21a90a77708d1b
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-proof-scripts.RB4VJH/src/relflow
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: 6ea6c4b6783b52e864c4bb7aa57dced26d1d13671aa74c77a5c3fdd10f789f26
      metrics:
        periodic_accuracy: 0.915900707244873
        permuted_accuracy: 0.10437091439962387
        accuracy_gap: 0.8115297928452492
      checks:
        Unseen-date month accuracy reaches 0.90: true
        Timestamp permutation accuracy is at most 0.20: true
        Original dates exceed permutation by at least 0.65 accuracy: true
      outcome: met
      duration_seconds: 8.037
  P045:
    script: proofs/temporal/weekday_requires_year_context.py
    page: docs/proofs/temporal/weekday-requires-year-context.py
    historical:
      status: Expected limitation
      source_revision: 810b3fe3b0b25c2c7a718571d83f6006f23110c3
      sources:
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/temporal/datepart_periodicity/test_weekday_requires_year_context.py
      - https://github.com/relflow/relflow/blob/810b3fe/proofs/temporal/datepart_periodicity/support.py
      summary: |-
        The source records accuracy **0.143** with day-of-year alone and **1.000**
        after explicitly exposing day-of-week. The test passes by confirming both
        the information boundary and the positive control, for one model seed.
      insights: |-
        **The same day number can fall on different weekdays in different years.** Every represented ordinal is balanced across all seven labels, making identical visible inputs require different answers.

        The recorded day-only accuracy is 0.143, matching the one-seventh boundary. Adding `day_of_week` raises it to 1.000 by exposing the missing distinction directly. Despite the source filename, this control does not test learning weekday arithmetic from a year coordinate.

        Select DateParts coordinates according to what the target requires. A complete source timestamp does not mean all its information reaches the model. The passing test confirms an expected limitation and a successful added-coordinate control, not universal failure or general calendar reasoning.
      evidence: |-
        | Visible coordinates | Required gate | Recorded accuracy |
        | --- | --- | --- |
        | Day-of-year | At most 0.20 | 0.143 |
        | Day-of-year and day-of-week | At least 0.95 | 1.000 |
        | Improvement from weekday | At least 0.70 | 0.857 |

        A complete source timestamp does not imply a complete encoded timestamp.
        [DateParts](../../data-types/dateparts.qmd) retains the coordinates requested
        by the schema; omitted distinctions need to be supplied explicitly.
    runs:
    - started_at: '2026-09-15T02:17:06.356064+00:00'
      mode: smoke
      seed: 47
      steps_override: 2
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: f932ea49261b3d9c86dd0947bad78be64e7b6df8f7b90bfd98394434176f5954
        script_sha256: 4b3a05db80bcfd8f2912738c433ed97bc9210457a3de47c4d6458ef4b422f608
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: df3bf9be7aebd8408418a9dfc723090bac4ec1356f74c45f232a56d39f4cde1f
      metrics:
        day_only_accuracy: 0.1428549438714981
        with_weekday_accuracy: 0.27595964074134827
        accuracy_gap: 0.13310469686985016
      checks:
        Day-of-year accuracy is at most 0.20: true
        Visible weekday accuracy reaches 0.95: false
        Visible weekday improves accuracy by at least 0.70: false
      outcome: not_met
      duration_seconds: 0.827
    - started_at: '2026-09-15T02:33:44.589034+00:00'
      mode: full
      seed: 47
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 902065690b27c7df4f8149bc457b5b5fcaa2380ca4bf9806c00aa25c3f443d66
        script_sha256: 4b3a05db80bcfd8f2912738c433ed97bc9210457a3de47c4d6458ef4b422f608
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-proof-scripts.RB4VJH/src/relflow
        packages:
          relflow: 0.2.1
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
        code_sha256: df3bf9be7aebd8408418a9dfc723090bac4ec1356f74c45f232a56d39f4cde1f
      metrics:
        day_only_accuracy: 0.1428549438714981
        with_weekday_accuracy: 1.0
        accuracy_gap: 0.8571450561285019
      checks:
        Day-of-year accuracy is at most 0.20: true
        Visible weekday accuracy reaches 0.95: true
        Visible weekday improves accuracy by at least 0.70: true
      outcome: met
      duration_seconds: 3.722
  P046:
    script: proofs/mutations/neutral_edits_preserve_learning.py
    page: docs/proofs/mutations/neutral-edits-preserve-learning.py
    historical:
      status: Provisional pass
      source_revision: null
      sources: []
      summary: New experiment; no historical run predates registration.
      insights: 'Initial hypothesis: Neutral edits preserve a learned numerical and categorical relationship.'
      evidence: No historical measurements. See recorded runs for actual outcomes.
    runs:
    - started_at: '2026-09-15T17:53:00.092179+00:00'
      mode: smoke
      seed: 4601
      steps_override: 2
      accelerator: cpu
      threads: 1
      provenance:
        revision: 5d985953fd0416bc5982a3518d8f43cadb52110c
        source_sha256: 82f4b5e5a25603c42ab071ce91f000d3515c904c046a425b2a229bc5f562ae61
        script_sha256: e006fbd5d1e18fe5c35bc5d8cd0ab3867855985bbc54aeae57fe8d84c4123e9d
        code_sha256: f3a2f9c73440410deac5725a9f49e5ec28b78e148071179f73fc9681a0c21f69
        python: 3.12.10
        platform: macOS-26.5.2-arm64-arm-64bit
        host: Granthams-MacBook-Pro.local
        relflow_path: /Users/grantham/Desktop/relflow/src/relflow
        packages:
          relflow: 0.2.2
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: null
        gpu: null
      metrics:
        source:
          rmse: 0.6351351040185311
          baseline_rmse: 0.8103651362027426
          nrmse: 0.7837641029261021
        source_steps: 2
        edits:
        - edit: cycle 1 metadata
          max_prediction_drift: 0.0
          nrmse: 0.7837641029261021
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 1 inactive extension
          max_prediction_drift: 0.0
          nrmse: 0.7837641029261021
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 1 inactive deletion
          max_prediction_drift: 0.0
          nrmse: 0.7837641029261021
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 2 metadata
          max_prediction_drift: 0.0
          nrmse: 0.7837641029261021
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 2 inactive extension
          max_prediction_drift: 0.0
          nrmse: 0.7837641029261021
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 2 inactive deletion
          max_prediction_drift: 0.0
          nrmse: 0.7837641029261021
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 3 metadata
          max_prediction_drift: 0.0
          nrmse: 0.7837641029261021
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 3 inactive extension
          max_prediction_drift: 0.0
          nrmse: 0.7837641029261021
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 3 inactive deletion
          max_prediction_drift: 0.0
          nrmse: 0.7837641029261021
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: equivalent source rebind
          max_prediction_drift: 0.0
          nrmse: 0.7837641029261021
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: source rebind restoration
          max_prediction_drift: 0.0
          nrmse: 0.7837641029261021
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: rejected duplicate extension
          max_prediction_drift: 0.0
          nrmse: 0.7837641029261021
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        controls:
          complete_reset:
            rmse: 0.9009977527204428
            baseline_rmse: 0.8103651362027426
            nrmse: 1.1118417025470664
        source_vocabulary:
        - code-1
        - code-2
        - code-3
        - code-0
        test_rows: 1024
        optimizer_policy: Fresh AdamW for source training; no post-edit fitting
      checks:
        Source learns the relationship below 0.25 nRMSE: false
        'cycle 1 metadata: predictions survive': true
        'cycle 1 metadata: all original state and vocabulary survive': true
        'cycle 1 inactive extension: predictions survive': true
        'cycle 1 inactive extension: all original state and vocabulary survive': true
        'cycle 1 inactive deletion: predictions survive': true
        'cycle 1 inactive deletion: all original state and vocabulary survive': true
        'cycle 2 metadata: predictions survive': true
        'cycle 2 metadata: all original state and vocabulary survive': true
        'cycle 2 inactive extension: predictions survive': true
        'cycle 2 inactive extension: all original state and vocabulary survive': true
        'cycle 2 inactive deletion: predictions survive': true
        'cycle 2 inactive deletion: all original state and vocabulary survive': true
        'cycle 3 metadata: predictions survive': true
        'cycle 3 metadata: all original state and vocabulary survive': true
        'cycle 3 inactive extension: predictions survive': true
        'cycle 3 inactive extension: all original state and vocabulary survive': true
        'cycle 3 inactive deletion: predictions survive': true
        'cycle 3 inactive deletion: all original state and vocabulary survive': true
        'equivalent source rebind: predictions survive': true
        'equivalent source rebind: all original state and vocabulary survive': true
        'source rebind restoration: predictions survive': true
        'source rebind restoration: all original state and vocabulary survive': true
        Duplicate-name edit is rejected: true
        'rejected duplicate extension: predictions survive': true
        'rejected duplicate extension: all original state and vocabulary survive': true
        Edited checkpoint preserves schema: true
        Edited checkpoint preserves learned state: true
        Edited checkpoint preserves predictions: true
        Complete reset loses the learned relationship: false
      outcome: not_met
      duration_seconds: 0.575
    - started_at: '2026-09-15T17:53:35.853115+00:00'
      mode: full
      seed: 4601
      steps_override: null
      accelerator: cpu
      threads: 1
      provenance:
        revision: 5d985953fd0416bc5982a3518d8f43cadb52110c
        source_sha256: 82f4b5e5a25603c42ab071ce91f000d3515c904c046a425b2a229bc5f562ae61
        script_sha256: e006fbd5d1e18fe5c35bc5d8cd0ab3867855985bbc54aeae57fe8d84c4123e9d
        code_sha256: f3a2f9c73440410deac5725a9f49e5ec28b78e148071179f73fc9681a0c21f69
        python: 3.12.10
        platform: macOS-26.5.2-arm64-arm-64bit
        host: Granthams-MacBook-Pro.local
        relflow_path: /Users/grantham/Desktop/relflow/src/relflow
        packages:
          relflow: 0.2.2
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: null
        gpu: null
      metrics:
        source:
          rmse: 0.020029435105787627
          baseline_rmse: 0.8103651362027426
          nrmse: 0.02471655579809708
        source_steps: 512
        edits:
        - edit: cycle 1 metadata
          max_prediction_drift: 0.0
          nrmse: 0.02471655579809708
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 1 inactive extension
          max_prediction_drift: 0.0
          nrmse: 0.02471655579809708
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 1 inactive deletion
          max_prediction_drift: 0.0
          nrmse: 0.02471655579809708
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 2 metadata
          max_prediction_drift: 0.0
          nrmse: 0.02471655579809708
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 2 inactive extension
          max_prediction_drift: 0.0
          nrmse: 0.02471655579809708
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 2 inactive deletion
          max_prediction_drift: 0.0
          nrmse: 0.02471655579809708
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 3 metadata
          max_prediction_drift: 0.0
          nrmse: 0.02471655579809708
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 3 inactive extension
          max_prediction_drift: 0.0
          nrmse: 0.02471655579809708
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 3 inactive deletion
          max_prediction_drift: 0.0
          nrmse: 0.02471655579809708
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: equivalent source rebind
          max_prediction_drift: 0.0
          nrmse: 0.02471655579809708
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: source rebind restoration
          max_prediction_drift: 0.0
          nrmse: 0.02471655579809708
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: rejected duplicate extension
          max_prediction_drift: 0.0
          nrmse: 0.02471655579809708
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        controls:
          complete_reset:
            rmse: 0.9009977527204428
            baseline_rmse: 0.8103651362027426
            nrmse: 1.1118417025470664
        source_vocabulary:
        - code-1
        - code-2
        - code-3
        - code-0
        test_rows: 1024
        optimizer_policy: Fresh AdamW for source training; no post-edit fitting
      checks:
        Source learns the relationship below 0.25 nRMSE: true
        'cycle 1 metadata: predictions survive': true
        'cycle 1 metadata: all original state and vocabulary survive': true
        'cycle 1 inactive extension: predictions survive': true
        'cycle 1 inactive extension: all original state and vocabulary survive': true
        'cycle 1 inactive deletion: predictions survive': true
        'cycle 1 inactive deletion: all original state and vocabulary survive': true
        'cycle 2 metadata: predictions survive': true
        'cycle 2 metadata: all original state and vocabulary survive': true
        'cycle 2 inactive extension: predictions survive': true
        'cycle 2 inactive extension: all original state and vocabulary survive': true
        'cycle 2 inactive deletion: predictions survive': true
        'cycle 2 inactive deletion: all original state and vocabulary survive': true
        'cycle 3 metadata: predictions survive': true
        'cycle 3 metadata: all original state and vocabulary survive': true
        'cycle 3 inactive extension: predictions survive': true
        'cycle 3 inactive extension: all original state and vocabulary survive': true
        'cycle 3 inactive deletion: predictions survive': true
        'cycle 3 inactive deletion: all original state and vocabulary survive': true
        'equivalent source rebind: predictions survive': true
        'equivalent source rebind: all original state and vocabulary survive': true
        'source rebind restoration: predictions survive': true
        'source rebind restoration: all original state and vocabulary survive': true
        Duplicate-name edit is rejected: true
        'rejected duplicate extension: predictions survive': true
        'rejected duplicate extension: all original state and vocabulary survive': true
        Edited checkpoint preserves schema: true
        Edited checkpoint preserves learned state: true
        Edited checkpoint preserves predictions: true
        Complete reset loses the learned relationship: true
      outcome: met
      duration_seconds: 4.439
    - started_at: '2026-09-15T17:55:28.371185+00:00'
      mode: full
      seed: 4601
      steps_override: null
      accelerator: cpu
      threads: 1
      provenance:
        revision: 5d985953fd0416bc5982a3518d8f43cadb52110c
        source_sha256: b3208281c58d1be68c68809b5446640c4c4f4b7b3667d374ef8756cfa7e57ca3
        script_sha256: 0c049cfe501c455e9ac72a81d889e994bd73c86179e17629285e989c51373285
        code_sha256: 8769fd40d8bec0dbf288d51fab6c613b6b9bf8f5a573d2fc8c74f92b56c22988
        python: 3.12.10
        platform: macOS-26.5.2-arm64-arm-64bit
        host: Granthams-MacBook-Pro.local
        relflow_path: /Users/grantham/Desktop/relflow/src/relflow
        packages:
          relflow: 0.2.2
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: null
        gpu: null
      metrics:
        source:
          rmse: 0.020029435105787627
          baseline_rmse: 0.8103651362027426
          nrmse: 0.02471655579809708
        source_prerequisite_met: true
        downstream_interpretable: true
        source_steps: 512
        edits:
        - edit: cycle 1 metadata
          max_prediction_drift: 0.0
          nrmse: 0.02471655579809708
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 1 inactive extension
          max_prediction_drift: 0.0
          nrmse: 0.02471655579809708
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 1 inactive deletion
          max_prediction_drift: 0.0
          nrmse: 0.02471655579809708
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 2 metadata
          max_prediction_drift: 0.0
          nrmse: 0.02471655579809708
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 2 inactive extension
          max_prediction_drift: 0.0
          nrmse: 0.02471655579809708
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 2 inactive deletion
          max_prediction_drift: 0.0
          nrmse: 0.02471655579809708
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 3 metadata
          max_prediction_drift: 0.0
          nrmse: 0.02471655579809708
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 3 inactive extension
          max_prediction_drift: 0.0
          nrmse: 0.02471655579809708
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 3 inactive deletion
          max_prediction_drift: 0.0
          nrmse: 0.02471655579809708
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: equivalent source rebind
          max_prediction_drift: 0.0
          nrmse: 0.02471655579809708
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: source rebind restoration
          max_prediction_drift: 0.0
          nrmse: 0.02471655579809708
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: rejected duplicate extension
          max_prediction_drift: 0.0
          nrmse: 0.02471655579809708
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        controls:
          complete_reset:
            rmse: 0.9009977527204428
            baseline_rmse: 0.8103651362027426
            nrmse: 1.1118417025470664
        source_vocabulary:
        - code-1
        - code-2
        - code-3
        - code-0
        test_rows: 1024
        optimizer_policy: Fresh AdamW for source training; no post-edit fitting
      checks:
        Source learns the relationship below 0.25 nRMSE: true
        'cycle 1 metadata: predictions survive': true
        'cycle 1 metadata: all original state and vocabulary survive': true
        'cycle 1 inactive extension: predictions survive': true
        'cycle 1 inactive extension: all original state and vocabulary survive': true
        'cycle 1 inactive deletion: predictions survive': true
        'cycle 1 inactive deletion: all original state and vocabulary survive': true
        'cycle 2 metadata: predictions survive': true
        'cycle 2 metadata: all original state and vocabulary survive': true
        'cycle 2 inactive extension: predictions survive': true
        'cycle 2 inactive extension: all original state and vocabulary survive': true
        'cycle 2 inactive deletion: predictions survive': true
        'cycle 2 inactive deletion: all original state and vocabulary survive': true
        'cycle 3 metadata: predictions survive': true
        'cycle 3 metadata: all original state and vocabulary survive': true
        'cycle 3 inactive extension: predictions survive': true
        'cycle 3 inactive extension: all original state and vocabulary survive': true
        'cycle 3 inactive deletion: predictions survive': true
        'cycle 3 inactive deletion: all original state and vocabulary survive': true
        'equivalent source rebind: predictions survive': true
        'equivalent source rebind: all original state and vocabulary survive': true
        'source rebind restoration: predictions survive': true
        'source rebind restoration: all original state and vocabulary survive': true
        Duplicate-name edit is rejected: true
        'rejected duplicate extension: predictions survive': true
        'rejected duplicate extension: all original state and vocabulary survive': true
        Edited checkpoint preserves schema: true
        Edited checkpoint preserves learned state: true
        Edited checkpoint preserves predictions: true
        Complete reset loses the learned relationship: true
      outcome: met
      duration_seconds: 4.967
    - started_at: '2026-09-15T17:58:06.195510+00:00'
      mode: full
      seed: 4601
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: b3208281c58d1be68c68809b5446640c4c4f4b7b3667d374ef8756cfa7e57ca3
        script_sha256: 0c049cfe501c455e9ac72a81d889e994bd73c86179e17629285e989c51373285
        code_sha256: 8769fd40d8bec0dbf288d51fab6c613b6b9bf8f5a573d2fc8c74f92b56c22988
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-mutations-v3_tgit_/src/relflow
        packages:
          relflow: 0.2.2
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
      metrics:
        source:
          rmse: 0.015390001694667008
          baseline_rmse: 0.8103651362027426
          nrmse: 0.01899144102716758
        source_prerequisite_met: true
        downstream_interpretable: true
        source_steps: 512
        edits:
        - edit: cycle 1 metadata
          max_prediction_drift: 0.0
          nrmse: 0.01899144102716758
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 1 inactive extension
          max_prediction_drift: 0.0
          nrmse: 0.01899144102716758
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 1 inactive deletion
          max_prediction_drift: 0.0
          nrmse: 0.01899144102716758
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 2 metadata
          max_prediction_drift: 0.0
          nrmse: 0.01899144102716758
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 2 inactive extension
          max_prediction_drift: 0.0
          nrmse: 0.01899144102716758
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 2 inactive deletion
          max_prediction_drift: 0.0
          nrmse: 0.01899144102716758
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 3 metadata
          max_prediction_drift: 0.0
          nrmse: 0.01899144102716758
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 3 inactive extension
          max_prediction_drift: 0.0
          nrmse: 0.01899144102716758
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 3 inactive deletion
          max_prediction_drift: 0.0
          nrmse: 0.01899144102716758
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: equivalent source rebind
          max_prediction_drift: 0.0
          nrmse: 0.01899144102716758
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: source rebind restoration
          max_prediction_drift: 0.0
          nrmse: 0.01899144102716758
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: rejected duplicate extension
          max_prediction_drift: 0.0
          nrmse: 0.01899144102716758
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        controls:
          complete_reset:
            rmse: 0.9009977688127063
            baseline_rmse: 0.8103651362027426
            nrmse: 1.1118417224051067
        source_vocabulary:
        - code-1
        - code-2
        - code-3
        - code-0
        test_rows: 1024
        optimizer_policy: Fresh AdamW for source training; no post-edit fitting
      checks:
        Source learns the relationship below 0.25 nRMSE: true
        'cycle 1 metadata: predictions survive': true
        'cycle 1 metadata: all original state and vocabulary survive': true
        'cycle 1 inactive extension: predictions survive': true
        'cycle 1 inactive extension: all original state and vocabulary survive': true
        'cycle 1 inactive deletion: predictions survive': true
        'cycle 1 inactive deletion: all original state and vocabulary survive': true
        'cycle 2 metadata: predictions survive': true
        'cycle 2 metadata: all original state and vocabulary survive': true
        'cycle 2 inactive extension: predictions survive': true
        'cycle 2 inactive extension: all original state and vocabulary survive': true
        'cycle 2 inactive deletion: predictions survive': true
        'cycle 2 inactive deletion: all original state and vocabulary survive': true
        'cycle 3 metadata: predictions survive': true
        'cycle 3 metadata: all original state and vocabulary survive': true
        'cycle 3 inactive extension: predictions survive': true
        'cycle 3 inactive extension: all original state and vocabulary survive': true
        'cycle 3 inactive deletion: predictions survive': true
        'cycle 3 inactive deletion: all original state and vocabulary survive': true
        'equivalent source rebind: predictions survive': true
        'equivalent source rebind: all original state and vocabulary survive': true
        'source rebind restoration: predictions survive': true
        'source rebind restoration: all original state and vocabulary survive': true
        Duplicate-name edit is rejected: true
        'rejected duplicate extension: predictions survive': true
        'rejected duplicate extension: all original state and vocabulary survive': true
        Edited checkpoint preserves schema: true
        Edited checkpoint preserves learned state: true
        Edited checkpoint preserves predictions: true
        Complete reset loses the learned relationship: true
      outcome: met
      duration_seconds: 11.213
    - started_at: '2026-09-15T18:00:08.222756+00:00'
      mode: full
      seed: 7101
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: b3208281c58d1be68c68809b5446640c4c4f4b7b3667d374ef8756cfa7e57ca3
        script_sha256: 0c049cfe501c455e9ac72a81d889e994bd73c86179e17629285e989c51373285
        code_sha256: 8769fd40d8bec0dbf288d51fab6c613b6b9bf8f5a573d2fc8c74f92b56c22988
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-mutations-v3_tgit_/src/relflow
        packages:
          relflow: 0.2.2
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
      metrics:
        source:
          rmse: 0.008368666828375167
          baseline_rmse: 0.7822472327744479
          nrmse: 0.0106982376897563
        source_prerequisite_met: true
        downstream_interpretable: true
        source_steps: 512
        edits:
        - edit: cycle 1 metadata
          max_prediction_drift: 0.0
          nrmse: 0.0106982376897563
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 1 inactive extension
          max_prediction_drift: 0.0
          nrmse: 0.0106982376897563
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 1 inactive deletion
          max_prediction_drift: 0.0
          nrmse: 0.0106982376897563
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 2 metadata
          max_prediction_drift: 0.0
          nrmse: 0.0106982376897563
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 2 inactive extension
          max_prediction_drift: 0.0
          nrmse: 0.0106982376897563
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 2 inactive deletion
          max_prediction_drift: 0.0
          nrmse: 0.0106982376897563
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 3 metadata
          max_prediction_drift: 0.0
          nrmse: 0.0106982376897563
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 3 inactive extension
          max_prediction_drift: 0.0
          nrmse: 0.0106982376897563
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 3 inactive deletion
          max_prediction_drift: 0.0
          nrmse: 0.0106982376897563
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: equivalent source rebind
          max_prediction_drift: 0.0
          nrmse: 0.0106982376897563
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: source rebind restoration
          max_prediction_drift: 0.0
          nrmse: 0.0106982376897563
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: rejected duplicate extension
          max_prediction_drift: 0.0
          nrmse: 0.0106982376897563
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        controls:
          complete_reset:
            rmse: 0.9555554631912822
            baseline_rmse: 0.7822472327744479
            nrmse: 1.2215517334617478
        source_vocabulary:
        - code-1
        - code-2
        - code-3
        - code-0
        test_rows: 1024
        optimizer_policy: Fresh AdamW for source training; no post-edit fitting
      checks:
        Source learns the relationship below 0.25 nRMSE: true
        'cycle 1 metadata: predictions survive': true
        'cycle 1 metadata: all original state and vocabulary survive': true
        'cycle 1 inactive extension: predictions survive': true
        'cycle 1 inactive extension: all original state and vocabulary survive': true
        'cycle 1 inactive deletion: predictions survive': true
        'cycle 1 inactive deletion: all original state and vocabulary survive': true
        'cycle 2 metadata: predictions survive': true
        'cycle 2 metadata: all original state and vocabulary survive': true
        'cycle 2 inactive extension: predictions survive': true
        'cycle 2 inactive extension: all original state and vocabulary survive': true
        'cycle 2 inactive deletion: predictions survive': true
        'cycle 2 inactive deletion: all original state and vocabulary survive': true
        'cycle 3 metadata: predictions survive': true
        'cycle 3 metadata: all original state and vocabulary survive': true
        'cycle 3 inactive extension: predictions survive': true
        'cycle 3 inactive extension: all original state and vocabulary survive': true
        'cycle 3 inactive deletion: predictions survive': true
        'cycle 3 inactive deletion: all original state and vocabulary survive': true
        'equivalent source rebind: predictions survive': true
        'equivalent source rebind: all original state and vocabulary survive': true
        'source rebind restoration: predictions survive': true
        'source rebind restoration: all original state and vocabulary survive': true
        Duplicate-name edit is rejected: true
        'rejected duplicate extension: predictions survive': true
        'rejected duplicate extension: all original state and vocabulary survive': true
        Edited checkpoint preserves schema: true
        Edited checkpoint preserves learned state: true
        Edited checkpoint preserves predictions: true
        Complete reset loses the learned relationship: true
      outcome: met
      duration_seconds: 11.319
    - started_at: '2026-09-15T18:02:10.645831+00:00'
      mode: full
      seed: 7102
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: b3208281c58d1be68c68809b5446640c4c4f4b7b3667d374ef8756cfa7e57ca3
        script_sha256: 0c049cfe501c455e9ac72a81d889e994bd73c86179e17629285e989c51373285
        code_sha256: 8769fd40d8bec0dbf288d51fab6c613b6b9bf8f5a573d2fc8c74f92b56c22988
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-mutations-v3_tgit_/src/relflow
        packages:
          relflow: 0.2.2
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
      metrics:
        source:
          rmse: 0.013073767926484693
          baseline_rmse: 0.8037941573669484
          nrmse: 0.016265069615971656
        source_prerequisite_met: true
        downstream_interpretable: true
        source_steps: 512
        edits:
        - edit: cycle 1 metadata
          max_prediction_drift: 0.0
          nrmse: 0.016265069615971656
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 1 inactive extension
          max_prediction_drift: 0.0
          nrmse: 0.016265069615971656
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 1 inactive deletion
          max_prediction_drift: 0.0
          nrmse: 0.016265069615971656
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 2 metadata
          max_prediction_drift: 0.0
          nrmse: 0.016265069615971656
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 2 inactive extension
          max_prediction_drift: 0.0
          nrmse: 0.016265069615971656
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 2 inactive deletion
          max_prediction_drift: 0.0
          nrmse: 0.016265069615971656
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 3 metadata
          max_prediction_drift: 0.0
          nrmse: 0.016265069615971656
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 3 inactive extension
          max_prediction_drift: 0.0
          nrmse: 0.016265069615971656
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: cycle 3 inactive deletion
          max_prediction_drift: 0.0
          nrmse: 0.016265069615971656
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: equivalent source rebind
          max_prediction_drift: 0.0
          nrmse: 0.016265069615971656
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: source rebind restoration
          max_prediction_drift: 0.0
          nrmse: 0.016265069615971656
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        - edit: rejected duplicate extension
          max_prediction_drift: 0.0
          nrmse: 0.016265069615971656
          changed_or_missing_state_entries: []
          vocabulary_preserved: true
        controls:
          complete_reset:
            rmse: 0.754748018777057
            baseline_rmse: 0.8037941573669484
            nrmse: 0.9389817179679986
        source_vocabulary:
        - code-0
        - code-1
        - code-2
        - code-3
        test_rows: 1024
        optimizer_policy: Fresh AdamW for source training; no post-edit fitting
      checks:
        Source learns the relationship below 0.25 nRMSE: true
        'cycle 1 metadata: predictions survive': true
        'cycle 1 metadata: all original state and vocabulary survive': true
        'cycle 1 inactive extension: predictions survive': true
        'cycle 1 inactive extension: all original state and vocabulary survive': true
        'cycle 1 inactive deletion: predictions survive': true
        'cycle 1 inactive deletion: all original state and vocabulary survive': true
        'cycle 2 metadata: predictions survive': true
        'cycle 2 metadata: all original state and vocabulary survive': true
        'cycle 2 inactive extension: predictions survive': true
        'cycle 2 inactive extension: all original state and vocabulary survive': true
        'cycle 2 inactive deletion: predictions survive': true
        'cycle 2 inactive deletion: all original state and vocabulary survive': true
        'cycle 3 metadata: predictions survive': true
        'cycle 3 metadata: all original state and vocabulary survive': true
        'cycle 3 inactive extension: predictions survive': true
        'cycle 3 inactive extension: all original state and vocabulary survive': true
        'cycle 3 inactive deletion: predictions survive': true
        'cycle 3 inactive deletion: all original state and vocabulary survive': true
        'equivalent source rebind: predictions survive': true
        'equivalent source rebind: all original state and vocabulary survive': true
        'source rebind restoration: predictions survive': true
        'source rebind restoration: all original state and vocabulary survive': true
        Duplicate-name edit is rejected: true
        'rejected duplicate extension: predictions survive': true
        'rejected duplicate extension: all original state and vocabulary survive': true
        Edited checkpoint preserves schema: true
        Edited checkpoint preserves learned state: true
        Edited checkpoint preserves predictions: true
        Complete reset loses the learned relationship: true
      outcome: met
      duration_seconds: 11.269
  P047:
    script: proofs/mutations/extend_prediction_target.py
    page: docs/proofs/mutations/extend-prediction-target.py
    historical:
      status: Provisional pass
      source_revision: null
      sources: []
      summary: New experiment; no historical run predates registration.
      insights: 'Initial hypothesis: A new hidden target learns while old targets retain skill with rehearsal.'
      evidence: No historical measurements. See recorded runs for actual outcomes.
    runs:
    - started_at: '2026-09-15T17:53:04.610375+00:00'
      mode: smoke
      seed: 4701
      steps_override: 2
      accelerator: cpu
      threads: 1
      provenance:
        revision: 5d985953fd0416bc5982a3518d8f43cadb52110c
        source_sha256: 749fbc77b2bff4cb5eb3842d361be641dfe6894e42a0593c89ee25357a5d65eb
        script_sha256: b4d50df5f8885ae16d5cefacb11986dfa357b7fed7200efc42f4825b1b1a7ed9
        code_sha256: 8c67ea6056f22b2dad82d1c0d0fba89bc36149117988a447d1b5340440a41a9c
        python: 3.12.10
        platform: macOS-26.5.2-arm64-arm-64bit
        host: Granthams-MacBook-Pro.local
        relflow_path: /Users/grantham/Desktop/relflow/src/relflow
        packages:
          relflow: 0.2.2
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: null
        gpu: null
      metrics:
        source:
          u:
            rmse: 0.7184877635587731
            baseline_rmse: 1.2663362526593396
            nrmse: 0.5673751833685009
          v:
            rmse: 0.9520061498610833
            baseline_rmse: 1.2961683303676375
            nrmse: 0.7344772492559373
        source_fit:
          steps: 2
          optimizer_covers_current_parameters: true
          validation_curve:
          - step: 0
            scores:
              u:
                rmse: 1.3509519179467873
                baseline_rmse: 1.295883063514218
                nrmse: 1.0424952343178495
              v:
                rmse: 1.7025466041136943
                baseline_rmse: 1.2898120364298942
                nrmse: 1.3199959032993827
          - step: 2
            scores:
              u:
                rmse: 0.7289427421825075
                baseline_rmse: 1.295883063514218
                nrmse: 0.5625065738614847
              v:
                rmse: 0.9725274664061965
                baseline_rmse: 1.2898120364298942
                nrmse: 0.7540071257964701
        source_prerequisite_met: false
        downstream_interpretable: false
        arms:
          extended:
            before:
              u:
                rmse: 0.7196009950687224
                baseline_rmse: 1.2663362526593396
                nrmse: 0.56825427966509
              v:
                rmse: 0.952411532418295
                baseline_rmse: 1.2961683303676375
                nrmse: 0.7347900038169878
              w:
                rmse: 1.6819942223834303
                baseline_rmse: 1.8289556685792812
                nrmse: 0.9196473437160949
            after:
              u:
                rmse: 0.3613070045248406
                baseline_rmse: 1.2663362526593396
                nrmse: 0.2853167977826477
              v:
                rmse: 0.3062141048508276
                baseline_rmse: 1.2961683303676375
                nrmse: 0.2362456308155399
              w:
                rmse: 0.9172763753206038
                baseline_rmse: 1.8289556685792812
                nrmse: 0.5015301305980462
            initial_old_prediction_drift:
              u: 0.0033138394355773926
              v: 0.006249785423278809
            steps: 2
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 0.7446389398139777
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.5682343723702206
                v:
                  rmse: 0.939437151882393
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.7393725983477688
                w:
                  rmse: 1.6629773847810996
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.9132560217316454
            - step: 2
              scores:
                u:
                  rmse: 0.36930718684363484
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.28181851137187264
                v:
                  rmse: 0.3046839697242332
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.23979781714883797
                w:
                  rmse: 0.9176497254254723
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.5039449996462323
            changed_existing_state_entries: []
            new_head_updated_parameters:
            - embedder.embeddings.weight
            - embedder.linear.weight
            - embedder.scalar.weight
            - decoder.context_projection.0.weight
            - decoder.context_projection.0.bias
            - decoder.context_projection.1.weight
            - decoder.context_projection.1.bias
            - decoder.context_projection.3.weight
            - decoder.context_projection.3.bias
            - decoder.pool.queries
            - decoder.pool.blocks.0.ffn_norm.weight
            - decoder.pool.blocks.0.ffn_norm.bias
            - decoder.pool.blocks.0.attention.q_proj.weight
            - decoder.pool.blocks.0.attention.k_proj.weight
            - decoder.pool.blocks.0.attention.v_proj.weight
            - decoder.pool.blocks.0.attention.v_proj.bias
            - decoder.pool.blocks.0.attention.out_proj.weight
            - decoder.pool.blocks.0.attention.out_proj.bias
            - decoder.pool.blocks.0.ffn.0.weight
            - decoder.pool.blocks.0.ffn.0.bias
            - decoder.pool.blocks.0.ffn.3.weight
            - decoder.pool.blocks.0.ffn.3.bias
            - decoder.pool.norm.weight
            - decoder.pool.norm.bias
            - decoder.classification.weight
            - decoder.classification.bias
            - decoder.regression.weight
            - decoder.regression.bias
          continuation:
            before:
              u:
                rmse: 0.7184877635587731
                baseline_rmse: 1.2663362526593396
                nrmse: 0.5673751833685009
              v:
                rmse: 0.9520061498610833
                baseline_rmse: 1.2961683303676375
                nrmse: 0.7344772492559373
            after:
              u:
                rmse: 0.28971781770269434
                baseline_rmse: 1.2663362526593396
                nrmse: 0.22878427202433735
              v:
                rmse: 0.3071165254487839
                baseline_rmse: 1.2961683303676375
                nrmse: 0.2369418525768757
            initial_old_prediction_drift:
              u: 0.0
              v: 0.0
            steps: 2
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 0.7435094022931849
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.5673724216852931
                v:
                  rmse: 0.9390350848147172
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.739056156346362
            - step: 2
              scores:
                u:
                  rmse: 0.2995876155239647
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.22861546928996032
                v:
                  rmse: 0.30069907949272984
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.23666155769955646
          scratch_adaptation:
            before:
              u:
                rmse: 1.2899407966264593
                baseline_rmse: 1.2663362526593396
                nrmse: 1.0186400286002628
              v:
                rmse: 1.10920508178733
                baseline_rmse: 1.2961683303676375
                nrmse: 0.8557569690602777
              w:
                rmse: 1.7488962582222345
                baseline_rmse: 1.8289556685792812
                nrmse: 0.9562267080977221
            after:
              u:
                rmse: 0.5574314651650658
                baseline_rmse: 1.2663362526593396
                nrmse: 0.44019229805231036
              v:
                rmse: 0.5670848387680588
                baseline_rmse: 1.2961683303676375
                nrmse: 0.4375086364031239
              w:
                rmse: 1.2267252746736357
                baseline_rmse: 1.8289556685792812
                nrmse: 0.670724444418353
            initial_old_prediction_drift:
              u: 1.4069195687770844
              v: 1.0155301690101624
            steps: 2
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 1.341623916158934
                  baseline_rmse: 1.3104433241303899
                  nrmse: 1.0237939264174096
                v:
                  rmse: 1.0918173893993468
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.8593016132094939
                w:
                  rmse: 1.7316059452084105
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.9509447159054786
            - step: 2
              scores:
                u:
                  rmse: 0.5915161306289228
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.45138627496267564
                v:
                  rmse: 0.5553606677147325
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.43708986714610837
                w:
                  rmse: 1.2266355350396705
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.6736305009899192
          scratch_total:
            before:
              u:
                rmse: 1.5094414653137729
                baseline_rmse: 1.2663362526593396
                nrmse: 1.1919752452351466
              v:
                rmse: 1.5644460083090737
                baseline_rmse: 1.2961683303676375
                nrmse: 1.2069774979499333
              w:
                rmse: 1.9603643402199182
                baseline_rmse: 1.8289556685792812
                nrmse: 1.0718490195788695
            after:
              u:
                rmse: 0.8671169965970984
                baseline_rmse: 1.2663362526593396
                nrmse: 0.6847446677579748
              v:
                rmse: 0.967181049149102
                baseline_rmse: 1.2961683303676375
                nrmse: 0.7461847558602026
              w:
                rmse: 1.2764903003450534
                baseline_rmse: 1.8289556685792812
                nrmse: 0.6979339752595651
            initial_old_prediction_drift:
              u: 1.7696527242660522
              v: 1.7364290952682495
            steps: 2
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 1.5127669768475775
                  baseline_rmse: 1.3104433241303899
                  nrmse: 1.1543932873643732
                v:
                  rmse: 1.5470830375162308
                  baseline_rmse: 1.2705869192092003
                  nrmse: 1.2176129111097087
                w:
                  rmse: 1.9448778758458212
                  baseline_rmse: 1.8209322963213432
                  nrmse: 1.0680670993506312
            - step: 2
              scores:
                u:
                  rmse: 0.902403166266992
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.6886243377719725
                v:
                  rmse: 0.9551300270125085
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.7517234850859091
                w:
                  rmse: 1.2728006365564104
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.6989829545709793
        test_rows: 1024
        baseline: Source-training mean for test comparisons; phase-training mean for validation curves
        optimizer_policy: New AdamW factory and Trainer for every fit; all available labels rehearsed
        mutation: extend record with hidden Number record/w
      checks:
        Source learns both original tasks below 0.25 nRMSE: false
        Extension preserves every existing state entry: true
        Extension immediately preserves old predictions: false
        'extended: fresh optimizer covers current parameters': true
        'extended: all final targets below 0.25 nRMSE': false
        Added head parameters actually learn: true
        Hidden target placeholders cannot affect predictions: true
        Extended checkpoint preserves schema and learned state: true
        Extended checkpoint preserves predictions: true
        'continuation: fresh optimizer covers current parameters': true
        'scratch_adaptation: fresh optimizer covers current parameters': true
        'scratch_total: fresh optimizer covers current parameters': true
        'scratch_total: all final targets below 0.25 nRMSE': false
      outcome: not_met
      duration_seconds: 0.876
    - started_at: '2026-09-15T17:53:43.745091+00:00'
      mode: full
      seed: 4701
      steps_override: null
      accelerator: cpu
      threads: 1
      provenance:
        revision: 5d985953fd0416bc5982a3518d8f43cadb52110c
        source_sha256: 749fbc77b2bff4cb5eb3842d361be641dfe6894e42a0593c89ee25357a5d65eb
        script_sha256: b4d50df5f8885ae16d5cefacb11986dfa357b7fed7200efc42f4825b1b1a7ed9
        code_sha256: 8c67ea6056f22b2dad82d1c0d0fba89bc36149117988a447d1b5340440a41a9c
        python: 3.12.10
        platform: macOS-26.5.2-arm64-arm-64bit
        host: Granthams-MacBook-Pro.local
        relflow_path: /Users/grantham/Desktop/relflow/src/relflow
        packages:
          relflow: 0.2.2
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: null
        gpu: null
      metrics:
        source:
          u:
            rmse: 0.04339685848153591
            baseline_rmse: 1.2663362526593396
            nrmse: 0.034269617086616105
          v:
            rmse: 0.03464917023016499
            baseline_rmse: 1.2961683303676375
            nrmse: 0.02673199878316523
        source_fit:
          steps: 512
          optimizer_covers_current_parameters: true
          validation_curve:
          - step: 0
            scores:
              u:
                rmse: 1.3509519179467873
                baseline_rmse: 1.295883063514218
                nrmse: 1.0424952343178495
              v:
                rmse: 1.7025466041136943
                baseline_rmse: 1.2898120364298942
                nrmse: 1.3199959032993827
          - step: 32
            scores:
              u:
                rmse: 0.08500438323886007
                baseline_rmse: 1.295883063514218
                nrmse: 0.06559572050300774
              v:
                rmse: 0.11706025505541162
                baseline_rmse: 1.2898120364298942
                nrmse: 0.09075760789101169
          - step: 128
            scores:
              u:
                rmse: 0.02709548454351126
                baseline_rmse: 1.295883063514218
                nrmse: 0.02090889626262484
              v:
                rmse: 0.04247795145991918
                baseline_rmse: 1.2898120364298942
                nrmse: 0.032933443215102144
          - step: 512
            scores:
              u:
                rmse: 0.046377564578228725
                baseline_rmse: 1.295883063514218
                nrmse: 0.03578838699570664
              v:
                rmse: 0.03358961215940764
                baseline_rmse: 1.2898120364298942
                nrmse: 0.026042253608038298
        source_prerequisite_met: true
        downstream_interpretable: true
        arms:
          extended:
            before:
              u:
                rmse: 0.04338463782724802
                baseline_rmse: 1.2663362526593396
                nrmse: 0.034259966684314004
              v:
                rmse: 0.04017069929827001
                baseline_rmse: 1.2961683303676375
                nrmse: 0.030991884585604892
              w:
                rmse: 1.73040449423147
                baseline_rmse: 1.8289556685792812
                nrmse: 0.9461161492096936
            after:
              u:
                rmse: 0.020053658093265946
                baseline_rmse: 1.2663362526593396
                nrmse: 0.015835966198671746
              v:
                rmse: 0.022480374165581508
                baseline_rmse: 1.2961683303676375
                nrmse: 0.01734371503985544
              w:
                rmse: 0.047069585087884114
                baseline_rmse: 1.8289556685792812
                nrmse: 0.025735771455000552
            initial_old_prediction_drift:
              u: 0.015998125076293945
              v: 0.020020246505737305
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 0.043597498705624405
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.03326927452933205
                v:
                  rmse: 0.03898050824242802
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.030679135486999246
                w:
                  rmse: 1.7157907679756903
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.9422595070898241
            - step: 32
              scores:
                u:
                  rmse: 0.05030544976923204
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.03838811556586374
                v:
                  rmse: 0.04795291787662376
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.037740761495064924
                w:
                  rmse: 0.10949826635992924
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.060133079401764794
            - step: 128
              scores:
                u:
                  rmse: 0.007891395414127643
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.006021928051992918
                v:
                  rmse: 0.012467297531026718
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.00981223507226584
                w:
                  rmse: 0.018547623205124056
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.010185784085764232
            - step: 256
              scores:
                u:
                  rmse: 0.020140006992766024
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.015368850084478802
                v:
                  rmse: 0.02328180518929462
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.01832366195284378
                w:
                  rmse: 0.046479505370370475
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.025525114505502818
            changed_existing_state_entries: []
            new_head_updated_parameters:
            - embedder.embeddings.weight
            - embedder.linear.weight
            - embedder.scalar.weight
            - decoder.context_projection.0.weight
            - decoder.context_projection.0.bias
            - decoder.context_projection.1.weight
            - decoder.context_projection.1.bias
            - decoder.context_projection.3.weight
            - decoder.context_projection.3.bias
            - decoder.pool.queries
            - decoder.pool.blocks.0.ffn_norm.weight
            - decoder.pool.blocks.0.ffn_norm.bias
            - decoder.pool.blocks.0.attention.q_proj.weight
            - decoder.pool.blocks.0.attention.k_proj.weight
            - decoder.pool.blocks.0.attention.v_proj.weight
            - decoder.pool.blocks.0.attention.v_proj.bias
            - decoder.pool.blocks.0.attention.out_proj.weight
            - decoder.pool.blocks.0.attention.out_proj.bias
            - decoder.pool.blocks.0.ffn.0.weight
            - decoder.pool.blocks.0.ffn.0.bias
            - decoder.pool.blocks.0.ffn.3.weight
            - decoder.pool.blocks.0.ffn.3.bias
            - decoder.pool.norm.weight
            - decoder.pool.norm.bias
            - decoder.classification.weight
            - decoder.classification.bias
            - decoder.regression.weight
            - decoder.regression.bias
          continuation:
            before:
              u:
                rmse: 0.04339685848153591
                baseline_rmse: 1.2663362526593396
                nrmse: 0.034269617086616105
              v:
                rmse: 0.03464917023016499
                baseline_rmse: 1.2961683303676375
                nrmse: 0.02673199878316523
            after:
              u:
                rmse: 0.024847849450170354
                baseline_rmse: 1.2663362526593396
                nrmse: 0.01962184166961122
              v:
                rmse: 0.03539640971424924
                baseline_rmse: 1.2961683303676375
                nrmse: 0.027308497580873323
            initial_old_prediction_drift:
              u: 0.0
              v: 0.0
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 0.043578616866279236
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.03325486578765091
                v:
                  rmse: 0.033650245498206555
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.02648401694482272
            - step: 32
              scores:
                u:
                  rmse: 0.03494173974815033
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.02666406024948669
                v:
                  rmse: 0.08441034946932946
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.06643414015458743
            - step: 128
              scores:
                u:
                  rmse: 0.02933732798141578
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.022387330639334613
                v:
                  rmse: 0.012658927846920236
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.009963055384513968
            - step: 256
              scores:
                u:
                  rmse: 0.02554737302907079
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.019495213992580737
                v:
                  rmse: 0.03563651009027191
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.028047282363375576
          scratch_adaptation:
            before:
              u:
                rmse: 1.2899407966264593
                baseline_rmse: 1.2663362526593396
                nrmse: 1.0186400286002628
              v:
                rmse: 1.10920508178733
                baseline_rmse: 1.2961683303676375
                nrmse: 0.8557569690602777
              w:
                rmse: 1.7488962582222345
                baseline_rmse: 1.8289556685792812
                nrmse: 0.9562267080977221
            after:
              u:
                rmse: 0.046204841875476875
                baseline_rmse: 1.2663362526593396
                nrmse: 0.03648702449957149
              v:
                rmse: 0.05890874541622356
                baseline_rmse: 1.2961683303676375
                nrmse: 0.0454483758290214
              w:
                rmse: 0.03371907689280475
                baseline_rmse: 1.8289556685792812
                nrmse: 0.01843624614422583
            initial_old_prediction_drift:
              u: 3.1339073181152344
              v: 2.9099842980504036
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 1.341623916158934
                  baseline_rmse: 1.3104433241303899
                  nrmse: 1.0237939264174096
                v:
                  rmse: 1.0918173893993468
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.8593016132094939
                w:
                  rmse: 1.7316059452084105
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.9509447159054786
            - step: 32
              scores:
                u:
                  rmse: 0.0754211523406791
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.05755392160185834
                v:
                  rmse: 0.08702010311291794
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.06848811505715667
                w:
                  rmse: 0.17318271728552895
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.09510662073235428
            - step: 128
              scores:
                u:
                  rmse: 0.02006432085463077
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.015311093952075685
                v:
                  rmse: 0.07701617202253476
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.060614642617656415
                w:
                  rmse: 0.06543257210337809
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.035933555704166106
            - step: 256
              scores:
                u:
                  rmse: 0.04627067116592861
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.03530917386040623
                v:
                  rmse: 0.05786074070198421
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.04553859309207757
                w:
                  rmse: 0.034026255949966284
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.018686173021757208
          scratch_total:
            before:
              u:
                rmse: 1.5094414653137729
                baseline_rmse: 1.2663362526593396
                nrmse: 1.1919752452351466
              v:
                rmse: 1.5644460083090737
                baseline_rmse: 1.2961683303676375
                nrmse: 1.2069774979499333
              w:
                rmse: 1.9603643402199182
                baseline_rmse: 1.8289556685792812
                nrmse: 1.0718490195788695
            after:
              u:
                rmse: 0.009593514818976712
                baseline_rmse: 1.2663362526593396
                nrmse: 0.007575803661018215
              v:
                rmse: 0.01717958501003693
                baseline_rmse: 1.2961683303676375
                nrmse: 0.0132541311244383
              w:
                rmse: 0.028883275348878173
                baseline_rmse: 1.8289556685792812
                nrmse: 0.01579222276683966
            initial_old_prediction_drift:
              u: 3.4934839010238647
              v: 3.6688733100891113
            steps: 768
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 1.5127669768475775
                  baseline_rmse: 1.3104433241303899
                  nrmse: 1.1543932873643732
                v:
                  rmse: 1.5470830375162308
                  baseline_rmse: 1.2705869192092003
                  nrmse: 1.2176129111097087
                w:
                  rmse: 1.9448778758458212
                  baseline_rmse: 1.8209322963213432
                  nrmse: 1.0680670993506312
            - step: 32
              scores:
                u:
                  rmse: 0.1180748304040611
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.09010296609539795
                v:
                  rmse: 0.09132736641290372
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.07187809431388203
                w:
                  rmse: 0.15109867945633018
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.08297874652538181
            - step: 128
              scores:
                u:
                  rmse: 0.06649819828470592
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.050744810599751895
                v:
                  rmse: 0.036841081833149394
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.028995325920779108
                w:
                  rmse: 0.043636162065740156
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.023963637832056774
            - step: 768
              scores:
                u:
                  rmse: 0.00949244348164829
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.007243688686763676
                v:
                  rmse: 0.016199661195887685
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.012749746554899353
                w:
                  rmse: 0.02952968655074886
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.016216795435176193
        test_rows: 1024
        baseline: Source-training mean for test comparisons; phase-training mean for validation curves
        optimizer_policy: New AdamW factory and Trainer for every fit; all available labels rehearsed
        mutation: extend record with hidden Number record/w
      checks:
        Source learns both original tasks below 0.25 nRMSE: true
        Extension preserves every existing state entry: true
        Extension immediately preserves old predictions: false
        'extended: fresh optimizer covers current parameters': true
        'extended: all final targets below 0.25 nRMSE': true
        Added head parameters actually learn: true
        Hidden target placeholders cannot affect predictions: true
        Extended checkpoint preserves schema and learned state: true
        Extended checkpoint preserves predictions: true
        'continuation: fresh optimizer covers current parameters': true
        'scratch_adaptation: fresh optimizer covers current parameters': true
        'scratch_total: fresh optimizer covers current parameters': true
        'scratch_total: all final targets below 0.25 nRMSE': true
      outcome: not_met
      duration_seconds: 26.161
    - started_at: '2026-09-15T17:55:37.078997+00:00'
      mode: full
      seed: 4701
      steps_override: null
      accelerator: cpu
      threads: 1
      provenance:
        revision: 5d985953fd0416bc5982a3518d8f43cadb52110c
        source_sha256: 04f09ccb89861dbe7977f303d13c1e11bf180f1706f6ca837c89f4ba1050cf3b
        script_sha256: 61b3e662a7ec74440893deec64e6fb16806b8409e0f466c4c9feb98be4e8d144
        code_sha256: 51ba353c87e01417438f385202d12cd43919a7e1f61896c4ab0391420ba86ace
        python: 3.12.10
        platform: macOS-26.5.2-arm64-arm-64bit
        host: Granthams-MacBook-Pro.local
        relflow_path: /Users/grantham/Desktop/relflow/src/relflow
        packages:
          relflow: 0.2.2
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: null
        gpu: null
      metrics:
        source:
          u:
            rmse: 0.04339685848153591
            baseline_rmse: 1.2663362526593396
            nrmse: 0.034269617086616105
          v:
            rmse: 0.03464917023016499
            baseline_rmse: 1.2961683303676375
            nrmse: 0.02673199878316523
        source_fit:
          steps: 512
          optimizer_covers_current_parameters: true
          validation_curve:
          - step: 0
            scores:
              u:
                rmse: 1.3509519179467873
                baseline_rmse: 1.295883063514218
                nrmse: 1.0424952343178495
              v:
                rmse: 1.7025466041136943
                baseline_rmse: 1.2898120364298942
                nrmse: 1.3199959032993827
          - step: 32
            scores:
              u:
                rmse: 0.08500438323886007
                baseline_rmse: 1.295883063514218
                nrmse: 0.06559572050300774
              v:
                rmse: 0.11706025505541162
                baseline_rmse: 1.2898120364298942
                nrmse: 0.09075760789101169
          - step: 128
            scores:
              u:
                rmse: 0.02709548454351126
                baseline_rmse: 1.295883063514218
                nrmse: 0.02090889626262484
              v:
                rmse: 0.04247795145991918
                baseline_rmse: 1.2898120364298942
                nrmse: 0.032933443215102144
          - step: 512
            scores:
              u:
                rmse: 0.046377564578228725
                baseline_rmse: 1.295883063514218
                nrmse: 0.03578838699570664
              v:
                rmse: 0.03358961215940764
                baseline_rmse: 1.2898120364298942
                nrmse: 0.026042253608038298
        source_prerequisite_met: true
        downstream_interpretable: true
        arms:
          extended:
            before:
              u:
                rmse: 0.04338463782724802
                baseline_rmse: 1.2663362526593396
                nrmse: 0.034259966684314004
              v:
                rmse: 0.04017069929827001
                baseline_rmse: 1.2961683303676375
                nrmse: 0.030991884585604892
              w:
                rmse: 1.73040449423147
                baseline_rmse: 1.8289556685792812
                nrmse: 0.9461161492096936
            after:
              u:
                rmse: 0.020053658093265946
                baseline_rmse: 1.2663362526593396
                nrmse: 0.015835966198671746
              v:
                rmse: 0.022480374165581508
                baseline_rmse: 1.2961683303676375
                nrmse: 0.01734371503985544
              w:
                rmse: 0.047069585087884114
                baseline_rmse: 1.8289556685792812
                nrmse: 0.025735771455000552
            initial_old_prediction_drift:
              u: 0.015998125076293945
              v: 0.020020246505737305
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 0.043597498705624405
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.03326927452933205
                v:
                  rmse: 0.03898050824242802
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.030679135486999246
                w:
                  rmse: 1.7157907679756903
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.9422595070898241
            - step: 32
              scores:
                u:
                  rmse: 0.05030544976923204
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.03838811556586374
                v:
                  rmse: 0.04795291787662376
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.037740761495064924
                w:
                  rmse: 0.10949826635992924
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.060133079401764794
            - step: 128
              scores:
                u:
                  rmse: 0.007891395414127643
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.006021928051992918
                v:
                  rmse: 0.012467297531026718
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.00981223507226584
                w:
                  rmse: 0.018547623205124056
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.010185784085764232
            - step: 256
              scores:
                u:
                  rmse: 0.020140006992766024
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.015368850084478802
                v:
                  rmse: 0.02328180518929462
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.01832366195284378
                w:
                  rmse: 0.046479505370370475
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.025525114505502818
            changed_existing_state_entries: []
            pooling_scale_control:
              source_capacity: 4
              extended_capacity: 5
              old_prediction_drift_with_source_capacity:
                u: 0.0
                v: 0.0
            new_head_updated_parameters:
            - embedder.embeddings.weight
            - embedder.linear.weight
            - embedder.scalar.weight
            - decoder.context_projection.0.weight
            - decoder.context_projection.0.bias
            - decoder.context_projection.1.weight
            - decoder.context_projection.1.bias
            - decoder.context_projection.3.weight
            - decoder.context_projection.3.bias
            - decoder.pool.queries
            - decoder.pool.blocks.0.ffn_norm.weight
            - decoder.pool.blocks.0.ffn_norm.bias
            - decoder.pool.blocks.0.attention.q_proj.weight
            - decoder.pool.blocks.0.attention.k_proj.weight
            - decoder.pool.blocks.0.attention.v_proj.weight
            - decoder.pool.blocks.0.attention.v_proj.bias
            - decoder.pool.blocks.0.attention.out_proj.weight
            - decoder.pool.blocks.0.attention.out_proj.bias
            - decoder.pool.blocks.0.ffn.0.weight
            - decoder.pool.blocks.0.ffn.0.bias
            - decoder.pool.blocks.0.ffn.3.weight
            - decoder.pool.blocks.0.ffn.3.bias
            - decoder.pool.norm.weight
            - decoder.pool.norm.bias
            - decoder.classification.weight
            - decoder.classification.bias
            - decoder.regression.weight
            - decoder.regression.bias
          continuation:
            before:
              u:
                rmse: 0.04339685848153591
                baseline_rmse: 1.2663362526593396
                nrmse: 0.034269617086616105
              v:
                rmse: 0.03464917023016499
                baseline_rmse: 1.2961683303676375
                nrmse: 0.02673199878316523
            after:
              u:
                rmse: 0.024847849450170354
                baseline_rmse: 1.2663362526593396
                nrmse: 0.01962184166961122
              v:
                rmse: 0.03539640971424924
                baseline_rmse: 1.2961683303676375
                nrmse: 0.027308497580873323
            initial_old_prediction_drift:
              u: 0.0
              v: 0.0
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 0.043578616866279236
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.03325486578765091
                v:
                  rmse: 0.033650245498206555
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.02648401694482272
            - step: 32
              scores:
                u:
                  rmse: 0.03494173974815033
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.02666406024948669
                v:
                  rmse: 0.08441034946932946
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.06643414015458743
            - step: 128
              scores:
                u:
                  rmse: 0.02933732798141578
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.022387330639334613
                v:
                  rmse: 0.012658927846920236
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.009963055384513968
            - step: 256
              scores:
                u:
                  rmse: 0.02554737302907079
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.019495213992580737
                v:
                  rmse: 0.03563651009027191
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.028047282363375576
          scratch_adaptation:
            before:
              u:
                rmse: 1.2899407966264593
                baseline_rmse: 1.2663362526593396
                nrmse: 1.0186400286002628
              v:
                rmse: 1.10920508178733
                baseline_rmse: 1.2961683303676375
                nrmse: 0.8557569690602777
              w:
                rmse: 1.7488962582222345
                baseline_rmse: 1.8289556685792812
                nrmse: 0.9562267080977221
            after:
              u:
                rmse: 0.046204841875476875
                baseline_rmse: 1.2663362526593396
                nrmse: 0.03648702449957149
              v:
                rmse: 0.05890874541622356
                baseline_rmse: 1.2961683303676375
                nrmse: 0.0454483758290214
              w:
                rmse: 0.03371907689280475
                baseline_rmse: 1.8289556685792812
                nrmse: 0.01843624614422583
            initial_old_prediction_drift:
              u: 3.1339073181152344
              v: 2.9099842980504036
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 1.341623916158934
                  baseline_rmse: 1.3104433241303899
                  nrmse: 1.0237939264174096
                v:
                  rmse: 1.0918173893993468
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.8593016132094939
                w:
                  rmse: 1.7316059452084105
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.9509447159054786
            - step: 32
              scores:
                u:
                  rmse: 0.0754211523406791
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.05755392160185834
                v:
                  rmse: 0.08702010311291794
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.06848811505715667
                w:
                  rmse: 0.17318271728552895
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.09510662073235428
            - step: 128
              scores:
                u:
                  rmse: 0.02006432085463077
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.015311093952075685
                v:
                  rmse: 0.07701617202253476
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.060614642617656415
                w:
                  rmse: 0.06543257210337809
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.035933555704166106
            - step: 256
              scores:
                u:
                  rmse: 0.04627067116592861
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.03530917386040623
                v:
                  rmse: 0.05786074070198421
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.04553859309207757
                w:
                  rmse: 0.034026255949966284
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.018686173021757208
          scratch_total:
            before:
              u:
                rmse: 1.5094414653137729
                baseline_rmse: 1.2663362526593396
                nrmse: 1.1919752452351466
              v:
                rmse: 1.5644460083090737
                baseline_rmse: 1.2961683303676375
                nrmse: 1.2069774979499333
              w:
                rmse: 1.9603643402199182
                baseline_rmse: 1.8289556685792812
                nrmse: 1.0718490195788695
            after:
              u:
                rmse: 0.009593514818976712
                baseline_rmse: 1.2663362526593396
                nrmse: 0.007575803661018215
              v:
                rmse: 0.01717958501003693
                baseline_rmse: 1.2961683303676375
                nrmse: 0.0132541311244383
              w:
                rmse: 0.028883275348878173
                baseline_rmse: 1.8289556685792812
                nrmse: 0.01579222276683966
            initial_old_prediction_drift:
              u: 3.4934839010238647
              v: 3.6688733100891113
            steps: 768
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 1.5127669768475775
                  baseline_rmse: 1.3104433241303899
                  nrmse: 1.1543932873643732
                v:
                  rmse: 1.5470830375162308
                  baseline_rmse: 1.2705869192092003
                  nrmse: 1.2176129111097087
                w:
                  rmse: 1.9448778758458212
                  baseline_rmse: 1.8209322963213432
                  nrmse: 1.0680670993506312
            - step: 32
              scores:
                u:
                  rmse: 0.1180748304040611
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.09010296609539795
                v:
                  rmse: 0.09132736641290372
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.07187809431388203
                w:
                  rmse: 0.15109867945633018
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.08297874652538181
            - step: 128
              scores:
                u:
                  rmse: 0.06649819828470592
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.050744810599751895
                v:
                  rmse: 0.036841081833149394
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.028995325920779108
                w:
                  rmse: 0.043636162065740156
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.023963637832056774
            - step: 768
              scores:
                u:
                  rmse: 0.00949244348164829
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.007243688686763676
                v:
                  rmse: 0.016199661195887685
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.012749746554899353
                w:
                  rmse: 0.02952968655074886
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.016216795435176193
        test_rows: 1024
        baseline: Source-training mean for test comparisons; phase-training mean for validation curves
        optimizer_policy: New AdamW factory and Trainer for every fit; all available labels rehearsed
        mutation: extend record with hidden Number record/w
      checks:
        Source learns both original tasks below 0.25 nRMSE: true
        Extension preserves every existing state entry: true
        Extension immediately preserves old predictions: false
        Diagnostic source pooling scale restores old predictions: true
        'extended: fresh optimizer covers current parameters': true
        'extended: all final targets below 0.25 nRMSE': true
        Added head parameters actually learn: true
        Hidden target placeholders cannot affect predictions: true
        Extended checkpoint preserves schema and learned state: true
        Extended checkpoint preserves predictions: true
        'continuation: fresh optimizer covers current parameters': true
        'scratch_adaptation: fresh optimizer covers current parameters': true
        'scratch_total: fresh optimizer covers current parameters': true
        'scratch_total: all final targets below 0.25 nRMSE': true
      outcome: not_met
      duration_seconds: 27.232
    - started_at: '2026-09-15T17:58:20.909761+00:00'
      mode: full
      seed: 4701
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 04f09ccb89861dbe7977f303d13c1e11bf180f1706f6ca837c89f4ba1050cf3b
        script_sha256: 61b3e662a7ec74440893deec64e6fb16806b8409e0f466c4c9feb98be4e8d144
        code_sha256: 51ba353c87e01417438f385202d12cd43919a7e1f61896c4ab0391420ba86ace
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-mutations-v3_tgit_/src/relflow
        packages:
          relflow: 0.2.2
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
      metrics:
        source:
          u:
            rmse: 0.01819302748771275
            baseline_rmse: 1.2663362526593396
            nrmse: 0.014366664027431033
          v:
            rmse: 0.0131784870577723
            baseline_rmse: 1.2961683303676375
            nrmse: 0.010167265122142301
        source_fit:
          steps: 512
          optimizer_covers_current_parameters: true
          validation_curve:
          - step: 0
            scores:
              u:
                rmse: 1.3509519123451783
                baseline_rmse: 1.295883063514218
                nrmse: 1.0424952299952304
              v:
                rmse: 1.7025465773867603
                baseline_rmse: 1.2898120364298942
                nrmse: 1.3199958825778098
          - step: 32
            scores:
              u:
                rmse: 0.08500439261560418
                baseline_rmse: 1.295883063514218
                nrmse: 0.06559572773880268
              v:
                rmse: 0.11706019494570107
                baseline_rmse: 1.2898120364298942
                nrmse: 0.09075756128754633
          - step: 128
            scores:
              u:
                rmse: 0.027080408434786946
                baseline_rmse: 1.295883063514218
                nrmse: 0.020897262412975296
              v:
                rmse: 0.04247991507908372
                baseline_rmse: 1.2898120364298942
                nrmse: 0.03293496562232822
          - step: 512
            scores:
              u:
                rmse: 0.018074103467788448
                baseline_rmse: 1.295883063514218
                nrmse: 0.013947325940640434
              v:
                rmse: 0.012383353951690268
                baseline_rmse: 1.2898120364298942
                nrmse: 0.009600898116881038
        source_prerequisite_met: true
        downstream_interpretable: true
        arms:
          extended:
            before:
              u:
                rmse: 0.014853532158426426
                baseline_rmse: 1.2663362526593396
                nrmse: 0.011729532442298494
              v:
                rmse: 0.018807925601864606
                baseline_rmse: 1.2961683303676375
                nrmse: 0.014510403595904891
              w:
                rmse: 1.7267224752213859
                baseline_rmse: 1.8289556685792812
                nrmse: 0.9441029680958264
            after:
              u:
                rmse: 0.019240178824238174
                baseline_rmse: 1.2663362526593396
                nrmse: 0.015193578154169787
              v:
                rmse: 0.03134749681726191
                baseline_rmse: 1.2961683303676375
                nrmse: 0.02418474212247625
              w:
                rmse: 0.02621196407253994
                baseline_rmse: 1.8289556685792812
                nrmse: 0.014331656323250959
            initial_old_prediction_drift:
              u: 0.015697479248046875
              v: 0.019600391387939453
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 0.015278067071696535
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.011658701135995377
                v:
                  rmse: 0.01805821366500976
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.014212497698503773
                w:
                  rmse: 1.712543069857594
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.9404759711919451
            - step: 32
              scores:
                u:
                  rmse: 0.07303491092190062
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.05573297950170152
                v:
                  rmse: 0.07692725262793854
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.060544659688309424
                w:
                  rmse: 0.09891990919687285
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.05432377106865058
            - step: 128
              scores:
                u:
                  rmse: 0.02054482042767095
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.015677763432695183
                v:
                  rmse: 0.012109868563221179
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.0095309249451098
                w:
                  rmse: 0.03621440731686269
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.01988783843859721
            - step: 256
              scores:
                u:
                  rmse: 0.019279549956777758
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.014712234861108293
                v:
                  rmse: 0.030539371964238324
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.024035641720005822
                w:
                  rmse: 0.026819529271701184
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.014728460429793097
            changed_existing_state_entries: []
            pooling_scale_control:
              source_capacity: 4
              extended_capacity: 5
              old_prediction_drift_with_source_capacity:
                u: 0.0
                v: 0.0
            new_head_updated_parameters:
            - embedder.embeddings.weight
            - embedder.linear.weight
            - embedder.scalar.weight
            - decoder.context_projection.0.weight
            - decoder.context_projection.0.bias
            - decoder.context_projection.1.weight
            - decoder.context_projection.1.bias
            - decoder.context_projection.3.weight
            - decoder.context_projection.3.bias
            - decoder.pool.queries
            - decoder.pool.blocks.0.attention_norm.weight
            - decoder.pool.blocks.0.attention_norm.bias
            - decoder.pool.blocks.0.ffn_norm.weight
            - decoder.pool.blocks.0.ffn_norm.bias
            - decoder.pool.blocks.0.attention.q_proj.weight
            - decoder.pool.blocks.0.attention.q_proj.bias
            - decoder.pool.blocks.0.attention.k_proj.weight
            - decoder.pool.blocks.0.attention.k_proj.bias
            - decoder.pool.blocks.0.attention.v_proj.weight
            - decoder.pool.blocks.0.attention.v_proj.bias
            - decoder.pool.blocks.0.attention.out_proj.weight
            - decoder.pool.blocks.0.attention.out_proj.bias
            - decoder.pool.blocks.0.ffn.0.weight
            - decoder.pool.blocks.0.ffn.0.bias
            - decoder.pool.blocks.0.ffn.3.weight
            - decoder.pool.blocks.0.ffn.3.bias
            - decoder.pool.norm.weight
            - decoder.pool.norm.bias
            - decoder.classification.weight
            - decoder.classification.bias
            - decoder.regression.weight
            - decoder.regression.bias
          continuation:
            before:
              u:
                rmse: 0.01819302748771275
                baseline_rmse: 1.2663362526593396
                nrmse: 0.014366664027431033
              v:
                rmse: 0.0131784870577723
                baseline_rmse: 1.2961683303676375
                nrmse: 0.010167265122142301
            after:
              u:
                rmse: 0.04389199309315439
                baseline_rmse: 1.2663362526593396
                nrmse: 0.034660614825627906
              v:
                rmse: 0.014499176546597178
                baseline_rmse: 1.2961683303676375
                nrmse: 0.011186183311919616
            initial_old_prediction_drift:
              u: 0.0
              v: 0.0
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 0.018735863047899252
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.014297347090788814
                v:
                  rmse: 0.012682751132877708
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.009981805212327636
            - step: 32
              scores:
                u:
                  rmse: 0.047761862787583105
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.036447102982708444
                v:
                  rmse: 0.0863394126802456
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.06795238592097448
            - step: 128
              scores:
                u:
                  rmse: 0.010687123759535412
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.00815534984439513
                v:
                  rmse: 0.03350553736899516
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.026370126169604085
            - step: 256
              scores:
                u:
                  rmse: 0.04446787523680337
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.033933459324776406
                v:
                  rmse: 0.014381186909938976
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.011318538458502054
          scratch_adaptation:
            before:
              u:
                rmse: 1.2899407763604933
                baseline_rmse: 1.2663362526593396
                nrmse: 1.0186400125966413
              v:
                rmse: 1.109205002962587
                baseline_rmse: 1.2961683303676375
                nrmse: 0.8557569082466154
              w:
                rmse: 1.748896289350403
                baseline_rmse: 1.8289556685792812
                nrmse: 0.956226725117363
            after:
              u:
                rmse: 0.04540419300395933
                baseline_rmse: 1.2663362526593396
                nrmse: 0.03585476835920106
              v:
                rmse: 0.056871312722615336
                baseline_rmse: 1.2961683303676375
                nrmse: 0.043876486865316866
              w:
                rmse: 0.033184504097638984
                baseline_rmse: 1.8289556685792812
                nrmse: 0.018143963064679667
            initial_old_prediction_drift:
              u: 3.0743343234062195
              v: 2.957523114979267
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 1.341623887228593
                  baseline_rmse: 1.3104433241303899
                  nrmse: 1.023793904340651
                v:
                  rmse: 1.0918173067057397
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.8593015481264951
                w:
                  rmse: 1.731605942968808
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.9509447146755577
            - step: 32
              scores:
                u:
                  rmse: 0.07542124900297918
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.05755399536491112
                v:
                  rmse: 0.08702007920715463
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.06848809624241606
                w:
                  rmse: 0.17318279451152083
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.09510666314249333
            - step: 128
              scores:
                u:
                  rmse: 0.02006893947490001
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.015314618423668002
                v:
                  rmse: 0.07701768016981209
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.060615829586650447
                w:
                  rmse: 0.0654289532399687
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.03593156833570836
            - step: 256
              scores:
                u:
                  rmse: 0.04544946245375731
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.03468250905388646
                v:
                  rmse: 0.055825085656781126
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.043936455517365205
                w:
                  rmse: 0.033380081026084765
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.018331313631769493
          scratch_total:
            before:
              u:
                rmse: 1.509441428360601
                baseline_rmse: 1.2663362526593396
                nrmse: 1.1919752160539778
              v:
                rmse: 1.564446056193685
                baseline_rmse: 1.2961683303676375
                nrmse: 1.2069775348931375
              w:
                rmse: 1.9603643690797954
                baseline_rmse: 1.8289556685792812
                nrmse: 1.071849035358299
            after:
              u:
                rmse: 0.014952189544917813
                baseline_rmse: 1.2663362526593396
                nrmse: 0.011807440175165025
              v:
                rmse: 0.014238709417792353
                baseline_rmse: 1.2961683303676375
                nrmse: 0.010985231689586004
              w:
                rmse: 0.03583276384072388
                baseline_rmse: 1.8289556685792812
                nrmse: 0.01959192584944309
            initial_old_prediction_drift:
              u: 3.5350125432014465
              v: 3.7103660702705383
            steps: 768
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 1.5127669405502646
                  baseline_rmse: 1.3104433241303899
                  nrmse: 1.1543932596658744
                v:
                  rmse: 1.5470830785671061
                  baseline_rmse: 1.2705869192092003
                  nrmse: 1.2176129434183016
                w:
                  rmse: 1.9448779062015815
                  baseline_rmse: 1.8209322963213432
                  nrmse: 1.068067116021081
            - step: 32
              scores:
                u:
                  rmse: 0.11807480780524139
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.09010294885022657
                v:
                  rmse: 0.09132753090093358
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.07187822377218779
                w:
                  rmse: 0.1510987225721377
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.08297877020325693
            - step: 128
              scores:
                u:
                  rmse: 0.06653331588804018
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.050771608861597796
                v:
                  rmse: 0.03689510605571201
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.02903784502887463
                w:
                  rmse: 0.04361173320269421
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.02395022225197436
            - step: 768
              scores:
                u:
                  rmse: 0.015076530816569185
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.011504908712152026
                v:
                  rmse: 0.0148685561383759
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.011702116489307107
                w:
                  rmse: 0.03509559328366416
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.019273420189517457
        test_rows: 1024
        baseline: Source-training mean for test comparisons; phase-training mean for validation curves
        optimizer_policy: New AdamW factory and Trainer for every fit; all available labels rehearsed
        mutation: extend record with hidden Number record/w
      checks:
        Source learns both original tasks below 0.25 nRMSE: true
        Extension preserves every existing state entry: true
        Extension immediately preserves old predictions: false
        Diagnostic source pooling scale restores old predictions: true
        'extended: fresh optimizer covers current parameters': true
        'extended: all final targets below 0.25 nRMSE': true
        Added head parameters actually learn: true
        Hidden target placeholders cannot affect predictions: true
        Extended checkpoint preserves schema and learned state: true
        Extended checkpoint preserves predictions: true
        'continuation: fresh optimizer covers current parameters': true
        'scratch_adaptation: fresh optimizer covers current parameters': true
        'scratch_total: fresh optimizer covers current parameters': true
        'scratch_total: all final targets below 0.25 nRMSE': true
      outcome: not_met
      duration_seconds: 64.293
    - started_at: '2026-09-15T17:59:46.523871+00:00'
      mode: full
      seed: 4701
      steps_override: null
      accelerator: cpu
      threads: 1
      provenance:
        revision: 5d985953fd0416bc5982a3518d8f43cadb52110c
        source_sha256: 2db77891e89376c6926a1f11a18aa46fb4f8bebed0df14438ba8eff89c4db6c1
        script_sha256: 624c767c1b4024e120b601bc1efaadbe9a478f8c3ab6d8b0e375600c396a001e
        code_sha256: 5f613c009ea56a099f0f766dcac921baef4eabf53cf14a0a335ebfb2b4ca271d
        python: 3.12.10
        platform: macOS-26.5.2-arm64-arm-64bit
        host: Granthams-MacBook-Pro.local
        relflow_path: /Users/grantham/Desktop/relflow/src/relflow
        packages:
          relflow: 0.2.2
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: null
        gpu: null
      metrics:
        source:
          u:
            rmse: 0.02812596173874027
            baseline_rmse: 1.2663362526593396
            nrmse: 0.02221050031512168
          v:
            rmse: 0.02869417926503313
            baseline_rmse: 1.2961683303676375
            nrmse: 0.022137695076143764
        source_fit:
          steps: 512
          optimizer_covers_current_parameters: true
          validation_curve:
          - step: 0
            scores:
              u:
                rmse: 1.1675138399845537
                baseline_rmse: 1.295883063514218
                nrmse: 0.9009407352068107
              v:
                rmse: 1.6476149821345185
                baseline_rmse: 1.2898120364298942
                nrmse: 1.2774070450567332
          - step: 32
            scores:
              u:
                rmse: 0.09449283629063597
                baseline_rmse: 1.295883063514218
                nrmse: 0.07291771838917874
              v:
                rmse: 0.10256670686191162
                baseline_rmse: 1.2898120364298942
                nrmse: 0.07952066189877464
          - step: 128
            scores:
              u:
                rmse: 0.07973298418747886
                baseline_rmse: 1.295883063514218
                nrmse: 0.06152791593035899
              v:
                rmse: 0.08406665221429643
                baseline_rmse: 1.2898120364298942
                nrmse: 0.06517744434063959
          - step: 512
            scores:
              u:
                rmse: 0.027936281602329575
                baseline_rmse: 1.295883063514218
                nrmse: 0.02155771796767762
              v:
                rmse: 0.02875704011542896
                baseline_rmse: 1.2898120364298942
                nrmse: 0.022295527800334655
        source_prerequisite_met: true
        downstream_interpretable: true
        arms:
          extended:
            before:
              u:
                rmse: 0.03620714967850646
                baseline_rmse: 1.2663362526593396
                nrmse: 0.028592050178197527
              v:
                rmse: 0.02858616864862413
                baseline_rmse: 1.2961683303676375
                nrmse: 0.02205436437450691
              w:
                rmse: 1.8046207412478505
                baseline_rmse: 1.8289556685792812
                nrmse: 0.9866946324891878
            after:
              u:
                rmse: 0.029878410352648474
                baseline_rmse: 1.2663362526593396
                nrmse: 0.023594373366396977
              v:
                rmse: 0.01723088652453224
                baseline_rmse: 1.2961683303676375
                nrmse: 0.013293710485616459
              w:
                rmse: 0.017570523323954566
                baseline_rmse: 1.8289556685792812
                nrmse: 0.009606861240985252
            initial_old_prediction_drift:
              u: 0.03130531311035156
              v: 0.028259754180908203
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 0.036365910348353285
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.027750845594551522
                v:
                  rmse: 0.028621911686710133
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.0225265279013923
                w:
                  rmse: 1.8242640005983064
                  baseline_rmse: 1.8209322963213432
                  nrmse: 1.0018296694960565
            - step: 32
              scores:
                u:
                  rmse: 0.0829061445372226
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.06326572314162393
                v:
                  rmse: 0.09543959500564209
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.07511457387349987
                w:
                  rmse: 0.1167811929072492
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.06413263861768566
            - step: 128
              scores:
                u:
                  rmse: 0.016524041520787628
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.012609504903047204
                v:
                  rmse: 0.026544684355906265
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.020891671364307286
                w:
                  rmse: 0.0275912369630025
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.015152258553897065
            - step: 256
              scores:
                u:
                  rmse: 0.02991676615019795
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.02282950021516628
                v:
                  rmse: 0.01665090444553678
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.013104892072948559
                w:
                  rmse: 0.016667696211426185
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.00915338601281242
            changed_existing_state_entries: []
            pooling_scale_control:
              source_capacity: 4
              extended_capacity: 5
              old_prediction_drift_with_source_capacity:
                u: 0.0
                v: 0.0
            new_head_updated_parameters:
            - embedder.embeddings.weight
            - embedder.linear.weight
            - embedder.scalar.weight
            - decoder.context_projection.0.weight
            - decoder.context_projection.0.bias
            - decoder.context_projection.1.weight
            - decoder.context_projection.1.bias
            - decoder.context_projection.3.weight
            - decoder.context_projection.3.bias
            - decoder.pool.queries
            - decoder.pool.blocks.0.ffn_norm.weight
            - decoder.pool.blocks.0.ffn_norm.bias
            - decoder.pool.blocks.0.attention.q_proj.weight
            - decoder.pool.blocks.0.attention.k_proj.weight
            - decoder.pool.blocks.0.attention.v_proj.weight
            - decoder.pool.blocks.0.attention.v_proj.bias
            - decoder.pool.blocks.0.attention.out_proj.weight
            - decoder.pool.blocks.0.attention.out_proj.bias
            - decoder.pool.blocks.0.ffn.0.weight
            - decoder.pool.blocks.0.ffn.0.bias
            - decoder.pool.blocks.0.ffn.3.weight
            - decoder.pool.blocks.0.ffn.3.bias
            - decoder.pool.norm.weight
            - decoder.pool.norm.bias
            - decoder.classification.weight
            - decoder.classification.bias
            - decoder.regression.weight
            - decoder.regression.bias
          continuation:
            before:
              u:
                rmse: 0.02812596173874027
                baseline_rmse: 1.2663362526593396
                nrmse: 0.02221050031512168
              v:
                rmse: 0.02869417926503313
                baseline_rmse: 1.2961683303676375
                nrmse: 0.022137695076143764
            after:
              u:
                rmse: 0.011916546676619125
                baseline_rmse: 1.2663362526593396
                nrmse: 0.009410254702567396
              v:
                rmse: 0.021253849793999875
                baseline_rmse: 1.2961683303676375
                nrmse: 0.016397445683595403
            initial_old_prediction_drift:
              u: 0.0
              v: 0.0
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 0.02812612461247093
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.021463060702098982
                v:
                  rmse: 0.028593799530620252
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.02250440257044101
            - step: 32
              scores:
                u:
                  rmse: 0.04618764406803422
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.0352458158376932
                v:
                  rmse: 0.12720398522725013
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.10011435133176133
            - step: 128
              scores:
                u:
                  rmse: 0.030859885900039748
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.023549195399593773
                v:
                  rmse: 0.015013459278503071
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.011816160745498063
            - step: 256
              scores:
                u:
                  rmse: 0.011949764555192689
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.009118871709406092
                v:
                  rmse: 0.021453482848453262
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.016884703064474864
          scratch_adaptation:
            before:
              u:
                rmse: 1.2522115077441496
                baseline_rmse: 1.2663362526593396
                nrmse: 0.9888459760308309
              v:
                rmse: 1.3195483181509495
                baseline_rmse: 1.2961683303676375
                nrmse: 1.0180377712026651
              w:
                rmse: 1.880565184544753
                baseline_rmse: 1.8289556685792812
                nrmse: 1.028218024554724
            after:
              u:
                rmse: 0.02305263211996044
                baseline_rmse: 1.2663362526593396
                nrmse: 0.018204195032361512
              v:
                rmse: 0.03041060302085751
                baseline_rmse: 1.2961683303676375
                nrmse: 0.02346192412541975
              w:
                rmse: 0.030353420581652007
                baseline_rmse: 1.8289556685792812
                nrmse: 0.016596039533987344
            initial_old_prediction_drift:
              u: 2.8804617300629616
              v: 3.253007024526596
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 1.3100973727454814
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.9997360043135494
                v:
                  rmse: 1.3005482675294557
                  baseline_rmse: 1.2705869192092003
                  nrmse: 1.023580715232692
                w:
                  rmse: 1.8851250732582583
                  baseline_rmse: 1.8209322963213432
                  nrmse: 1.0352526983384267
            - step: 32
              scores:
                u:
                  rmse: 0.08970207863563875
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.0684517040789727
                v:
                  rmse: 0.08707615899438154
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.06853223315771015
                w:
                  rmse: 0.13807697597571358
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.0758276275590572
            - step: 128
              scores:
                u:
                  rmse: 0.020001989634006886
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.015263528964352735
                v:
                  rmse: 0.04367162099246063
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.03437121879047943
                w:
                  rmse: 0.042662652300409235
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.023429016216910722
            - step: 256
              scores:
                u:
                  rmse: 0.022727568289104348
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.017343419490641734
                v:
                  rmse: 0.031449760681353835
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.024752152100643243
                w:
                  rmse: 0.029936998382595555
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.016440478563137375
          scratch_total:
            before:
              u:
                rmse: 1.2108697453294641
                baseline_rmse: 1.2663362526593396
                nrmse: 0.9561992265376638
              v:
                rmse: 1.4984804390435351
                baseline_rmse: 1.2961683303676375
                nrmse: 1.1560847491301651
              w:
                rmse: 1.7811620013140086
                baseline_rmse: 1.8289556685792812
                nrmse: 0.9738683292950461
            after:
              u:
                rmse: 0.024418871191067566
                baseline_rmse: 1.2663362526593396
                nrmse: 0.019283086257530172
              v:
                rmse: 0.01390915970708952
                baseline_rmse: 1.2961683303676375
                nrmse: 0.010730982528437806
              w:
                rmse: 0.030269642862249965
                baseline_rmse: 1.8289556685792812
                nrmse: 0.016550233219027773
            initial_old_prediction_drift:
              u: 2.729536585509777
              v: 3.533669948577881
            steps: 768
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 1.256439849717246
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.958789919854809
                v:
                  rmse: 1.4780311219579572
                  baseline_rmse: 1.2705869192092003
                  nrmse: 1.163266439794507
                w:
                  rmse: 1.7783453205838398
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.9766125430234074
            - step: 32
              scores:
                u:
                  rmse: 0.09396981368876796
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.07170841497561622
                v:
                  rmse: 0.09152444125120604
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.07203319967135335
                w:
                  rmse: 0.1645743642753917
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.09037917807700246
            - step: 128
              scores:
                u:
                  rmse: 0.03882999888277942
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.029631192870204447
                v:
                  rmse: 0.06739170171141323
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.053039820174881944
                w:
                  rmse: 0.05676309714715544
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.031172546756311884
            - step: 768
              scores:
                u:
                  rmse: 0.024525948593334793
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.018715764460557813
                v:
                  rmse: 0.014408844714654189
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.011340306197723254
                w:
                  rmse: 0.030040026284371683
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.016497058317356827
        test_rows: 1024
        baseline: Source-training mean for test comparisons; phase-training mean for validation curves
        optimizer_policy: New AdamW factory and Trainer for every fit; all available labels rehearsed
        mutation: extend record with hidden Number record/w
      checks:
        Source learns both original tasks below 0.25 nRMSE: true
        Source optimizer covers current parameters: true
        Extension preserves every existing state entry: true
        Extension immediately preserves old predictions: false
        Diagnostic source pooling scale restores old predictions: true
        'extended: fresh optimizer covers current parameters': true
        'extended: all final targets below 0.25 nRMSE': true
        Added head parameters actually learn: true
        Hidden target placeholders cannot affect predictions: true
        Extended checkpoint preserves schema and learned state: true
        Extended checkpoint preserves predictions: true
        'continuation: fresh optimizer covers current parameters': true
        'scratch_adaptation: schema and field order match extension': true
        'scratch_adaptation: fresh optimizer covers current parameters': true
        'scratch_total: schema and field order match extension': true
        'scratch_total: fresh optimizer covers current parameters': true
        'scratch_total: all final targets below 0.25 nRMSE': true
      outcome: not_met
      duration_seconds: 25.312
    - started_at: '2026-09-15T18:00:23.122619+00:00'
      mode: full
      seed: 7101
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 04f09ccb89861dbe7977f303d13c1e11bf180f1706f6ca837c89f4ba1050cf3b
        script_sha256: 61b3e662a7ec74440893deec64e6fb16806b8409e0f466c4c9feb98be4e8d144
        code_sha256: 51ba353c87e01417438f385202d12cd43919a7e1f61896c4ab0391420ba86ace
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-mutations-v3_tgit_/src/relflow
        packages:
          relflow: 0.2.2
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
      metrics:
        source:
          u:
            rmse: 0.012642827012693
            baseline_rmse: 1.2908974940031006
            nrmse: 0.009793827218214922
          v:
            rmse: 0.020391549975120982
            baseline_rmse: 1.2969480983896875
            nrmse: 0.015722718588692543
        source_fit:
          steps: 512
          optimizer_covers_current_parameters: true
          validation_curve:
          - step: 0
            scores:
              u:
                rmse: 1.4481777383281333
                baseline_rmse: 1.214202473192484
                nrmse: 1.1926987222489027
              v:
                rmse: 1.3169269796610394
                baseline_rmse: 1.3285155523136438
                nrmse: 0.9912770515690068
          - step: 32
            scores:
              u:
                rmse: 0.10487309515287249
                baseline_rmse: 1.214202473192484
                nrmse: 0.08637199929030885
              v:
                rmse: 0.07997501419402694
                baseline_rmse: 1.3285155523136438
                nrmse: 0.06019877904684549
          - step: 128
            scores:
              u:
                rmse: 0.04253704243701743
                baseline_rmse: 1.214202473192484
                nrmse: 0.035032907094296586
              v:
                rmse: 0.03825585841345199
                baseline_rmse: 1.3285155523136438
                nrmse: 0.028795943221611848
          - step: 512
            scores:
              u:
                rmse: 0.012037955555919891
                baseline_rmse: 1.214202473192484
                nrmse: 0.009914290097160383
              v:
                rmse: 0.020201592321032528
                baseline_rmse: 1.3285155523136438
                nrmse: 0.015206139127126466
        source_prerequisite_met: true
        downstream_interpretable: true
        arms:
          extended:
            before:
              u:
                rmse: 0.011472294450191853
                baseline_rmse: 1.2908974940031006
                nrmse: 0.008887068495745564
              v:
                rmse: 0.021527162316054067
                baseline_rmse: 1.2969480983896875
                nrmse: 0.016598322124672955
              w:
                rmse: 2.435462882951994
                baseline_rmse: 1.8516566868110593
                nrmse: 1.3152885739020936
            after:
              u:
                rmse: 0.027158872331041452
                baseline_rmse: 1.2908974940031006
                nrmse: 0.021038752075365187
              v:
                rmse: 0.03049903148222875
                baseline_rmse: 1.2969480983896875
                nrmse: 0.0235160000003831
              w:
                rmse: 0.021762923572475352
                baseline_rmse: 1.8516566868110593
                nrmse: 0.011753217390398469
            initial_old_prediction_drift:
              u: 0.015616416931152344
              v: 0.007040500640869141
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 0.011989812926413383
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.009576173578666376
                v:
                  rmse: 0.02191870629844032
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.016695960961862634
                w:
                  rmse: 2.3604918548808027
                  baseline_rmse: 1.7725715949102796
                  nrmse: 1.3316764533848244
            - step: 32
              scores:
                u:
                  rmse: 0.09033914836785212
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.0721531996394737
                v:
                  rmse: 0.07151185546255423
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.054472154097804926
                w:
                  rmse: 0.12841173673469872
                  baseline_rmse: 1.7725715949102796
                  nrmse: 0.07244375183683252
            - step: 128
              scores:
                u:
                  rmse: 0.012968520732906323
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.010357860156705073
                v:
                  rmse: 0.01598330308986742
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.01217483371493662
                w:
                  rmse: 0.021488180853669117
                  baseline_rmse: 1.7725715949102796
                  nrmse: 0.012122602503261236
            - step: 256
              scores:
                u:
                  rmse: 0.027410738175180402
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.021892750812370288
                v:
                  rmse: 0.030175315962539417
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.022985202249745828
                w:
                  rmse: 0.02093588394903854
                  baseline_rmse: 1.7725715949102796
                  nrmse: 0.011811023040848306
            changed_existing_state_entries: []
            pooling_scale_control:
              source_capacity: 4
              extended_capacity: 5
              old_prediction_drift_with_source_capacity:
                u: 0.0
                v: 0.0
            new_head_updated_parameters:
            - embedder.embeddings.weight
            - embedder.linear.weight
            - embedder.scalar.weight
            - decoder.context_projection.0.weight
            - decoder.context_projection.0.bias
            - decoder.context_projection.1.weight
            - decoder.context_projection.1.bias
            - decoder.context_projection.3.weight
            - decoder.context_projection.3.bias
            - decoder.pool.queries
            - decoder.pool.blocks.0.attention_norm.weight
            - decoder.pool.blocks.0.attention_norm.bias
            - decoder.pool.blocks.0.ffn_norm.weight
            - decoder.pool.blocks.0.ffn_norm.bias
            - decoder.pool.blocks.0.attention.q_proj.weight
            - decoder.pool.blocks.0.attention.q_proj.bias
            - decoder.pool.blocks.0.attention.k_proj.weight
            - decoder.pool.blocks.0.attention.k_proj.bias
            - decoder.pool.blocks.0.attention.v_proj.weight
            - decoder.pool.blocks.0.attention.v_proj.bias
            - decoder.pool.blocks.0.attention.out_proj.weight
            - decoder.pool.blocks.0.attention.out_proj.bias
            - decoder.pool.blocks.0.ffn.0.weight
            - decoder.pool.blocks.0.ffn.0.bias
            - decoder.pool.blocks.0.ffn.3.weight
            - decoder.pool.blocks.0.ffn.3.bias
            - decoder.pool.norm.weight
            - decoder.pool.norm.bias
            - decoder.classification.weight
            - decoder.classification.bias
            - decoder.regression.weight
            - decoder.regression.bias
          continuation:
            before:
              u:
                rmse: 0.012642827012693
                baseline_rmse: 1.2908974940031006
                nrmse: 0.009793827218214922
              v:
                rmse: 0.020391549975120982
                baseline_rmse: 1.2969480983896875
                nrmse: 0.015722718588692543
            after:
              u:
                rmse: 0.013533551226681172
                baseline_rmse: 1.2908974940031006
                nrmse: 0.010483831047431459
              v:
                rmse: 0.02074744998911489
                baseline_rmse: 1.2969480983896875
                nrmse: 0.015997132047824634
            initial_old_prediction_drift:
              u: 0.0
              v: 0.0
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 0.012602725270002058
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.010065702066453058
                v:
                  rmse: 0.020709362689774323
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.015774777320599905
            - step: 32
              scores:
                u:
                  rmse: 0.020870263408642533
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.01666892271466285
                v:
                  rmse: 0.07169098957546331
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.05460860449388878
            - step: 128
              scores:
                u:
                  rmse: 0.01757523696940431
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.014037209832894046
                v:
                  rmse: 0.008292946113259245
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.00631691956088025
            - step: 256
              scores:
                u:
                  rmse: 0.01312904452612221
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.010486069305319465
                v:
                  rmse: 0.020331855190023305
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.015487221550070608
          scratch_adaptation:
            before:
              u:
                rmse: 1.2192609324518888
                baseline_rmse: 1.2908974940031006
                nrmse: 0.9445063904113213
              v:
                rmse: 1.5097844652449826
                baseline_rmse: 1.2969480983896875
                nrmse: 1.164105539087922
              w:
                rmse: 2.1888246131338143
                baseline_rmse: 1.8516566868110593
                nrmse: 1.1820898705058704
            after:
              u:
                rmse: 0.028828906762000617
                baseline_rmse: 1.2908974940031006
                nrmse: 0.02233245234104651
              v:
                rmse: 0.013749167456600677
                baseline_rmse: 1.2969480983896875
                nrmse: 0.010601170142175985
              w:
                rmse: 0.04253773112874039
                baseline_rmse: 1.8516566868110593
                nrmse: 0.02297279589230943
            initial_old_prediction_drift:
              u: 2.8637255281209946
              v: 3.57562917470932
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 1.1908904023705609
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.9511552245444219
                v:
                  rmse: 1.5197112873402683
                  baseline_rmse: 1.3128148986756512
                  nrmse: 1.1575975325031207
                w:
                  rmse: 2.086514793810442
                  baseline_rmse: 1.7725715949102796
                  nrmse: 1.1771117171242118
            - step: 32
              scores:
                u:
                  rmse: 0.09774674429524874
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.07806959089901538
                v:
                  rmse: 0.09318242030853932
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.07097910025437738
                w:
                  rmse: 0.1725976821797815
                  baseline_rmse: 1.7725715949102796
                  nrmse: 0.09737134605754398
            - step: 128
              scores:
                u:
                  rmse: 0.01929405457029216
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.015410016547826892
                v:
                  rmse: 0.027658242828711484
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.021067892249404484
                w:
                  rmse: 0.0574078117716002
                  baseline_rmse: 1.7725715949102796
                  nrmse: 0.032386737966714374
            - step: 256
              scores:
                u:
                  rmse: 0.029240613188751634
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.023354258249122635
                v:
                  rmse: 0.012891726881292757
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.009819912079225904
                w:
                  rmse: 0.04314531080519493
                  baseline_rmse: 1.7725715949102796
                  nrmse: 0.02434051799604674
          scratch_total:
            before:
              u:
                rmse: 1.4380359347862814
                baseline_rmse: 1.2908974940031006
                nrmse: 1.113981506251826
              v:
                rmse: 1.6409674251416102
                baseline_rmse: 1.2969480983896875
                nrmse: 1.265252963614398
              w:
                rmse: 1.872982479969112
                baseline_rmse: 1.8516566868110593
                nrmse: 1.0115171420868412
            after:
              u:
                rmse: 0.021905167550788005
                baseline_rmse: 1.2908974940031006
                nrmse: 0.016968944205522946
              v:
                rmse: 0.00931536736181866
                baseline_rmse: 1.2969480983896875
                nrmse: 0.00718252902593772
              w:
                rmse: 0.024011370962885997
                baseline_rmse: 1.8516566868110593
                nrmse: 0.012967506954131226
            initial_old_prediction_drift:
              u: 3.3363696336746216
              v: 3.764289975166321
            steps: 768
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 1.3889139176866374
                  baseline_rmse: 1.2520463239225392
                  nrmse: 1.1093151196956559
                v:
                  rmse: 1.6675407357134648
                  baseline_rmse: 1.3128148986756512
                  nrmse: 1.270202476674858
                w:
                  rmse: 1.8040810343170564
                  baseline_rmse: 1.7725715949102796
                  nrmse: 1.0177761166303534
            - step: 32
              scores:
                u:
                  rmse: 0.08006947008944894
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.06395088469138992
                v:
                  rmse: 0.07946685057847
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.06053164894657657
                w:
                  rmse: 0.19453834067577835
                  baseline_rmse: 1.7725715949102796
                  nrmse: 0.10974921477607515
            - step: 128
              scores:
                u:
                  rmse: 0.039602594093698616
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.031630294612125485
                v:
                  rmse: 0.06683773516488707
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.05091177380170808
                w:
                  rmse: 0.06675999568144961
                  baseline_rmse: 1.7725715949102796
                  nrmse: 0.03766279222410124
            - step: 768
              scores:
                u:
                  rmse: 0.021776166860430823
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.017392461001129903
                v:
                  rmse: 0.00983754729978949
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.00749347627735903
                w:
                  rmse: 0.02306899778914374
                  baseline_rmse: 1.7725715949102796
                  nrmse: 0.01301442370812187
        test_rows: 1024
        baseline: Source-training mean for test comparisons; phase-training mean for validation curves
        optimizer_policy: New AdamW factory and Trainer for every fit; all available labels rehearsed
        mutation: extend record with hidden Number record/w
      checks:
        Source learns both original tasks below 0.25 nRMSE: true
        Extension preserves every existing state entry: true
        Extension immediately preserves old predictions: false
        Diagnostic source pooling scale restores old predictions: true
        'extended: fresh optimizer covers current parameters': true
        'extended: all final targets below 0.25 nRMSE': true
        Added head parameters actually learn: true
        Hidden target placeholders cannot affect predictions: true
        Extended checkpoint preserves schema and learned state: true
        Extended checkpoint preserves predictions: true
        'continuation: fresh optimizer covers current parameters': true
        'scratch_adaptation: fresh optimizer covers current parameters': true
        'scratch_total: fresh optimizer covers current parameters': true
        'scratch_total: all final targets below 0.25 nRMSE': true
      outcome: not_met
      duration_seconds: 64.508
    - started_at: '2026-09-15T18:02:25.640505+00:00'
      mode: full
      seed: 7102
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 04f09ccb89861dbe7977f303d13c1e11bf180f1706f6ca837c89f4ba1050cf3b
        script_sha256: 61b3e662a7ec74440893deec64e6fb16806b8409e0f466c4c9feb98be4e8d144
        code_sha256: 51ba353c87e01417438f385202d12cd43919a7e1f61896c4ab0391420ba86ace
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-mutations-v3_tgit_/src/relflow
        packages:
          relflow: 0.2.2
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
      metrics:
        source:
          u:
            rmse: 0.03619475777939533
            baseline_rmse: 1.2967289998405087
            nrmse: 0.027912353146915897
          v:
            rmse: 0.04001551584952593
            baseline_rmse: 1.2693145185962316
            nrmse: 0.03152529594775308
        source_fit:
          steps: 512
          optimizer_covers_current_parameters: true
          validation_curve:
          - step: 0
            scores:
              u:
                rmse: 1.3057816740747938
                baseline_rmse: 1.2723746695686682
                nrmse: 1.0262556346845937
              v:
                rmse: 1.7709300687901668
                baseline_rmse: 1.3468533739051283
                nrmse: 1.314864782686367
          - step: 32
            scores:
              u:
                rmse: 0.09028085487952377
                baseline_rmse: 1.2723746695686682
                nrmse: 0.0709546150507136
              v:
                rmse: 0.11234495794035862
                baseline_rmse: 1.3468533739051283
                nrmse: 0.08341290901965112
          - step: 128
            scores:
              u:
                rmse: 0.04704011706734231
                baseline_rmse: 1.2723746695686682
                nrmse: 0.036970334440317644
              v:
                rmse: 0.024967212372297355
                baseline_rmse: 1.3468533739051283
                nrmse: 0.018537439082850035
          - step: 512
            scores:
              u:
                rmse: 0.03577179115478007
                baseline_rmse: 1.2723746695686682
                nrmse: 0.028114196242924747
              v:
                rmse: 0.038996974405307465
                baseline_rmse: 1.3468533739051283
                nrmse: 0.02895413499409951
        source_prerequisite_met: true
        downstream_interpretable: true
        arms:
          extended:
            before:
              u:
                rmse: 0.034872039702596086
                baseline_rmse: 1.2967289998405087
                nrmse: 0.02689231112043085
              v:
                rmse: 0.03595434348491558
                baseline_rmse: 1.2693145185962316
                nrmse: 0.028325795504709452
              w:
                rmse: 1.7387411370781507
                baseline_rmse: 1.781881033784205
                nrmse: 0.9757896874773746
            after:
              u:
                rmse: 0.02617816181915077
                baseline_rmse: 1.2967289998405087
                nrmse: 0.02018784327517203
              v:
                rmse: 0.034476748667049514
                baseline_rmse: 1.2693145185962316
                nrmse: 0.027161706702274437
              w:
                rmse: 0.020370154209505255
                baseline_rmse: 1.781881033784205
                nrmse: 0.011431826156342705
            initial_old_prediction_drift:
              u: 0.02763199806213379
              v: 0.02259039878845215
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 0.03497645538661746
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.02740746798366344
                v:
                  rmse: 0.0359159228346385
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.02691542365487417
                w:
                  rmse: 1.7619841261571572
                  baseline_rmse: 1.7848255975425062
                  nrmse: 0.9872024071053221
            - step: 32
              scores:
                u:
                  rmse: 0.07851660846800294
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.061525429291957215
                v:
                  rmse: 0.04250877017546018
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.031856109157711594
                w:
                  rmse: 0.12655087870319198
                  baseline_rmse: 1.7848255975425062
                  nrmse: 0.0709037784293533
            - step: 128
              scores:
                u:
                  rmse: 0.016569259863831672
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.012983632967127944
                v:
                  rmse: 0.02356812906567172
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.017661976318300913
                w:
                  rmse: 0.04250871038825767
                  baseline_rmse: 1.7848255975425062
                  nrmse: 0.023816730579607964
            - step: 256
              scores:
                u:
                  rmse: 0.026681915213499285
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.020907885858456793
                v:
                  rmse: 0.03380502289581418
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.025333513413890202
                w:
                  rmse: 0.02048024492089371
                  baseline_rmse: 1.7848255975425062
                  nrmse: 0.011474647690560122
            changed_existing_state_entries: []
            pooling_scale_control:
              source_capacity: 4
              extended_capacity: 5
              old_prediction_drift_with_source_capacity:
                u: 0.0
                v: 0.0
            new_head_updated_parameters:
            - embedder.embeddings.weight
            - embedder.linear.weight
            - embedder.scalar.weight
            - decoder.context_projection.0.weight
            - decoder.context_projection.0.bias
            - decoder.context_projection.1.weight
            - decoder.context_projection.1.bias
            - decoder.context_projection.3.weight
            - decoder.context_projection.3.bias
            - decoder.pool.queries
            - decoder.pool.blocks.0.attention_norm.weight
            - decoder.pool.blocks.0.attention_norm.bias
            - decoder.pool.blocks.0.ffn_norm.weight
            - decoder.pool.blocks.0.ffn_norm.bias
            - decoder.pool.blocks.0.attention.q_proj.weight
            - decoder.pool.blocks.0.attention.q_proj.bias
            - decoder.pool.blocks.0.attention.k_proj.weight
            - decoder.pool.blocks.0.attention.k_proj.bias
            - decoder.pool.blocks.0.attention.v_proj.weight
            - decoder.pool.blocks.0.attention.v_proj.bias
            - decoder.pool.blocks.0.attention.out_proj.weight
            - decoder.pool.blocks.0.attention.out_proj.bias
            - decoder.pool.blocks.0.ffn.0.weight
            - decoder.pool.blocks.0.ffn.0.bias
            - decoder.pool.blocks.0.ffn.3.weight
            - decoder.pool.blocks.0.ffn.3.bias
            - decoder.pool.norm.weight
            - decoder.pool.norm.bias
            - decoder.classification.weight
            - decoder.classification.bias
            - decoder.regression.weight
            - decoder.regression.bias
          continuation:
            before:
              u:
                rmse: 0.03619475777939533
                baseline_rmse: 1.2967289998405087
                nrmse: 0.027912353146915897
              v:
                rmse: 0.04001551584952593
                baseline_rmse: 1.2693145185962316
                nrmse: 0.03152529594775308
            after:
              u:
                rmse: 0.01113863220749229
                baseline_rmse: 1.2967289998405087
                nrmse: 0.008589791860028029
              v:
                rmse: 0.02652724758703262
                baseline_rmse: 1.2693145185962316
                nrmse: 0.02089887667586896
            initial_old_prediction_drift:
              u: 0.0
              v: 0.0
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 0.036313625699826456
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.028455271488703665
                v:
                  rmse: 0.0399088880002447
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.029907755205597842
            - step: 32
              scores:
                u:
                  rmse: 0.12632528095574588
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.09898819234400201
                v:
                  rmse: 0.08776433975828732
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.06577067216845735
            - step: 128
              scores:
                u:
                  rmse: 0.013455144390389199
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.010543419423692043
                v:
                  rmse: 0.032192121521092104
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.02412480372782568
            - step: 256
              scores:
                u:
                  rmse: 0.011103581102286394
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.008700739974965066
                v:
                  rmse: 0.026375210338510726
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.01976560545348935
          scratch_adaptation:
            before:
              u:
                rmse: 1.4458342313924608
                baseline_rmse: 1.2967289998405087
                nrmse: 1.114985653571634
              v:
                rmse: 1.6118714028737393
                baseline_rmse: 1.2693145185962316
                nrmse: 1.2698754952053573
              w:
                rmse: 1.8029852957423909
                baseline_rmse: 1.781881033784205
                nrmse: 1.0118438108706767
            after:
              u:
                rmse: 0.0301686763189551
                baseline_rmse: 1.2967289998405087
                nrmse: 0.023265212949402456
              v:
                rmse: 0.06359981585245611
                baseline_rmse: 1.2693145185962316
                nrmse: 0.05010563963515743
              w:
                rmse: 0.02979031595210785
                baseline_rmse: 1.781881033784205
                nrmse: 0.01671846514289551
            initial_old_prediction_drift:
              u: 3.4850218892097473
              v: 3.782611846923828
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 1.4203856895664793
                  baseline_rmse: 1.2761651462099894
                  nrmse: 1.1130108777729921
                v:
                  rmse: 1.6633459686330494
                  baseline_rmse: 1.3343993130174792
                  nrmse: 1.2465129083975042
                w:
                  rmse: 1.8216507481098305
                  baseline_rmse: 1.7848255975425062
                  nrmse: 1.0206323523250833
            - step: 32
              scores:
                u:
                  rmse: 0.10742258146671714
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.08417608158767334
                v:
                  rmse: 0.11297330867112705
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.08466229528825246
                w:
                  rmse: 0.1840070516908891
                  baseline_rmse: 1.7848255975425062
                  nrmse: 0.10309525588620258
            - step: 128
              scores:
                u:
                  rmse: 0.015407758053566608
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.012073482886854602
                v:
                  rmse: 0.021865477122599692
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.016386007478642398
                w:
                  rmse: 0.04819928675177008
                  baseline_rmse: 1.7848255975425062
                  nrmse: 0.027005040054409124
            - step: 256
              scores:
                u:
                  rmse: 0.030187696362557213
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.023655007701949816
                v:
                  rmse: 0.06318318408346218
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.04734953283255666
                w:
                  rmse: 0.029402092898951477
                  baseline_rmse: 1.7848255975425062
                  nrmse: 0.016473370249415226
          scratch_total:
            before:
              u:
                rmse: 1.4600618508708036
                baseline_rmse: 1.2967289998405087
                nrmse: 1.125957583311844
              v:
                rmse: 1.1369067410066136
                baseline_rmse: 1.2693145185962316
                nrmse: 0.8956856038044446
              w:
                rmse: 1.9207764498672377
                baseline_rmse: 1.781881033784205
                nrmse: 1.077948759456774
            after:
              u:
                rmse: 0.021576266176060177
                baseline_rmse: 1.2967289998405087
                nrmse: 0.016638994098777733
              v:
                rmse: 0.011082497616507384
                baseline_rmse: 1.2693145185962316
                nrmse: 0.00873108867356517
              w:
                rmse: 0.03203390226617649
                baseline_rmse: 1.781881033784205
                nrmse: 0.017977576313355583
            initial_old_prediction_drift:
              u: 3.5209039449691772
              v: 2.71368208527565
            steps: 768
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 1.4458387934119932
                  baseline_rmse: 1.2761651462099894
                  nrmse: 1.132955869940429
                v:
                  rmse: 1.1961971300684766
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.8964311644941679
                w:
                  rmse: 1.9311233553703957
                  baseline_rmse: 1.7848255975425062
                  nrmse: 1.0819675367886499
            - step: 32
              scores:
                u:
                  rmse: 0.07357051740094268
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.0576496839922604
                v:
                  rmse: 0.07911851292948417
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.059291482060623485
                w:
                  rmse: 0.16387433636776993
                  baseline_rmse: 1.7848255975425062
                  nrmse: 0.09181532167255194
            - step: 128
              scores:
                u:
                  rmse: 0.01636567853368862
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.01282410711677256
                v:
                  rmse: 0.04020440315094177
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.030129214515276913
                w:
                  rmse: 0.032668450699060055
                  baseline_rmse: 1.7848255975425062
                  nrmse: 0.018303441380513954
            - step: 768
              scores:
                u:
                  rmse: 0.021918321358026984
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.017175144943521584
                v:
                  rmse: 0.011705376725132962
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.008772019447959379
                w:
                  rmse: 0.032805710450395445
                  baseline_rmse: 1.7848255975425062
                  nrmse: 0.018380345113587025
        test_rows: 1024
        baseline: Source-training mean for test comparisons; phase-training mean for validation curves
        optimizer_policy: New AdamW factory and Trainer for every fit; all available labels rehearsed
        mutation: extend record with hidden Number record/w
      checks:
        Source learns both original tasks below 0.25 nRMSE: true
        Extension preserves every existing state entry: true
        Extension immediately preserves old predictions: false
        Diagnostic source pooling scale restores old predictions: true
        'extended: fresh optimizer covers current parameters': true
        'extended: all final targets below 0.25 nRMSE': true
        Added head parameters actually learn: true
        Hidden target placeholders cannot affect predictions: true
        Extended checkpoint preserves schema and learned state: true
        Extended checkpoint preserves predictions: true
        'continuation: fresh optimizer covers current parameters': true
        'scratch_adaptation: fresh optimizer covers current parameters': true
        'scratch_total: fresh optimizer covers current parameters': true
        'scratch_total: all final targets below 0.25 nRMSE': true
      outcome: not_met
      duration_seconds: 77.691
    - started_at: '2026-09-15T18:02:41.420090+00:00'
      mode: full
      seed: 4701
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 2db77891e89376c6926a1f11a18aa46fb4f8bebed0df14438ba8eff89c4db6c1
        script_sha256: 624c767c1b4024e120b601bc1efaadbe9a478f8c3ab6d8b0e375600c396a001e
        code_sha256: 5f613c009ea56a099f0f766dcac921baef4eabf53cf14a0a335ebfb2b4ca271d
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-mutations-v3_tgit_/src/relflow
        packages:
          relflow: 0.2.2
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
      metrics:
        source:
          u:
            rmse: 0.011876638061833422
            baseline_rmse: 1.2663362526593396
            nrmse: 0.009378739680627612
          v:
            rmse: 0.029771526388557422
            baseline_rmse: 1.2961683303676375
            nrmse: 0.02296887347966078
        source_fit:
          steps: 512
          optimizer_covers_current_parameters: true
          validation_curve:
          - step: 0
            scores:
              u:
                rmse: 1.1675138300279053
                baseline_rmse: 1.295883063514218
                nrmse: 0.9009407275235184
              v:
                rmse: 1.6476150162913918
                baseline_rmse: 1.2898120364298942
                nrmse: 1.2774070715387882
          - step: 32
            scores:
              u:
                rmse: 0.09449274849298497
                baseline_rmse: 1.295883063514218
                nrmse: 0.07291765063796456
              v:
                rmse: 0.10256670713688135
                baseline_rmse: 1.2898120364298942
                nrmse: 0.07952066211196053
          - step: 128
            scores:
              u:
                rmse: 0.07972301215306196
                baseline_rmse: 1.295883063514218
                nrmse: 0.06152022076503299
              v:
                rmse: 0.08407132185296792
                baseline_rmse: 1.2898120364298942
                nrmse: 0.06518106474310104
          - step: 512
            scores:
              u:
                rmse: 0.0117645243818427
                baseline_rmse: 1.295883063514218
                nrmse: 0.009078384240889205
              v:
                rmse: 0.028888381892659666
                baseline_rmse: 1.2898120364298942
                nrmse: 0.022397357969011208
        source_prerequisite_met: true
        downstream_interpretable: true
        arms:
          extended:
            before:
              u:
                rmse: 0.018670282761765817
                baseline_rmse: 1.2663362526593396
                nrmse: 0.014743542816971187
              v:
                rmse: 0.03499104816395304
                baseline_rmse: 1.2961683303676375
                nrmse: 0.026995759226757524
              w:
                rmse: 1.803691733248121
                baseline_rmse: 1.8289556685792812
                nrmse: 0.9861866879743537
            after:
              u:
                rmse: 0.03541920265964375
                baseline_rmse: 1.2663362526593396
                nrmse: 0.02796982443269905
              v:
                rmse: 0.05258085584809817
                baseline_rmse: 1.2961683303676375
                nrmse: 0.040566379085334114
              w:
                rmse: 0.03525589383133793
                baseline_rmse: 1.8289556685792812
                nrmse: 0.019276516340455886
            initial_old_prediction_drift:
              u: 0.030529499053955078
              v: 0.027675628662109375
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 0.01872948207341073
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.014292477765751231
                v:
                  rmse: 0.034707762389102226
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.027316322767358542
                w:
                  rmse: 1.8227888101287097
                  baseline_rmse: 1.8209322963213432
                  nrmse: 1.0010195402712758
            - step: 32
              scores:
                u:
                  rmse: 0.08361337667316292
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.06380541236199494
                v:
                  rmse: 0.07764783231496324
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.06111178317756523
                w:
                  rmse: 0.10993914495916435
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.06037519636576493
            - step: 128
              scores:
                u:
                  rmse: 0.02387832804820865
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.01822156487695056
                v:
                  rmse: 0.02310094682784648
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.018181319576486953
                w:
                  rmse: 0.056417158157502645
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.03098256770527761
            - step: 256
              scores:
                u:
                  rmse: 0.03487140440785663
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.026610387313772074
                v:
                  rmse: 0.05276883469692369
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.04153107032596121
                w:
                  rmse: 0.03631950546289549
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.01994555510727573
            changed_existing_state_entries: []
            pooling_scale_control:
              source_capacity: 4
              extended_capacity: 5
              old_prediction_drift_with_source_capacity:
                u: 0.0
                v: 0.0
            new_head_updated_parameters:
            - embedder.embeddings.weight
            - embedder.linear.weight
            - embedder.scalar.weight
            - decoder.context_projection.0.weight
            - decoder.context_projection.0.bias
            - decoder.context_projection.1.weight
            - decoder.context_projection.1.bias
            - decoder.context_projection.3.weight
            - decoder.context_projection.3.bias
            - decoder.pool.queries
            - decoder.pool.blocks.0.attention_norm.weight
            - decoder.pool.blocks.0.attention_norm.bias
            - decoder.pool.blocks.0.ffn_norm.weight
            - decoder.pool.blocks.0.ffn_norm.bias
            - decoder.pool.blocks.0.attention.q_proj.weight
            - decoder.pool.blocks.0.attention.q_proj.bias
            - decoder.pool.blocks.0.attention.k_proj.weight
            - decoder.pool.blocks.0.attention.k_proj.bias
            - decoder.pool.blocks.0.attention.v_proj.weight
            - decoder.pool.blocks.0.attention.v_proj.bias
            - decoder.pool.blocks.0.attention.out_proj.weight
            - decoder.pool.blocks.0.attention.out_proj.bias
            - decoder.pool.blocks.0.ffn.0.weight
            - decoder.pool.blocks.0.ffn.0.bias
            - decoder.pool.blocks.0.ffn.3.weight
            - decoder.pool.blocks.0.ffn.3.bias
            - decoder.pool.norm.weight
            - decoder.pool.norm.bias
            - decoder.classification.weight
            - decoder.classification.bias
            - decoder.regression.weight
            - decoder.regression.bias
          continuation:
            before:
              u:
                rmse: 0.011876638061833422
                baseline_rmse: 1.2663362526593396
                nrmse: 0.009378739680627612
              v:
                rmse: 0.029771526388557422
                baseline_rmse: 1.2961683303676375
                nrmse: 0.02296887347966078
            after:
              u:
                rmse: 0.009253100199328049
                baseline_rmse: 1.2663362526593396
                nrmse: 0.007306985154927291
              v:
                rmse: 0.016477268987651207
                baseline_rmse: 1.2961683303676375
                nrmse: 0.012712290989996409
            initial_old_prediction_drift:
              u: 0.0
              v: 0.0
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 0.011535892794200158
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.008803045947718018
                v:
                  rmse: 0.029509003359319566
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.023224702626157723
            - step: 32
              scores:
                u:
                  rmse: 0.08205461194764767
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.06261591816807423
                v:
                  rmse: 0.081501683033155
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.06414490956972922
            - step: 128
              scores:
                u:
                  rmse: 0.024969262126465445
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.019054057254276942
                v:
                  rmse: 0.008535274276989115
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.006717583935384269
            - step: 256
              scores:
                u:
                  rmse: 0.009532766297869321
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.007274459049341386
                v:
                  rmse: 0.016615988523582266
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.013077411920723913
          scratch_adaptation:
            before:
              u:
                rmse: 1.2522114938581133
                baseline_rmse: 1.2663362526593396
                nrmse: 0.9888459650653103
              v:
                rmse: 1.3195483233826368
                baseline_rmse: 1.2961683303676375
                nrmse: 1.0180377752389367
              w:
                rmse: 1.8805651915817234
                baseline_rmse: 1.8289556685792812
                nrmse: 1.0282180284022586
            after:
              u:
                rmse: 0.026914617420797867
                baseline_rmse: 1.2663362526593396
                nrmse: 0.021253926328237433
              v:
                rmse: 0.05481134055653444
                baseline_rmse: 1.2961683303676375
                nrmse: 0.04228720859194891
              w:
                rmse: 0.03336312800981138
                baseline_rmse: 1.8289556685792812
                nrmse: 0.01824162749429985
            initial_old_prediction_drift:
              u: 2.8913912177085876
              v: 3.190234363079071
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 1.3100973600945236
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.9997359946595967
                v:
                  rmse: 1.3005482680231673
                  baseline_rmse: 1.2705869192092003
                  nrmse: 1.0235807156212615
                w:
                  rmse: 1.8851250617203843
                  baseline_rmse: 1.8209322963213432
                  nrmse: 1.0352526920021814
            - step: 32
              scores:
                u:
                  rmse: 0.08970210480598517
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.06845172404957801
                v:
                  rmse: 0.08707615719809386
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.06853223174396375
                w:
                  rmse: 0.13807694966229056
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.07582761310853474
            - step: 128
              scores:
                u:
                  rmse: 0.02000263508140492
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.015264021505606636
                v:
                  rmse: 0.043675904542061904
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.03437459010615765
                w:
                  rmse: 0.04264531821229424
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.023419496868964614
            - step: 256
              scores:
                u:
                  rmse: 0.027012699849219925
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.020613405671050713
                v:
                  rmse: 0.055833388807019234
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.04394299041089557
                w:
                  rmse: 0.03318094317825782
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.018221953251798616
          scratch_total:
            before:
              u:
                rmse: 1.2108697607158914
                baseline_rmse: 1.2663362526593396
                nrmse: 0.9561992386880127
              v:
                rmse: 1.4984804880233138
                baseline_rmse: 1.2961683303676375
                nrmse: 1.1560847869182962
              w:
                rmse: 1.781162022536913
                baseline_rmse: 1.8289556685792812
                nrmse: 0.9738683408988836
            after:
              u:
                rmse: 0.015303161159544906
                baseline_rmse: 1.2663362526593396
                nrmse: 0.012084595325615817
              v:
                rmse: 0.02876708367985974
                baseline_rmse: 1.2961683303676375
                nrmse: 0.022193941177146657
              w:
                rmse: 0.028018792189193974
                baseline_rmse: 1.8289556685792812
                nrmse: 0.01531955786055698
            initial_old_prediction_drift:
              u: 2.768245704472065
              v: 3.4774352312088013
            steps: 768
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 1.2564398692105467
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.9587899347301572
                v:
                  rmse: 1.4780311568075868
                  baseline_rmse: 1.2705869192092003
                  nrmse: 1.1632664672224846
                w:
                  rmse: 1.778345330480088
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.9766125484581225
            - step: 32
              scores:
                u:
                  rmse: 0.09396991963840232
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.07170849582583874
                v:
                  rmse: 0.0915242341058268
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.07203303664009897
                w:
                  rmse: 0.16457404207107804
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.09037900113230533
            - step: 128
              scores:
                u:
                  rmse: 0.03882763985005823
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.029629392691075937
                v:
                  rmse: 0.06739140155497268
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.053039583940401626
                w:
                  rmse: 0.05676065906718735
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.031171207837795797
            - step: 768
              scores:
                u:
                  rmse: 0.016408114695598202
                  baseline_rmse: 1.3104433241303899
                  nrmse: 0.01252104108087744
                v:
                  rmse: 0.028186368231612118
                  baseline_rmse: 1.2705869192092003
                  nrmse: 0.022183738715927447
                w:
                  rmse: 0.027628165942140175
                  baseline_rmse: 1.8209322963213432
                  nrmse: 0.01517253881319736
        test_rows: 1024
        baseline: Source-training mean for test comparisons; phase-training mean for validation curves
        optimizer_policy: New AdamW factory and Trainer for every fit; all available labels rehearsed
        mutation: extend record with hidden Number record/w
      checks:
        Source learns both original tasks below 0.25 nRMSE: true
        Source optimizer covers current parameters: true
        Extension preserves every existing state entry: true
        Extension immediately preserves old predictions: false
        Diagnostic source pooling scale restores old predictions: true
        'extended: fresh optimizer covers current parameters': true
        'extended: all final targets below 0.25 nRMSE': true
        Added head parameters actually learn: true
        Hidden target placeholders cannot affect predictions: true
        Extended checkpoint preserves schema and learned state: true
        Extended checkpoint preserves predictions: true
        'continuation: fresh optimizer covers current parameters': true
        'scratch_adaptation: schema and field order match extension': true
        'scratch_adaptation: fresh optimizer covers current parameters': true
        'scratch_total: schema and field order match extension': true
        'scratch_total: fresh optimizer covers current parameters': true
        'scratch_total: all final targets below 0.25 nRMSE': true
      outcome: not_met
      duration_seconds: 80.407
    - started_at: '2026-09-15T18:04:05.802381+00:00'
      mode: full
      seed: 7101
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 2db77891e89376c6926a1f11a18aa46fb4f8bebed0df14438ba8eff89c4db6c1
        script_sha256: 624c767c1b4024e120b601bc1efaadbe9a478f8c3ab6d8b0e375600c396a001e
        code_sha256: 5f613c009ea56a099f0f766dcac921baef4eabf53cf14a0a335ebfb2b4ca271d
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-mutations-v3_tgit_/src/relflow
        packages:
          relflow: 0.2.2
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
      metrics:
        source:
          u:
            rmse: 0.009796106068409562
            baseline_rmse: 1.2908974940031006
            nrmse: 0.007588601042234289
          v:
            rmse: 0.019397250921355053
            baseline_rmse: 1.2969480983896875
            nrmse: 0.01495607337366777
        source_fit:
          steps: 512
          optimizer_covers_current_parameters: true
          validation_curve:
          - step: 0
            scores:
              u:
                rmse: 1.5771062482408669
                baseline_rmse: 1.214202473192484
                nrmse: 1.2988824212276602
              v:
                rmse: 1.3072694637116182
                baseline_rmse: 1.3285155523136438
                nrmse: 0.9840076478103512
          - step: 32
            scores:
              u:
                rmse: 0.10717741666818707
                baseline_rmse: 1.214202473192484
                nrmse: 0.08826980592980273
              v:
                rmse: 0.10111543375960332
                baseline_rmse: 1.3285155523136438
                nrmse: 0.07611159205739684
          - step: 128
            scores:
              u:
                rmse: 0.017833300961804754
                baseline_rmse: 1.214202473192484
                nrmse: 0.014687254684069229
              v:
                rmse: 0.022416444336445907
                baseline_rmse: 1.3285155523136438
                nrmse: 0.016873302158493437
          - step: 512
            scores:
              u:
                rmse: 0.009539652227979903
                baseline_rmse: 1.214202473192484
                nrmse: 0.007856722777789638
              v:
                rmse: 0.01895260950991225
                baseline_rmse: 1.3285155523136438
                nrmse: 0.014266004998515672
        source_prerequisite_met: true
        downstream_interpretable: true
        arms:
          extended:
            before:
              u:
                rmse: 0.017057897003102993
                baseline_rmse: 1.2908974940031006
                nrmse: 0.013213982583703134
              v:
                rmse: 0.01556351569255927
                baseline_rmse: 1.2969480983896875
                nrmse: 0.012000106798323844
              w:
                rmse: 1.8416579454327944
                baseline_rmse: 1.8516566868110593
                nrmse: 0.9946001105661304
            after:
              u:
                rmse: 0.011567030862529346
                baseline_rmse: 1.2908974940031006
                nrmse: 0.008960456516698112
              v:
                rmse: 0.0103254468559876
                baseline_rmse: 1.2969480983896875
                nrmse: 0.007961341605579937
              w:
                rmse: 0.031046987648793805
                baseline_rmse: 1.8516566868110593
                nrmse: 0.01676714040455481
            initial_old_prediction_drift:
              u: 0.03059530258178711
              v: 0.021714448928833008
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 0.016539311274679638
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.013209823757050447
                v:
                  rmse: 0.014701699835999216
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.011198608311674465
                w:
                  rmse: 1.7614574054999887
                  baseline_rmse: 1.7725715949102796
                  nrmse: 0.9937299066270701
            - step: 32
              scores:
                u:
                  rmse: 0.0820270232479449
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.06551436770403368
                v:
                  rmse: 0.0743724926121628
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.056651164369926565
                w:
                  rmse: 0.12562222626077427
                  baseline_rmse: 1.7725715949102796
                  nrmse: 0.07087004362559063
            - step: 128
              scores:
                u:
                  rmse: 0.02058476444392487
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.016440896834739156
                v:
                  rmse: 0.043512702291031054
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.03314458293772111
                w:
                  rmse: 0.05793298161340654
                  baseline_rmse: 1.7725715949102796
                  nrmse: 0.032683013639479466
            - step: 256
              scores:
                u:
                  rmse: 0.010786105146310983
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.008614781210745595
                v:
                  rmse: 0.009854160995647818
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.007506131295119026
                w:
                  rmse: 0.031470882484469324
                  baseline_rmse: 1.7725715949102796
                  nrmse: 0.01775436466139595
            changed_existing_state_entries: []
            pooling_scale_control:
              source_capacity: 4
              extended_capacity: 5
              old_prediction_drift_with_source_capacity:
                u: 0.0
                v: 0.0
            new_head_updated_parameters:
            - embedder.embeddings.weight
            - embedder.linear.weight
            - embedder.scalar.weight
            - decoder.context_projection.0.weight
            - decoder.context_projection.0.bias
            - decoder.context_projection.1.weight
            - decoder.context_projection.1.bias
            - decoder.context_projection.3.weight
            - decoder.context_projection.3.bias
            - decoder.pool.queries
            - decoder.pool.blocks.0.attention_norm.weight
            - decoder.pool.blocks.0.attention_norm.bias
            - decoder.pool.blocks.0.ffn_norm.weight
            - decoder.pool.blocks.0.ffn_norm.bias
            - decoder.pool.blocks.0.attention.q_proj.weight
            - decoder.pool.blocks.0.attention.q_proj.bias
            - decoder.pool.blocks.0.attention.k_proj.weight
            - decoder.pool.blocks.0.attention.k_proj.bias
            - decoder.pool.blocks.0.attention.v_proj.weight
            - decoder.pool.blocks.0.attention.v_proj.bias
            - decoder.pool.blocks.0.attention.out_proj.weight
            - decoder.pool.blocks.0.attention.out_proj.bias
            - decoder.pool.blocks.0.ffn.0.weight
            - decoder.pool.blocks.0.ffn.0.bias
            - decoder.pool.blocks.0.ffn.3.weight
            - decoder.pool.blocks.0.ffn.3.bias
            - decoder.pool.norm.weight
            - decoder.pool.norm.bias
            - decoder.classification.weight
            - decoder.classification.bias
            - decoder.regression.weight
            - decoder.regression.bias
          continuation:
            before:
              u:
                rmse: 0.009796106068409562
                baseline_rmse: 1.2908974940031006
                nrmse: 0.007588601042234289
              v:
                rmse: 0.019397250921355053
                baseline_rmse: 1.2969480983896875
                nrmse: 0.01495607337366777
            after:
              u:
                rmse: 0.014894116016718029
                baseline_rmse: 1.2908974940031006
                nrmse: 0.011537799155943093
              v:
                rmse: 0.03418484117031133
                baseline_rmse: 1.2969480983896875
                nrmse: 0.02635790993699424
            initial_old_prediction_drift:
              u: 0.0
              v: 0.0
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 0.009405761385961659
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.007512311011380413
                v:
                  rmse: 0.01851867432477028
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.014106081781560868
            - step: 32
              scores:
                u:
                  rmse: 0.08427936048393028
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.06731329254647005
                v:
                  rmse: 0.061933053385872454
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.04717576975120379
            - step: 128
              scores:
                u:
                  rmse: 0.028769483507834138
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.02297797050967104
                v:
                  rmse: 0.052134352761181266
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.03971188384118252
            - step: 256
              scores:
                u:
                  rmse: 0.01376603956676995
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.010994832462462162
                v:
                  rmse: 0.035074513265269745
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.026717028653965164
          scratch_adaptation:
            before:
              u:
                rmse: 1.5767538624741606
                baseline_rmse: 1.2908974940031006
                nrmse: 1.2214400212247785
              v:
                rmse: 1.3513676741288465
                baseline_rmse: 1.2969480983896875
                nrmse: 1.0419597174372106
              w:
                rmse: 2.0629725509924435
                baseline_rmse: 1.8516566868110593
                nrmse: 1.114122593937926
            after:
              u:
                rmse: 0.029171949457763285
                baseline_rmse: 1.2908974940031006
                nrmse: 0.022598192027858423
              v:
                rmse: 0.02927820228914024
                baseline_rmse: 1.2969480983896875
                nrmse: 0.022574690787929407
              w:
                rmse: 0.06450798959616429
                baseline_rmse: 1.8516566868110593
                nrmse: 0.03483798592667875
            initial_old_prediction_drift:
              u: 3.5362414121627808
              v: 3.128715068101883
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 1.5552778950568296
                  baseline_rmse: 1.2520463239225392
                  nrmse: 1.2421887795527369
                v:
                  rmse: 1.3780781627025007
                  baseline_rmse: 1.3128148986756512
                  nrmse: 1.0497124644858054
                w:
                  rmse: 1.9900718363110987
                  baseline_rmse: 1.7725715949102796
                  nrmse: 1.1227032194498345
            - step: 32
              scores:
                u:
                  rmse: 0.10571130232951326
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.0844308236122846
                v:
                  rmse: 0.07665508388739514
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.05838986437823313
                w:
                  rmse: 0.11916817650876253
                  baseline_rmse: 1.7725715949102796
                  nrmse: 0.06722897785959069
            - step: 128
              scores:
                u:
                  rmse: 0.03689917851922985
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.029471096886917344
                v:
                  rmse: 0.019332327621935888
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.014725859404427893
                w:
                  rmse: 0.04996588304430775
                  baseline_rmse: 1.7725715949102796
                  nrmse: 0.028188358195391717
            - step: 256
              scores:
                u:
                  rmse: 0.028474723085549214
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.022742547573112695
                v:
                  rmse: 0.030366150318473572
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.023130564978434135
                w:
                  rmse: 0.06598310054335318
                  baseline_rmse: 1.7725715949102796
                  nrmse: 0.03722450519505983
          scratch_total:
            before:
              u:
                rmse: 1.611385024388229
                baseline_rmse: 1.2908974940031006
                nrmse: 1.2482672186397155
              v:
                rmse: 1.1546936662757465
                baseline_rmse: 1.2969480983896875
                nrmse: 0.8903160178186263
              w:
                rmse: 1.927721049616771
                baseline_rmse: 1.8516566868110593
                nrmse: 1.0410790852038077
            after:
              u:
                rmse: 0.01769300810368644
                baseline_rmse: 1.2908974940031006
                nrmse: 0.013705974475804463
              v:
                rmse: 0.013830831489853855
                baseline_rmse: 1.2969480983896875
                nrmse: 0.010664136450044876
              w:
                rmse: 0.02184147382636228
                baseline_rmse: 1.8516566868110593
                nrmse: 0.011795638998273418
            initial_old_prediction_drift:
              u: 3.6831963062286377
              v: 2.9051989912986755
            steps: 768
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 1.596030310081841
                  baseline_rmse: 1.2520463239225392
                  nrmse: 1.274737427511175
                v:
                  rmse: 1.1701771178431117
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.8913496632492285
                w:
                  rmse: 1.8460251411143769
                  baseline_rmse: 1.7725715949102796
                  nrmse: 1.041438972854473
            - step: 32
              scores:
                u:
                  rmse: 0.0783583153479978
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.06258419824476527
                v:
                  rmse: 0.0853941148445926
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.06504657658192099
                w:
                  rmse: 0.16184347906236152
                  baseline_rmse: 1.7725715949102796
                  nrmse: 0.0913043397102126
            - step: 128
              scores:
                u:
                  rmse: 0.08590635687056956
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.06861276234687014
                v:
                  rmse: 0.04359809529439207
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.03320962866766153
                w:
                  rmse: 0.08713269901187601
                  baseline_rmse: 1.7725715949102796
                  nrmse: 0.0491560957323624
            - step: 768
              scores:
                u:
                  rmse: 0.01772292845773104
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.014155169915923582
                v:
                  rmse: 0.014364053246255675
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.010941415473533951
                w:
                  rmse: 0.02199540328058544
                  baseline_rmse: 1.7725715949102796
                  nrmse: 0.012408753104101704
        test_rows: 1024
        baseline: Source-training mean for test comparisons; phase-training mean for validation curves
        optimizer_policy: New AdamW factory and Trainer for every fit; all available labels rehearsed
        mutation: extend record with hidden Number record/w
      checks:
        Source learns both original tasks below 0.25 nRMSE: true
        Source optimizer covers current parameters: true
        Extension preserves every existing state entry: true
        Extension immediately preserves old predictions: false
        Diagnostic source pooling scale restores old predictions: true
        'extended: fresh optimizer covers current parameters': true
        'extended: all final targets below 0.25 nRMSE': true
        Added head parameters actually learn: true
        Hidden target placeholders cannot affect predictions: true
        Extended checkpoint preserves schema and learned state: true
        Extended checkpoint preserves predictions: true
        'continuation: fresh optimizer covers current parameters': true
        'scratch_adaptation: schema and field order match extension': true
        'scratch_adaptation: fresh optimizer covers current parameters': true
        'scratch_total: schema and field order match extension': true
        'scratch_total: fresh optimizer covers current parameters': true
        'scratch_total: all final targets below 0.25 nRMSE': true
      outcome: not_met
      duration_seconds: 69.677
    - started_at: '2026-09-15T18:05:19.254712+00:00'
      mode: full
      seed: 7102
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 2db77891e89376c6926a1f11a18aa46fb4f8bebed0df14438ba8eff89c4db6c1
        script_sha256: 624c767c1b4024e120b601bc1efaadbe9a478f8c3ab6d8b0e375600c396a001e
        code_sha256: 5f613c009ea56a099f0f766dcac921baef4eabf53cf14a0a335ebfb2b4ca271d
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-mutations-v3_tgit_/src/relflow
        packages:
          relflow: 0.2.2
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
      metrics:
        source:
          u:
            rmse: 0.06565498347536482
            baseline_rmse: 1.2967289998405087
            nrmse: 0.050631229411419086
          v:
            rmse: 0.041381249939003356
            baseline_rmse: 1.2693145185962316
            nrmse: 0.03260125787008879
        source_fit:
          steps: 512
          optimizer_covers_current_parameters: true
          validation_curve:
          - step: 0
            scores:
              u:
                rmse: 1.2393028237273997
                baseline_rmse: 1.2723746695686682
                nrmse: 0.9740077772434124
              v:
                rmse: 1.7021467221439637
                baseline_rmse: 1.3468533739051283
                nrmse: 1.2637951206289677
          - step: 32
            scores:
              u:
                rmse: 0.10355146261742668
                baseline_rmse: 1.2723746695686682
                nrmse: 0.08138441065675282
              v:
                rmse: 0.08961803685159271
                baseline_rmse: 1.3468533739051283
                nrmse: 0.06653882195932738
          - step: 128
            scores:
              u:
                rmse: 0.03978728611733003
                baseline_rmse: 1.2723746695686682
                nrmse: 0.03127010232828497
              v:
                rmse: 0.04909547654677152
                baseline_rmse: 1.3468533739051283
                nrmse: 0.036451983191326795
          - step: 512
            scores:
              u:
                rmse: 0.06498414801296525
                baseline_rmse: 1.2723746695686682
                nrmse: 0.05107312300943142
              v:
                rmse: 0.03994279807800749
                baseline_rmse: 1.3468533739051283
                nrmse: 0.029656381943192166
        source_prerequisite_met: true
        downstream_interpretable: true
        arms:
          extended:
            before:
              u:
                rmse: 0.06474350162801548
                baseline_rmse: 1.2967289998405087
                nrmse: 0.049928320902809
              v:
                rmse: 0.04323893491385473
                baseline_rmse: 1.2693145185962316
                nrmse: 0.03406479188599671
              w:
                rmse: 1.5212991803002514
                baseline_rmse: 1.781881033784205
                nrmse: 0.8537602406988123
            after:
              u:
                rmse: 0.0324817988643851
                baseline_rmse: 1.2967289998405087
                nrmse: 0.02504902633347461
              v:
                rmse: 0.03827953321319368
                baseline_rmse: 1.2693145185962316
                nrmse: 0.03015764229619624
              w:
                rmse: 0.038706815564526605
                baseline_rmse: 1.781881033784205
                nrmse: 0.021722446577886523
            initial_old_prediction_drift:
              u: 0.00907289981842041
              v: 0.04569077491760254
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 0.0639808104354256
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.05013521222189666
                v:
                  rmse: 0.04337480398792787
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.032505115646263606
                w:
                  rmse: 1.5099151836692908
                  baseline_rmse: 1.7848255975425062
                  nrmse: 0.8459735145821896
            - step: 32
              scores:
                u:
                  rmse: 0.04423919177469243
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.03466572638037945
                v:
                  rmse: 0.07241202769045631
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.054265636218525086
                w:
                  rmse: 0.12386977698554788
                  baseline_rmse: 1.7848255975425062
                  nrmse: 0.06940161389219311
            - step: 128
              scores:
                u:
                  rmse: 0.06044978258179214
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.04736830712021757
                v:
                  rmse: 0.07717794848657966
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.057837221387694704
                w:
                  rmse: 0.1225639564505473
                  baseline_rmse: 1.7848255975425062
                  nrmse: 0.068669990288857
            - step: 256
              scores:
                u:
                  rmse: 0.03267472383985952
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.025603836569975547
                v:
                  rmse: 0.0398969455033619
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.029898805488098517
                w:
                  rmse: 0.03833486196638072
                  baseline_rmse: 1.7848255975425062
                  nrmse: 0.021478211663460728
            changed_existing_state_entries: []
            pooling_scale_control:
              source_capacity: 4
              extended_capacity: 5
              old_prediction_drift_with_source_capacity:
                u: 0.0
                v: 0.0
            new_head_updated_parameters:
            - embedder.embeddings.weight
            - embedder.linear.weight
            - embedder.scalar.weight
            - decoder.context_projection.0.weight
            - decoder.context_projection.0.bias
            - decoder.context_projection.1.weight
            - decoder.context_projection.1.bias
            - decoder.context_projection.3.weight
            - decoder.context_projection.3.bias
            - decoder.pool.queries
            - decoder.pool.blocks.0.attention_norm.weight
            - decoder.pool.blocks.0.attention_norm.bias
            - decoder.pool.blocks.0.ffn_norm.weight
            - decoder.pool.blocks.0.ffn_norm.bias
            - decoder.pool.blocks.0.attention.q_proj.weight
            - decoder.pool.blocks.0.attention.q_proj.bias
            - decoder.pool.blocks.0.attention.k_proj.weight
            - decoder.pool.blocks.0.attention.k_proj.bias
            - decoder.pool.blocks.0.attention.v_proj.weight
            - decoder.pool.blocks.0.attention.v_proj.bias
            - decoder.pool.blocks.0.attention.out_proj.weight
            - decoder.pool.blocks.0.attention.out_proj.bias
            - decoder.pool.blocks.0.ffn.0.weight
            - decoder.pool.blocks.0.ffn.0.bias
            - decoder.pool.blocks.0.ffn.3.weight
            - decoder.pool.blocks.0.ffn.3.bias
            - decoder.pool.norm.weight
            - decoder.pool.norm.bias
            - decoder.classification.weight
            - decoder.classification.bias
            - decoder.regression.weight
            - decoder.regression.bias
          continuation:
            before:
              u:
                rmse: 0.06565498347536482
                baseline_rmse: 1.2967289998405087
                nrmse: 0.050631229411419086
              v:
                rmse: 0.041381249939003356
                baseline_rmse: 1.2693145185962316
                nrmse: 0.03260125787008879
            after:
              u:
                rmse: 0.019977130988254894
                baseline_rmse: 1.2967289998405087
                nrmse: 0.015405787169649158
              v:
                rmse: 0.00927443784231114
                baseline_rmse: 1.2693145185962316
                nrmse: 0.007306650720869391
            initial_old_prediction_drift:
              u: 0.0
              v: 0.0
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 0.06498562323181704
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.050922581160294314
                v:
                  rmse: 0.04133891376364024
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.03097941775026884
            - step: 32
              scores:
                u:
                  rmse: 0.05295915753943094
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.04149867099623535
                v:
                  rmse: 0.10447499427366826
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.07829365112412925
            - step: 128
              scores:
                u:
                  rmse: 0.00932612991919312
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.007307933418249405
                v:
                  rmse: 0.01754182235084703
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.013145856850884973
            - step: 256
              scores:
                u:
                  rmse: 0.019303910259913987
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.015126498570536561
                v:
                  rmse: 0.010437616341014606
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.007821958718947485
          scratch_adaptation:
            before:
              u:
                rmse: 1.652515252729601
                baseline_rmse: 1.2967289998405087
                nrmse: 1.2743720954284605
              v:
                rmse: 1.140062918660766
                baseline_rmse: 1.2693145185962316
                nrmse: 0.8981721251574367
              w:
                rmse: 1.8464977545612473
                baseline_rmse: 1.781881033784205
                nrmse: 1.0362632069997484
            after:
              u:
                rmse: 0.024923579195574745
                baseline_rmse: 1.2967289998405087
                nrmse: 0.019220345344817785
              v:
                rmse: 0.011155455963321062
                baseline_rmse: 1.2693145185962316
                nrmse: 0.008788567214734276
              w:
                rmse: 0.042661741833751904
                baseline_rmse: 1.781881033784205
                nrmse: 0.02394196976391324
            initial_old_prediction_drift:
              u: 3.7187434434890747
              v: 2.7047845982015133
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 1.651418760910742
                  baseline_rmse: 1.2761651462099894
                  nrmse: 1.2940478478159327
                v:
                  rmse: 1.206956370920089
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.9044941488996998
                w:
                  rmse: 1.85347494086642
                  baseline_rmse: 1.7848255975425062
                  nrmse: 1.0384627738522103
            - step: 32
              scores:
                u:
                  rmse: 0.14078241903040933
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.11031677165648275
                v:
                  rmse: 0.11582958129957194
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.08680278846790346
                w:
                  rmse: 0.14517225019432958
                  baseline_rmse: 1.7848255975425062
                  nrmse: 0.08133693868701491
            - step: 128
              scores:
                u:
                  rmse: 0.0333081031072592
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.026100151070712948
                v:
                  rmse: 0.052612817313052604
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.039428090826934825
                w:
                  rmse: 0.08863975331154425
                  baseline_rmse: 1.7848255975425062
                  nrmse: 0.04966297739879499
            - step: 256
              scores:
                u:
                  rmse: 0.025304039807153837
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.019828185938397448
                v:
                  rmse: 0.011635730652798045
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.008719826621078026
                w:
                  rmse: 0.04262402630844258
                  baseline_rmse: 1.7848255975425062
                  nrmse: 0.023881339648608144
          scratch_total:
            before:
              u:
                rmse: 1.330800912463188
                baseline_rmse: 1.2967289998405087
                nrmse: 1.0262752761963911
              v:
                rmse: 1.161068047429632
                baseline_rmse: 1.2693145185962316
                nrmse: 0.914720528615467
              w:
                rmse: 1.7520921620157683
                baseline_rmse: 1.781881033784205
                nrmse: 0.9832823453397594
            after:
              u:
                rmse: 0.029193433240425424
                baseline_rmse: 1.2967289998405087
                nrmse: 0.02251313361852482
              v:
                rmse: 0.013451315286365112
                baseline_rmse: 1.2693145185962316
                nrmse: 0.010597306726816044
              w:
                rmse: 0.020846806768631748
                baseline_rmse: 1.781881033784205
                nrmse: 0.011699325809848875
            initial_old_prediction_drift:
              u: 3.064458005130291
              v: 2.9282822608947754
            steps: 768
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 1.3057670518995306
                  baseline_rmse: 1.2761651462099894
                  nrmse: 1.023195983511581
                v:
                  rmse: 1.1998756548951877
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.8991878541827986
                w:
                  rmse: 1.7733134774154757
                  baseline_rmse: 1.7848255975425062
                  nrmse: 0.9935500027885742
            - step: 32
              scores:
                u:
                  rmse: 0.07665584843421662
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.0600673421162398
                v:
                  rmse: 0.0806347671003684
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.06042776424849087
                w:
                  rmse: 0.10556096299850835
                  baseline_rmse: 1.7848255975425062
                  nrmse: 0.05914357298766519
            - step: 128
              scores:
                u:
                  rmse: 0.034880790811436704
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.02733250544808185
                v:
                  rmse: 0.08712851028959709
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.06529418101435713
                w:
                  rmse: 0.10003553361552128
                  baseline_rmse: 1.7848255975425062
                  nrmse: 0.05604779187011794
            - step: 768
              scores:
                u:
                  rmse: 0.02899928418370321
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.0227237707202916
                v:
                  rmse: 0.013598748076073829
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.010190913576928452
                w:
                  rmse: 0.020866178728345897
                  baseline_rmse: 1.7848255975425062
                  nrmse: 0.01169087823318769
        test_rows: 1024
        baseline: Source-training mean for test comparisons; phase-training mean for validation curves
        optimizer_policy: New AdamW factory and Trainer for every fit; all available labels rehearsed
        mutation: extend record with hidden Number record/w
      checks:
        Source learns both original tasks below 0.25 nRMSE: true
        Source optimizer covers current parameters: true
        Extension preserves every existing state entry: true
        Extension immediately preserves old predictions: false
        Diagnostic source pooling scale restores old predictions: true
        'extended: fresh optimizer covers current parameters': true
        'extended: all final targets below 0.25 nRMSE': true
        Added head parameters actually learn: true
        Hidden target placeholders cannot affect predictions: true
        Extended checkpoint preserves schema and learned state: true
        Extended checkpoint preserves predictions: true
        'continuation: fresh optimizer covers current parameters': true
        'scratch_adaptation: schema and field order match extension': true
        'scratch_adaptation: fresh optimizer covers current parameters': true
        'scratch_total: schema and field order match extension': true
        'scratch_total: fresh optimizer covers current parameters': true
        'scratch_total: all final targets below 0.25 nRMSE': true
      outcome: not_met
      duration_seconds: 64.355
  P048:
    script: proofs/mutations/reset_prediction_target.py
    page: docs/proofs/mutations/reset-prediction-target.py
    historical:
      status: Provisional pass
      source_revision: null
      sources: []
      summary: New experiment; no historical run predates registration.
      insights: 'Initial hypothesis: A selected hidden head loses skill locally and learns again.'
      evidence: No historical measurements. See recorded runs for actual outcomes.
    runs:
    - started_at: '2026-09-15T17:53:09.364423+00:00'
      mode: smoke
      seed: 4801
      steps_override: 2
      accelerator: cpu
      threads: 1
      provenance:
        revision: 5d985953fd0416bc5982a3518d8f43cadb52110c
        source_sha256: 2252cee7efe14048db1252663050b74fce7ce20d11f143c1b24b93df622d6f7c
        script_sha256: 84de49318b9298b52f63fe1743ebcf79674875911b46ffd1222e86ea2521027e
        code_sha256: f7ad2a7bee509149b1c4bad0f6392d223f7a873be15ca244b94bae386803a02e
        python: 3.12.10
        platform: macOS-26.5.2-arm64-arm-64bit
        host: Granthams-MacBook-Pro.local
        relflow_path: /Users/grantham/Desktop/relflow/src/relflow
        packages:
          relflow: 0.2.2
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: null
        gpu: null
      metrics:
        source:
          u:
            rmse: 0.6927066134466747
            baseline_rmse: 1.3095368006346164
            nrmse: 0.5289707117134709
          v:
            rmse: 0.8132343410861116
            baseline_rmse: 1.3299997452869836
            nrmse: 0.6114545088958901
        source_fit:
          steps: 2
          optimizer_covers_current_parameters: true
          validation_curve:
          - step: 0
            scores:
              u:
                rmse: 1.3068514901822017
                baseline_rmse: 1.3363771131216209
                nrmse: 0.9779062192479107
              v:
                rmse: 1.239518438388088
                baseline_rmse: 1.2518777806823944
                nrmse: 0.9901273570910657
          - step: 2
            scores:
              u:
                rmse: 0.706964916375878
                baseline_rmse: 1.3363771131216209
                nrmse: 0.5290160310546553
              v:
                rmse: 0.7580390717333731
                baseline_rmse: 1.2518777806823944
                nrmse: 0.6055216279341331
        source_prerequisite_met: false
        downstream_interpretable: false
        arms:
          selective_reset:
            before:
              u:
                rmse: 1.3737681353196793
                baseline_rmse: 1.3095368006346164
                nrmse: 1.049048896261591
              v:
                rmse: 0.8132343410861116
                baseline_rmse: 1.3299997452869836
                nrmse: 0.6114545088958901
            after:
              u:
                rmse: 0.8479980597975598
                baseline_rmse: 1.3095368006346164
                nrmse: 0.6475557306878358
              v:
                rmse: 0.39194342676012783
                baseline_rmse: 1.3299997452869836
                nrmse: 0.29469436227264495
            changed_state_entries:
            - nodes.record/u.embedder.embeddings.weight
            - nodes.record/u.embedder.counter.counts
            - nodes.record/u.embedder.linear.weight
            - nodes.record/u.embedder.linear.bias
            - nodes.record/u.embedder.scalar.weight
            - nodes.record/u.embedder.normalizer.mean
            - nodes.record/u.embedder.normalizer.var
            - nodes.record/u.embedder.normalizer.count
            - nodes.record/u.decoder.context_projection.0.weight
            - nodes.record/u.decoder.context_projection.0.bias
            - nodes.record/u.decoder.context_projection.1.weight
            - nodes.record/u.decoder.context_projection.1.bias
            - nodes.record/u.decoder.context_projection.3.weight
            - nodes.record/u.decoder.context_projection.3.bias
            - nodes.record/u.decoder.pool.queries
            - nodes.record/u.decoder.pool.blocks.0.ffn_norm.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn_norm.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.q_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.q_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.k_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.k_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.v_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.v_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.out_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.out_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.ffn.0.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn.0.bias
            - nodes.record/u.decoder.pool.blocks.0.ffn.3.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn.3.bias
            - nodes.record/u.decoder.pool.norm.weight
            - nodes.record/u.decoder.pool.norm.bias
            - nodes.record/u.decoder.classification.weight
            - nodes.record/u.decoder.classification.bias
            - nodes.record/u.decoder.regression.weight
            - nodes.record/u.decoder.regression.bias
            initial_prediction_drift:
              u: 1.4475162327289581
              v: 0.0
            steps: 2
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 1.38716854729249
                  baseline_rmse: 1.3218992662289384
                  nrmse: 1.0493753818698677
                v:
                  rmse: 0.7820919004651208
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.6009843223242322
            - step: 2
              scores:
                u:
                  rmse: 0.869197105878184
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.6575365673345103
                v:
                  rmse: 0.37362651997995877
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.2871065162277956
            reset_head_updated_parameters:
            - embedder.embeddings.weight
            - embedder.linear.weight
            - embedder.scalar.weight
            - decoder.context_projection.0.weight
            - decoder.context_projection.0.bias
            - decoder.context_projection.1.weight
            - decoder.context_projection.1.bias
            - decoder.context_projection.3.weight
            - decoder.context_projection.3.bias
            - decoder.pool.queries
            - decoder.pool.blocks.0.ffn_norm.weight
            - decoder.pool.blocks.0.ffn_norm.bias
            - decoder.pool.blocks.0.attention.q_proj.weight
            - decoder.pool.blocks.0.attention.k_proj.weight
            - decoder.pool.blocks.0.attention.v_proj.weight
            - decoder.pool.blocks.0.attention.v_proj.bias
            - decoder.pool.blocks.0.attention.out_proj.weight
            - decoder.pool.blocks.0.attention.out_proj.bias
            - decoder.pool.blocks.0.ffn.0.weight
            - decoder.pool.blocks.0.ffn.0.bias
            - decoder.pool.blocks.0.ffn.3.weight
            - decoder.pool.blocks.0.ffn.3.bias
            - decoder.pool.norm.weight
            - decoder.pool.norm.bias
            - decoder.classification.weight
            - decoder.classification.bias
            - decoder.regression.weight
            - decoder.regression.bias
          continuation:
            before:
              u:
                rmse: 0.6927066134466747
                baseline_rmse: 1.3095368006346164
                nrmse: 0.5289707117134709
              v:
                rmse: 0.8132343410861116
                baseline_rmse: 1.3299997452869836
                nrmse: 0.6114545088958901
            after:
              u:
                rmse: 0.35633074373644424
                baseline_rmse: 1.3095368006346164
                nrmse: 0.27210441399108626
              v:
                rmse: 0.4470884888794418
                baseline_rmse: 1.3299997452869836
                nrmse: 0.3361568229345565
            changed_state_entries: []
            initial_prediction_drift:
              u: 0.0
              v: 0.0
            steps: 2
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 0.7069684164108889
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.5348126248891115
                v:
                  rmse: 0.7820919004651208
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.6009843223242322
            - step: 2
              scores:
                u:
                  rmse: 0.3762503097698815
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.2846285790317695
                v:
                  rmse: 0.4382457039406172
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.3367619550050613
          complete_reset:
            before:
              u:
                rmse: 1.2697078532128654
                baseline_rmse: 1.3095368006346164
                nrmse: 0.9695854691502755
              v:
                rmse: 1.4672726027853868
                baseline_rmse: 1.3299997452869836
                nrmse: 1.1032126945774587
            after:
              u:
                rmse: 0.8630547312414026
                baseline_rmse: 1.3095368006346164
                nrmse: 0.6590534384548464
              v:
                rmse: 0.9049750511344486
                baseline_rmse: 1.3299997452869836
                nrmse: 0.6804324995860624
            changed_state_entries:
            - nodes.record/a.embedder.embeddings.weight
            - nodes.record/a.embedder.counter.counts
            - nodes.record/a.embedder.linear.weight
            - nodes.record/a.embedder.linear.bias
            - nodes.record/a.embedder.scalar.weight
            - nodes.record/a.embedder.normalizer.mean
            - nodes.record/a.embedder.normalizer.var
            - nodes.record/a.embedder.normalizer.count
            - nodes.record/b.embedder.embeddings.weight
            - nodes.record/b.embedder.counter.counts
            - nodes.record/b.embedder.linear.weight
            - nodes.record/b.embedder.linear.bias
            - nodes.record/b.embedder.scalar.weight
            - nodes.record/b.embedder.normalizer.mean
            - nodes.record/b.embedder.normalizer.var
            - nodes.record/b.embedder.normalizer.count
            - nodes.record/u.embedder.embeddings.weight
            - nodes.record/u.embedder.counter.counts
            - nodes.record/u.embedder.linear.weight
            - nodes.record/u.embedder.linear.bias
            - nodes.record/u.embedder.scalar.weight
            - nodes.record/u.embedder.normalizer.mean
            - nodes.record/u.embedder.normalizer.var
            - nodes.record/u.embedder.normalizer.count
            - nodes.record/u.decoder.context_projection.0.weight
            - nodes.record/u.decoder.context_projection.0.bias
            - nodes.record/u.decoder.context_projection.1.weight
            - nodes.record/u.decoder.context_projection.1.bias
            - nodes.record/u.decoder.context_projection.3.weight
            - nodes.record/u.decoder.context_projection.3.bias
            - nodes.record/u.decoder.pool.queries
            - nodes.record/u.decoder.pool.blocks.0.ffn_norm.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn_norm.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.q_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.q_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.k_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.k_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.v_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.v_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.out_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.out_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.ffn.0.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn.0.bias
            - nodes.record/u.decoder.pool.blocks.0.ffn.3.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn.3.bias
            - nodes.record/u.decoder.pool.norm.weight
            - nodes.record/u.decoder.pool.norm.bias
            - nodes.record/u.decoder.classification.weight
            - nodes.record/u.decoder.classification.bias
            - nodes.record/u.decoder.regression.weight
            - nodes.record/u.decoder.regression.bias
            - nodes.record/v.embedder.embeddings.weight
            - nodes.record/v.embedder.counter.counts
            - nodes.record/v.embedder.linear.weight
            - nodes.record/v.embedder.linear.bias
            - nodes.record/v.embedder.scalar.weight
            - nodes.record/v.embedder.normalizer.mean
            - nodes.record/v.embedder.normalizer.var
            - nodes.record/v.embedder.normalizer.count
            - nodes.record/v.decoder.context_projection.0.weight
            - nodes.record/v.decoder.context_projection.0.bias
            - nodes.record/v.decoder.context_projection.1.weight
            - nodes.record/v.decoder.context_projection.1.bias
            - nodes.record/v.decoder.context_projection.3.weight
            - nodes.record/v.decoder.context_projection.3.bias
            - nodes.record/v.decoder.pool.queries
            - nodes.record/v.decoder.pool.blocks.0.ffn_norm.weight
            - nodes.record/v.decoder.pool.blocks.0.ffn_norm.bias
            - nodes.record/v.decoder.pool.blocks.0.attention.q_proj.weight
            - nodes.record/v.decoder.pool.blocks.0.attention.q_proj.bias
            - nodes.record/v.decoder.pool.blocks.0.attention.k_proj.weight
            - nodes.record/v.decoder.pool.blocks.0.attention.k_proj.bias
            - nodes.record/v.decoder.pool.blocks.0.attention.v_proj.weight
            - nodes.record/v.decoder.pool.blocks.0.attention.v_proj.bias
            - nodes.record/v.decoder.pool.blocks.0.attention.out_proj.weight
            - nodes.record/v.decoder.pool.blocks.0.attention.out_proj.bias
            - nodes.record/v.decoder.pool.blocks.0.ffn.0.weight
            - nodes.record/v.decoder.pool.blocks.0.ffn.0.bias
            - nodes.record/v.decoder.pool.blocks.0.ffn.3.weight
            - nodes.record/v.decoder.pool.blocks.0.ffn.3.bias
            - nodes.record/v.decoder.pool.norm.weight
            - nodes.record/v.decoder.pool.norm.bias
            - nodes.record/v.decoder.classification.weight
            - nodes.record/v.decoder.classification.bias
            - nodes.record/v.decoder.regression.weight
            - nodes.record/v.decoder.regression.bias
            - nodes.record.encoder.encoder.0.attention_norm.weight
            - nodes.record.encoder.encoder.0.attention_norm.bias
            - nodes.record.encoder.encoder.0.ffn_norm.weight
            - nodes.record.encoder.encoder.0.ffn_norm.bias
            - nodes.record.encoder.encoder.0.attention.q_proj.weight
            - nodes.record.encoder.encoder.0.attention.q_proj.bias
            - nodes.record.encoder.encoder.0.attention.k_proj.weight
            - nodes.record.encoder.encoder.0.attention.k_proj.bias
            - nodes.record.encoder.encoder.0.attention.v_proj.weight
            - nodes.record.encoder.encoder.0.attention.v_proj.bias
            - nodes.record.encoder.encoder.0.attention.out_proj.weight
            - nodes.record.encoder.encoder.0.attention.out_proj.bias
            - nodes.record.encoder.encoder.0.ffn.0.weight
            - nodes.record.encoder.encoder.0.ffn.0.bias
            - nodes.record.encoder.encoder.0.ffn.3.weight
            - nodes.record.encoder.encoder.0.ffn.3.bias
            - nodes.record.encoder.coordinate_encoder.attention_norm.weight
            - nodes.record.encoder.coordinate_encoder.attention_norm.bias
            - nodes.record.encoder.coordinate_encoder.ffn_norm.weight
            - nodes.record.encoder.coordinate_encoder.ffn_norm.bias
            - nodes.record.encoder.coordinate_encoder.attention.q_proj.weight
            - nodes.record.encoder.coordinate_encoder.attention.q_proj.bias
            - nodes.record.encoder.coordinate_encoder.attention.k_proj.weight
            - nodes.record.encoder.coordinate_encoder.attention.k_proj.bias
            - nodes.record.encoder.coordinate_encoder.attention.v_proj.weight
            - nodes.record.encoder.coordinate_encoder.attention.v_proj.bias
            - nodes.record.encoder.coordinate_encoder.attention.out_proj.weight
            - nodes.record.encoder.coordinate_encoder.attention.out_proj.bias
            - nodes.record.encoder.coordinate_encoder.ffn.0.weight
            - nodes.record.encoder.coordinate_encoder.ffn.0.bias
            - nodes.record.encoder.coordinate_encoder.ffn.3.weight
            - nodes.record.encoder.coordinate_encoder.ffn.3.bias
            - nodes.record.encoder.pool.queries
            - nodes.record.encoder.pool.mass_direction
            - nodes.record.encoder.pool.blocks.0.attention_norm.weight
            - nodes.record.encoder.pool.blocks.0.attention_norm.bias
            - nodes.record.encoder.pool.blocks.0.ffn_norm.weight
            - nodes.record.encoder.pool.blocks.0.ffn_norm.bias
            - nodes.record.encoder.pool.blocks.0.attention.q_proj.weight
            - nodes.record.encoder.pool.blocks.0.attention.q_proj.bias
            - nodes.record.encoder.pool.blocks.0.attention.k_proj.weight
            - nodes.record.encoder.pool.blocks.0.attention.k_proj.bias
            - nodes.record.encoder.pool.blocks.0.attention.v_proj.weight
            - nodes.record.encoder.pool.blocks.0.attention.v_proj.bias
            - nodes.record.encoder.pool.blocks.0.attention.out_proj.weight
            - nodes.record.encoder.pool.blocks.0.attention.out_proj.bias
            - nodes.record.encoder.pool.blocks.0.ffn.0.weight
            - nodes.record.encoder.pool.blocks.0.ffn.0.bias
            - nodes.record.encoder.pool.blocks.0.ffn.3.weight
            - nodes.record.encoder.pool.blocks.0.ffn.3.bias
            - nodes.record.encoder.pool.norm.weight
            - nodes.record.encoder.pool.norm.bias
            - nodes.record.encoder.pool.mass_projection.weight
            initial_prediction_drift:
              u: 1.2862106263637543
              v: 1.6154753267765045
            steps: 2
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 1.2645541266222733
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.9566191304650187
                v:
                  rmse: 1.4453547400996387
                  baseline_rmse: 1.3013515850804187
                  nrmse: 1.1106566101506852
            - step: 2
              scores:
                u:
                  rmse: 0.8800129261808026
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.6657185979770368
                v:
                  rmse: 0.894858753647061
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.6876379634115265
        test_rows: 1024
        baseline: Source-training mean for test comparisons; phase-training mean for validation curves
        optimizer_policy: New AdamW factory and Trainer for every fit; both hidden labels rehearsed
        mutation: reset record/u; complete-reset control resets record with descendants=True
      checks:
        Source learns both targets below 0.25 nRMSE: false
        Reset changes selected learned state: true
        Reset preserves every unselected state entry: true
        Reset preserves the schema: true
        Selected target immediately loses its skill: false
        Unselected target immediately preserves predictions: true
        'selective_reset: fresh optimizer covers current parameters': true
        'selective_reset: both final targets below 0.25 nRMSE': false
        Reset head parameters actually relearn: true
        Hidden target placeholders cannot affect predictions: true
        Relearned checkpoint preserves schema and state: true
        Relearned checkpoint preserves predictions: true
        'continuation: fresh optimizer covers current parameters': true
        'continuation: both final targets below 0.25 nRMSE': false
        Complete reset loses both learned tasks: false
        'complete_reset: fresh optimizer covers current parameters': true
        'complete_reset: both final targets below 0.25 nRMSE': false
      outcome: not_met
      duration_seconds: 0.678
    - started_at: '2026-09-15T17:54:33.039955+00:00'
      mode: full
      seed: 4801
      steps_override: null
      accelerator: cpu
      threads: 1
      provenance:
        revision: 5d985953fd0416bc5982a3518d8f43cadb52110c
        source_sha256: 2252cee7efe14048db1252663050b74fce7ce20d11f143c1b24b93df622d6f7c
        script_sha256: 84de49318b9298b52f63fe1743ebcf79674875911b46ffd1222e86ea2521027e
        code_sha256: f7ad2a7bee509149b1c4bad0f6392d223f7a873be15ca244b94bae386803a02e
        python: 3.12.10
        platform: macOS-26.5.2-arm64-arm-64bit
        host: Granthams-MacBook-Pro.local
        relflow_path: /Users/grantham/Desktop/relflow/src/relflow
        packages:
          relflow: 0.2.2
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: null
        gpu: null
      metrics:
        source:
          u:
            rmse: 0.03358791864760073
            baseline_rmse: 1.3095368006346164
            nrmse: 0.02564870161061808
          v:
            rmse: 0.03156370575360709
            baseline_rmse: 1.3299997452869836
            nrmse: 0.023732114134199598
        source_fit:
          steps: 512
          optimizer_covers_current_parameters: true
          validation_curve:
          - step: 0
            scores:
              u:
                rmse: 1.3068514901822017
                baseline_rmse: 1.3363771131216209
                nrmse: 0.9779062192479107
              v:
                rmse: 1.239518438388088
                baseline_rmse: 1.2518777806823944
                nrmse: 0.9901273570910657
          - step: 32
            scores:
              u:
                rmse: 0.12416073898651163
                baseline_rmse: 1.3363771131216209
                nrmse: 0.0929084595713306
              v:
                rmse: 0.0746600123136656
                baseline_rmse: 1.2518777806823944
                nrmse: 0.05963841955320006
          - step: 128
            scores:
              u:
                rmse: 0.0258042552892143
                baseline_rmse: 1.3363771131216209
                nrmse: 0.019309111953390592
              v:
                rmse: 0.053975986675749904
                baseline_rmse: 1.2518777806823944
                nrmse: 0.04311601939793817
          - step: 512
            scores:
              u:
                rmse: 0.0343734284251833
                baseline_rmse: 1.3363771131216209
                nrmse: 0.02572135371646031
              v:
                rmse: 0.0322785317593936
                baseline_rmse: 1.2518777806823944
                nrmse: 0.02578409191175091
        source_prerequisite_met: true
        downstream_interpretable: true
        arms:
          selective_reset:
            before:
              u:
                rmse: 1.4491657976216348
                baseline_rmse: 1.3095368006346164
                nrmse: 1.1066247217484477
              v:
                rmse: 0.03156370575360709
                baseline_rmse: 1.3299997452869836
                nrmse: 0.023732114134199598
            after:
              u:
                rmse: 0.019335197482159963
                baseline_rmse: 1.3095368006346164
                nrmse: 0.014764913420371163
              v:
                rmse: 0.03096444665173069
                baseline_rmse: 1.3299997452869836
                nrmse: 0.023281543294618654
            changed_state_entries:
            - nodes.record/u.embedder.embeddings.weight
            - nodes.record/u.embedder.counter.counts
            - nodes.record/u.embedder.linear.weight
            - nodes.record/u.embedder.linear.bias
            - nodes.record/u.embedder.scalar.weight
            - nodes.record/u.embedder.normalizer.mean
            - nodes.record/u.embedder.normalizer.var
            - nodes.record/u.embedder.normalizer.count
            - nodes.record/u.decoder.context_projection.0.weight
            - nodes.record/u.decoder.context_projection.0.bias
            - nodes.record/u.decoder.context_projection.1.weight
            - nodes.record/u.decoder.context_projection.1.bias
            - nodes.record/u.decoder.context_projection.3.weight
            - nodes.record/u.decoder.context_projection.3.bias
            - nodes.record/u.decoder.pool.queries
            - nodes.record/u.decoder.pool.blocks.0.ffn_norm.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn_norm.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.q_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.q_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.k_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.k_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.v_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.v_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.out_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.out_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.ffn.0.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn.0.bias
            - nodes.record/u.decoder.pool.blocks.0.ffn.3.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn.3.bias
            - nodes.record/u.decoder.pool.norm.weight
            - nodes.record/u.decoder.pool.norm.bias
            - nodes.record/u.decoder.classification.weight
            - nodes.record/u.decoder.classification.bias
            - nodes.record/u.decoder.regression.weight
            - nodes.record/u.decoder.regression.bias
            initial_prediction_drift:
              u: 3.087439715862274
              v: 0.0
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 1.4673986990650236
                  baseline_rmse: 1.3218992662289384
                  nrmse: 1.110068472351271
                v:
                  rmse: 0.031117111830632205
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.023911379666632735
            - step: 32
              scores:
                u:
                  rmse: 0.07177933367028597
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.05430015395579664
                v:
                  rmse: 0.09672465815910404
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.0743263075620927
            - step: 128
              scores:
                u:
                  rmse: 0.031076536166253863
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.023509004778335167
                v:
                  rmse: 0.02592063403195276
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.01991824064236335
            - step: 256
              scores:
                u:
                  rmse: 0.01888875941418896
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.014289106512687657
                v:
                  rmse: 0.029985567132639054
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.023041864686233933
            reset_head_updated_parameters:
            - embedder.embeddings.weight
            - embedder.linear.weight
            - embedder.scalar.weight
            - decoder.context_projection.0.weight
            - decoder.context_projection.0.bias
            - decoder.context_projection.1.weight
            - decoder.context_projection.1.bias
            - decoder.context_projection.3.weight
            - decoder.context_projection.3.bias
            - decoder.pool.queries
            - decoder.pool.blocks.0.ffn_norm.weight
            - decoder.pool.blocks.0.ffn_norm.bias
            - decoder.pool.blocks.0.attention.q_proj.weight
            - decoder.pool.blocks.0.attention.k_proj.weight
            - decoder.pool.blocks.0.attention.v_proj.weight
            - decoder.pool.blocks.0.attention.v_proj.bias
            - decoder.pool.blocks.0.attention.out_proj.weight
            - decoder.pool.blocks.0.attention.out_proj.bias
            - decoder.pool.blocks.0.ffn.0.weight
            - decoder.pool.blocks.0.ffn.0.bias
            - decoder.pool.blocks.0.ffn.3.weight
            - decoder.pool.blocks.0.ffn.3.bias
            - decoder.pool.norm.weight
            - decoder.pool.norm.bias
            - decoder.classification.weight
            - decoder.classification.bias
            - decoder.regression.weight
            - decoder.regression.bias
          continuation:
            before:
              u:
                rmse: 0.03358791864760073
                baseline_rmse: 1.3095368006346164
                nrmse: 0.02564870161061808
              v:
                rmse: 0.03156370575360709
                baseline_rmse: 1.3299997452869836
                nrmse: 0.023732114134199598
            after:
              u:
                rmse: 0.023723095213619178
                baseline_rmse: 1.3095368006346164
                nrmse: 0.018115638447214845
              v:
                rmse: 0.01890324128381892
                baseline_rmse: 1.3299997452869836
                nrmse: 0.01421296609326796
            changed_state_entries: []
            initial_prediction_drift:
              u: 0.0
              v: 0.0
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 0.03508149973739064
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.026538708836316812
                v:
                  rmse: 0.031117111830632205
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.023911379666632735
            - step: 32
              scores:
                u:
                  rmse: 0.08731390598207757
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.0660518605409043
                v:
                  rmse: 0.07474587581370884
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.0574371112854101
            - step: 128
              scores:
                u:
                  rmse: 0.03262503869977538
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.024680427271018004
                v:
                  rmse: 0.02215005567457824
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.017020808157089576
            - step: 256
              scores:
                u:
                  rmse: 0.023497773499379464
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.017775767110010568
                v:
                  rmse: 0.019109970737607465
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.014684710078888127
          complete_reset:
            before:
              u:
                rmse: 1.2697078532128654
                baseline_rmse: 1.3095368006346164
                nrmse: 0.9695854691502755
              v:
                rmse: 1.4672726027853868
                baseline_rmse: 1.3299997452869836
                nrmse: 1.1032126945774587
            after:
              u:
                rmse: 0.02836517719142516
                baseline_rmse: 1.3095368006346164
                nrmse: 0.021660465882042467
              v:
                rmse: 0.07017519663442393
                baseline_rmse: 1.3299997452869836
                nrmse: 0.05276331584505809
            changed_state_entries:
            - nodes.record/a.embedder.embeddings.weight
            - nodes.record/a.embedder.counter.counts
            - nodes.record/a.embedder.linear.weight
            - nodes.record/a.embedder.linear.bias
            - nodes.record/a.embedder.scalar.weight
            - nodes.record/a.embedder.normalizer.mean
            - nodes.record/a.embedder.normalizer.var
            - nodes.record/a.embedder.normalizer.count
            - nodes.record/b.embedder.embeddings.weight
            - nodes.record/b.embedder.counter.counts
            - nodes.record/b.embedder.linear.weight
            - nodes.record/b.embedder.linear.bias
            - nodes.record/b.embedder.scalar.weight
            - nodes.record/b.embedder.normalizer.mean
            - nodes.record/b.embedder.normalizer.var
            - nodes.record/b.embedder.normalizer.count
            - nodes.record/u.embedder.embeddings.weight
            - nodes.record/u.embedder.counter.counts
            - nodes.record/u.embedder.linear.weight
            - nodes.record/u.embedder.linear.bias
            - nodes.record/u.embedder.scalar.weight
            - nodes.record/u.embedder.normalizer.mean
            - nodes.record/u.embedder.normalizer.var
            - nodes.record/u.embedder.normalizer.count
            - nodes.record/u.decoder.context_projection.0.weight
            - nodes.record/u.decoder.context_projection.0.bias
            - nodes.record/u.decoder.context_projection.1.weight
            - nodes.record/u.decoder.context_projection.1.bias
            - nodes.record/u.decoder.context_projection.3.weight
            - nodes.record/u.decoder.context_projection.3.bias
            - nodes.record/u.decoder.pool.queries
            - nodes.record/u.decoder.pool.blocks.0.ffn_norm.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn_norm.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.q_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.q_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.k_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.k_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.v_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.v_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.out_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.out_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.ffn.0.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn.0.bias
            - nodes.record/u.decoder.pool.blocks.0.ffn.3.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn.3.bias
            - nodes.record/u.decoder.pool.norm.weight
            - nodes.record/u.decoder.pool.norm.bias
            - nodes.record/u.decoder.classification.weight
            - nodes.record/u.decoder.classification.bias
            - nodes.record/u.decoder.regression.weight
            - nodes.record/u.decoder.regression.bias
            - nodes.record/v.embedder.embeddings.weight
            - nodes.record/v.embedder.counter.counts
            - nodes.record/v.embedder.linear.weight
            - nodes.record/v.embedder.linear.bias
            - nodes.record/v.embedder.scalar.weight
            - nodes.record/v.embedder.normalizer.mean
            - nodes.record/v.embedder.normalizer.var
            - nodes.record/v.embedder.normalizer.count
            - nodes.record/v.decoder.context_projection.0.weight
            - nodes.record/v.decoder.context_projection.0.bias
            - nodes.record/v.decoder.context_projection.1.weight
            - nodes.record/v.decoder.context_projection.1.bias
            - nodes.record/v.decoder.context_projection.3.weight
            - nodes.record/v.decoder.context_projection.3.bias
            - nodes.record/v.decoder.pool.queries
            - nodes.record/v.decoder.pool.blocks.0.ffn_norm.weight
            - nodes.record/v.decoder.pool.blocks.0.ffn_norm.bias
            - nodes.record/v.decoder.pool.blocks.0.attention.q_proj.weight
            - nodes.record/v.decoder.pool.blocks.0.attention.q_proj.bias
            - nodes.record/v.decoder.pool.blocks.0.attention.k_proj.weight
            - nodes.record/v.decoder.pool.blocks.0.attention.k_proj.bias
            - nodes.record/v.decoder.pool.blocks.0.attention.v_proj.weight
            - nodes.record/v.decoder.pool.blocks.0.attention.v_proj.bias
            - nodes.record/v.decoder.pool.blocks.0.attention.out_proj.weight
            - nodes.record/v.decoder.pool.blocks.0.attention.out_proj.bias
            - nodes.record/v.decoder.pool.blocks.0.ffn.0.weight
            - nodes.record/v.decoder.pool.blocks.0.ffn.0.bias
            - nodes.record/v.decoder.pool.blocks.0.ffn.3.weight
            - nodes.record/v.decoder.pool.blocks.0.ffn.3.bias
            - nodes.record/v.decoder.pool.norm.weight
            - nodes.record/v.decoder.pool.norm.bias
            - nodes.record/v.decoder.classification.weight
            - nodes.record/v.decoder.classification.bias
            - nodes.record/v.decoder.regression.weight
            - nodes.record/v.decoder.regression.bias
            - nodes.record.encoder.encoder.0.attention_norm.weight
            - nodes.record.encoder.encoder.0.attention_norm.bias
            - nodes.record.encoder.encoder.0.ffn_norm.weight
            - nodes.record.encoder.encoder.0.ffn_norm.bias
            - nodes.record.encoder.encoder.0.attention.q_proj.weight
            - nodes.record.encoder.encoder.0.attention.q_proj.bias
            - nodes.record.encoder.encoder.0.attention.k_proj.weight
            - nodes.record.encoder.encoder.0.attention.k_proj.bias
            - nodes.record.encoder.encoder.0.attention.v_proj.weight
            - nodes.record.encoder.encoder.0.attention.v_proj.bias
            - nodes.record.encoder.encoder.0.attention.out_proj.weight
            - nodes.record.encoder.encoder.0.attention.out_proj.bias
            - nodes.record.encoder.encoder.0.ffn.0.weight
            - nodes.record.encoder.encoder.0.ffn.0.bias
            - nodes.record.encoder.encoder.0.ffn.3.weight
            - nodes.record.encoder.encoder.0.ffn.3.bias
            - nodes.record.encoder.coordinate_encoder.attention_norm.weight
            - nodes.record.encoder.coordinate_encoder.attention_norm.bias
            - nodes.record.encoder.coordinate_encoder.ffn_norm.weight
            - nodes.record.encoder.coordinate_encoder.ffn_norm.bias
            - nodes.record.encoder.coordinate_encoder.attention.q_proj.weight
            - nodes.record.encoder.coordinate_encoder.attention.q_proj.bias
            - nodes.record.encoder.coordinate_encoder.attention.k_proj.weight
            - nodes.record.encoder.coordinate_encoder.attention.k_proj.bias
            - nodes.record.encoder.coordinate_encoder.attention.v_proj.weight
            - nodes.record.encoder.coordinate_encoder.attention.v_proj.bias
            - nodes.record.encoder.coordinate_encoder.attention.out_proj.weight
            - nodes.record.encoder.coordinate_encoder.attention.out_proj.bias
            - nodes.record.encoder.coordinate_encoder.ffn.0.weight
            - nodes.record.encoder.coordinate_encoder.ffn.0.bias
            - nodes.record.encoder.coordinate_encoder.ffn.3.weight
            - nodes.record.encoder.coordinate_encoder.ffn.3.bias
            - nodes.record.encoder.pool.queries
            - nodes.record.encoder.pool.mass_direction
            - nodes.record.encoder.pool.blocks.0.attention_norm.weight
            - nodes.record.encoder.pool.blocks.0.attention_norm.bias
            - nodes.record.encoder.pool.blocks.0.ffn_norm.weight
            - nodes.record.encoder.pool.blocks.0.ffn_norm.bias
            - nodes.record.encoder.pool.blocks.0.attention.q_proj.weight
            - nodes.record.encoder.pool.blocks.0.attention.q_proj.bias
            - nodes.record.encoder.pool.blocks.0.attention.k_proj.weight
            - nodes.record.encoder.pool.blocks.0.attention.k_proj.bias
            - nodes.record.encoder.pool.blocks.0.attention.v_proj.weight
            - nodes.record.encoder.pool.blocks.0.attention.v_proj.bias
            - nodes.record.encoder.pool.blocks.0.attention.out_proj.weight
            - nodes.record.encoder.pool.blocks.0.attention.out_proj.bias
            - nodes.record.encoder.pool.blocks.0.ffn.0.weight
            - nodes.record.encoder.pool.blocks.0.ffn.0.bias
            - nodes.record.encoder.pool.blocks.0.ffn.3.weight
            - nodes.record.encoder.pool.blocks.0.ffn.3.bias
            - nodes.record.encoder.pool.norm.weight
            - nodes.record.encoder.pool.norm.bias
            - nodes.record.encoder.pool.mass_projection.weight
            initial_prediction_drift:
              u: 2.959281414747238
              v: 3.2186422646045685
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 1.2645541266222733
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.9566191304650187
                v:
                  rmse: 1.4453547400996387
                  baseline_rmse: 1.3013515850804187
                  nrmse: 1.1106566101506852
            - step: 32
              scores:
                u:
                  rmse: 0.09326566428708902
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.07055429008078172
                v:
                  rmse: 0.07710959390132345
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.05925346753741293
            - step: 128
              scores:
                u:
                  rmse: 0.03477009442148113
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.02630313467127633
                v:
                  rmse: 0.05007222845263086
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.03847709491170027
            - step: 256
              scores:
                u:
                  rmse: 0.029895567385493513
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.022615616900051996
                v:
                  rmse: 0.06995185957194495
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.053753236538012276
        test_rows: 1024
        baseline: Source-training mean for test comparisons; phase-training mean for validation curves
        optimizer_policy: New AdamW factory and Trainer for every fit; both hidden labels rehearsed
        mutation: reset record/u; complete-reset control resets record with descendants=True
      checks:
        Source learns both targets below 0.25 nRMSE: true
        Reset changes selected learned state: true
        Reset preserves every unselected state entry: true
        Reset preserves the schema: true
        Selected target immediately loses its skill: true
        Unselected target immediately preserves predictions: true
        'selective_reset: fresh optimizer covers current parameters': true
        'selective_reset: both final targets below 0.25 nRMSE': true
        Reset head parameters actually relearn: true
        Hidden target placeholders cannot affect predictions: true
        Relearned checkpoint preserves schema and state: true
        Relearned checkpoint preserves predictions: true
        'continuation: fresh optimizer covers current parameters': true
        'continuation: both final targets below 0.25 nRMSE': true
        Complete reset loses both learned tasks: true
        'complete_reset: fresh optimizer covers current parameters': true
        'complete_reset: both final targets below 0.25 nRMSE': true
      outcome: met
      duration_seconds: 14.438
    - started_at: '2026-09-15T17:56:07.986706+00:00'
      mode: full
      seed: 4801
      steps_override: null
      accelerator: cpu
      threads: 1
      provenance:
        revision: 5d985953fd0416bc5982a3518d8f43cadb52110c
        source_sha256: 2252cee7efe14048db1252663050b74fce7ce20d11f143c1b24b93df622d6f7c
        script_sha256: 84de49318b9298b52f63fe1743ebcf79674875911b46ffd1222e86ea2521027e
        code_sha256: f7ad2a7bee509149b1c4bad0f6392d223f7a873be15ca244b94bae386803a02e
        python: 3.12.10
        platform: macOS-26.5.2-arm64-arm-64bit
        host: Granthams-MacBook-Pro.local
        relflow_path: /Users/grantham/Desktop/relflow/src/relflow
        packages:
          relflow: 0.2.2
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: null
        gpu: null
      metrics:
        source:
          u:
            rmse: 0.03358791864760073
            baseline_rmse: 1.3095368006346164
            nrmse: 0.02564870161061808
          v:
            rmse: 0.03156370575360709
            baseline_rmse: 1.3299997452869836
            nrmse: 0.023732114134199598
        source_fit:
          steps: 512
          optimizer_covers_current_parameters: true
          validation_curve:
          - step: 0
            scores:
              u:
                rmse: 1.3068514901822017
                baseline_rmse: 1.3363771131216209
                nrmse: 0.9779062192479107
              v:
                rmse: 1.239518438388088
                baseline_rmse: 1.2518777806823944
                nrmse: 0.9901273570910657
          - step: 32
            scores:
              u:
                rmse: 0.12416073898651163
                baseline_rmse: 1.3363771131216209
                nrmse: 0.0929084595713306
              v:
                rmse: 0.0746600123136656
                baseline_rmse: 1.2518777806823944
                nrmse: 0.05963841955320006
          - step: 128
            scores:
              u:
                rmse: 0.0258042552892143
                baseline_rmse: 1.3363771131216209
                nrmse: 0.019309111953390592
              v:
                rmse: 0.053975986675749904
                baseline_rmse: 1.2518777806823944
                nrmse: 0.04311601939793817
          - step: 512
            scores:
              u:
                rmse: 0.0343734284251833
                baseline_rmse: 1.3363771131216209
                nrmse: 0.02572135371646031
              v:
                rmse: 0.0322785317593936
                baseline_rmse: 1.2518777806823944
                nrmse: 0.02578409191175091
        source_prerequisite_met: true
        downstream_interpretable: true
        arms:
          selective_reset:
            before:
              u:
                rmse: 1.4491657976216348
                baseline_rmse: 1.3095368006346164
                nrmse: 1.1066247217484477
              v:
                rmse: 0.03156370575360709
                baseline_rmse: 1.3299997452869836
                nrmse: 0.023732114134199598
            after:
              u:
                rmse: 0.019335197482159963
                baseline_rmse: 1.3095368006346164
                nrmse: 0.014764913420371163
              v:
                rmse: 0.03096444665173069
                baseline_rmse: 1.3299997452869836
                nrmse: 0.023281543294618654
            changed_state_entries:
            - nodes.record/u.embedder.embeddings.weight
            - nodes.record/u.embedder.counter.counts
            - nodes.record/u.embedder.linear.weight
            - nodes.record/u.embedder.linear.bias
            - nodes.record/u.embedder.scalar.weight
            - nodes.record/u.embedder.normalizer.mean
            - nodes.record/u.embedder.normalizer.var
            - nodes.record/u.embedder.normalizer.count
            - nodes.record/u.decoder.context_projection.0.weight
            - nodes.record/u.decoder.context_projection.0.bias
            - nodes.record/u.decoder.context_projection.1.weight
            - nodes.record/u.decoder.context_projection.1.bias
            - nodes.record/u.decoder.context_projection.3.weight
            - nodes.record/u.decoder.context_projection.3.bias
            - nodes.record/u.decoder.pool.queries
            - nodes.record/u.decoder.pool.blocks.0.ffn_norm.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn_norm.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.q_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.q_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.k_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.k_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.v_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.v_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.out_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.out_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.ffn.0.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn.0.bias
            - nodes.record/u.decoder.pool.blocks.0.ffn.3.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn.3.bias
            - nodes.record/u.decoder.pool.norm.weight
            - nodes.record/u.decoder.pool.norm.bias
            - nodes.record/u.decoder.classification.weight
            - nodes.record/u.decoder.classification.bias
            - nodes.record/u.decoder.regression.weight
            - nodes.record/u.decoder.regression.bias
            initial_prediction_drift:
              u: 3.087439715862274
              v: 0.0
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 1.4673986990650236
                  baseline_rmse: 1.3218992662289384
                  nrmse: 1.110068472351271
                v:
                  rmse: 0.031117111830632205
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.023911379666632735
            - step: 32
              scores:
                u:
                  rmse: 0.07177933367028597
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.05430015395579664
                v:
                  rmse: 0.09672465815910404
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.0743263075620927
            - step: 128
              scores:
                u:
                  rmse: 0.031076536166253863
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.023509004778335167
                v:
                  rmse: 0.02592063403195276
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.01991824064236335
            - step: 256
              scores:
                u:
                  rmse: 0.01888875941418896
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.014289106512687657
                v:
                  rmse: 0.029985567132639054
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.023041864686233933
            reset_head_updated_parameters:
            - embedder.embeddings.weight
            - embedder.linear.weight
            - embedder.scalar.weight
            - decoder.context_projection.0.weight
            - decoder.context_projection.0.bias
            - decoder.context_projection.1.weight
            - decoder.context_projection.1.bias
            - decoder.context_projection.3.weight
            - decoder.context_projection.3.bias
            - decoder.pool.queries
            - decoder.pool.blocks.0.ffn_norm.weight
            - decoder.pool.blocks.0.ffn_norm.bias
            - decoder.pool.blocks.0.attention.q_proj.weight
            - decoder.pool.blocks.0.attention.k_proj.weight
            - decoder.pool.blocks.0.attention.v_proj.weight
            - decoder.pool.blocks.0.attention.v_proj.bias
            - decoder.pool.blocks.0.attention.out_proj.weight
            - decoder.pool.blocks.0.attention.out_proj.bias
            - decoder.pool.blocks.0.ffn.0.weight
            - decoder.pool.blocks.0.ffn.0.bias
            - decoder.pool.blocks.0.ffn.3.weight
            - decoder.pool.blocks.0.ffn.3.bias
            - decoder.pool.norm.weight
            - decoder.pool.norm.bias
            - decoder.classification.weight
            - decoder.classification.bias
            - decoder.regression.weight
            - decoder.regression.bias
          continuation:
            before:
              u:
                rmse: 0.03358791864760073
                baseline_rmse: 1.3095368006346164
                nrmse: 0.02564870161061808
              v:
                rmse: 0.03156370575360709
                baseline_rmse: 1.3299997452869836
                nrmse: 0.023732114134199598
            after:
              u:
                rmse: 0.023723095213619178
                baseline_rmse: 1.3095368006346164
                nrmse: 0.018115638447214845
              v:
                rmse: 0.01890324128381892
                baseline_rmse: 1.3299997452869836
                nrmse: 0.01421296609326796
            changed_state_entries: []
            initial_prediction_drift:
              u: 0.0
              v: 0.0
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 0.03508149973739064
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.026538708836316812
                v:
                  rmse: 0.031117111830632205
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.023911379666632735
            - step: 32
              scores:
                u:
                  rmse: 0.08731390598207757
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.0660518605409043
                v:
                  rmse: 0.07474587581370884
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.0574371112854101
            - step: 128
              scores:
                u:
                  rmse: 0.03262503869977538
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.024680427271018004
                v:
                  rmse: 0.02215005567457824
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.017020808157089576
            - step: 256
              scores:
                u:
                  rmse: 0.023497773499379464
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.017775767110010568
                v:
                  rmse: 0.019109970737607465
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.014684710078888127
          complete_reset:
            before:
              u:
                rmse: 1.2697078532128654
                baseline_rmse: 1.3095368006346164
                nrmse: 0.9695854691502755
              v:
                rmse: 1.4672726027853868
                baseline_rmse: 1.3299997452869836
                nrmse: 1.1032126945774587
            after:
              u:
                rmse: 0.02836517719142516
                baseline_rmse: 1.3095368006346164
                nrmse: 0.021660465882042467
              v:
                rmse: 0.07017519663442393
                baseline_rmse: 1.3299997452869836
                nrmse: 0.05276331584505809
            changed_state_entries:
            - nodes.record/a.embedder.embeddings.weight
            - nodes.record/a.embedder.counter.counts
            - nodes.record/a.embedder.linear.weight
            - nodes.record/a.embedder.linear.bias
            - nodes.record/a.embedder.scalar.weight
            - nodes.record/a.embedder.normalizer.mean
            - nodes.record/a.embedder.normalizer.var
            - nodes.record/a.embedder.normalizer.count
            - nodes.record/b.embedder.embeddings.weight
            - nodes.record/b.embedder.counter.counts
            - nodes.record/b.embedder.linear.weight
            - nodes.record/b.embedder.linear.bias
            - nodes.record/b.embedder.scalar.weight
            - nodes.record/b.embedder.normalizer.mean
            - nodes.record/b.embedder.normalizer.var
            - nodes.record/b.embedder.normalizer.count
            - nodes.record/u.embedder.embeddings.weight
            - nodes.record/u.embedder.counter.counts
            - nodes.record/u.embedder.linear.weight
            - nodes.record/u.embedder.linear.bias
            - nodes.record/u.embedder.scalar.weight
            - nodes.record/u.embedder.normalizer.mean
            - nodes.record/u.embedder.normalizer.var
            - nodes.record/u.embedder.normalizer.count
            - nodes.record/u.decoder.context_projection.0.weight
            - nodes.record/u.decoder.context_projection.0.bias
            - nodes.record/u.decoder.context_projection.1.weight
            - nodes.record/u.decoder.context_projection.1.bias
            - nodes.record/u.decoder.context_projection.3.weight
            - nodes.record/u.decoder.context_projection.3.bias
            - nodes.record/u.decoder.pool.queries
            - nodes.record/u.decoder.pool.blocks.0.ffn_norm.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn_norm.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.q_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.q_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.k_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.k_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.v_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.v_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.out_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.out_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.ffn.0.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn.0.bias
            - nodes.record/u.decoder.pool.blocks.0.ffn.3.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn.3.bias
            - nodes.record/u.decoder.pool.norm.weight
            - nodes.record/u.decoder.pool.norm.bias
            - nodes.record/u.decoder.classification.weight
            - nodes.record/u.decoder.classification.bias
            - nodes.record/u.decoder.regression.weight
            - nodes.record/u.decoder.regression.bias
            - nodes.record/v.embedder.embeddings.weight
            - nodes.record/v.embedder.counter.counts
            - nodes.record/v.embedder.linear.weight
            - nodes.record/v.embedder.linear.bias
            - nodes.record/v.embedder.scalar.weight
            - nodes.record/v.embedder.normalizer.mean
            - nodes.record/v.embedder.normalizer.var
            - nodes.record/v.embedder.normalizer.count
            - nodes.record/v.decoder.context_projection.0.weight
            - nodes.record/v.decoder.context_projection.0.bias
            - nodes.record/v.decoder.context_projection.1.weight
            - nodes.record/v.decoder.context_projection.1.bias
            - nodes.record/v.decoder.context_projection.3.weight
            - nodes.record/v.decoder.context_projection.3.bias
            - nodes.record/v.decoder.pool.queries
            - nodes.record/v.decoder.pool.blocks.0.ffn_norm.weight
            - nodes.record/v.decoder.pool.blocks.0.ffn_norm.bias
            - nodes.record/v.decoder.pool.blocks.0.attention.q_proj.weight
            - nodes.record/v.decoder.pool.blocks.0.attention.q_proj.bias
            - nodes.record/v.decoder.pool.blocks.0.attention.k_proj.weight
            - nodes.record/v.decoder.pool.blocks.0.attention.k_proj.bias
            - nodes.record/v.decoder.pool.blocks.0.attention.v_proj.weight
            - nodes.record/v.decoder.pool.blocks.0.attention.v_proj.bias
            - nodes.record/v.decoder.pool.blocks.0.attention.out_proj.weight
            - nodes.record/v.decoder.pool.blocks.0.attention.out_proj.bias
            - nodes.record/v.decoder.pool.blocks.0.ffn.0.weight
            - nodes.record/v.decoder.pool.blocks.0.ffn.0.bias
            - nodes.record/v.decoder.pool.blocks.0.ffn.3.weight
            - nodes.record/v.decoder.pool.blocks.0.ffn.3.bias
            - nodes.record/v.decoder.pool.norm.weight
            - nodes.record/v.decoder.pool.norm.bias
            - nodes.record/v.decoder.classification.weight
            - nodes.record/v.decoder.classification.bias
            - nodes.record/v.decoder.regression.weight
            - nodes.record/v.decoder.regression.bias
            - nodes.record.encoder.encoder.0.attention_norm.weight
            - nodes.record.encoder.encoder.0.attention_norm.bias
            - nodes.record.encoder.encoder.0.ffn_norm.weight
            - nodes.record.encoder.encoder.0.ffn_norm.bias
            - nodes.record.encoder.encoder.0.attention.q_proj.weight
            - nodes.record.encoder.encoder.0.attention.q_proj.bias
            - nodes.record.encoder.encoder.0.attention.k_proj.weight
            - nodes.record.encoder.encoder.0.attention.k_proj.bias
            - nodes.record.encoder.encoder.0.attention.v_proj.weight
            - nodes.record.encoder.encoder.0.attention.v_proj.bias
            - nodes.record.encoder.encoder.0.attention.out_proj.weight
            - nodes.record.encoder.encoder.0.attention.out_proj.bias
            - nodes.record.encoder.encoder.0.ffn.0.weight
            - nodes.record.encoder.encoder.0.ffn.0.bias
            - nodes.record.encoder.encoder.0.ffn.3.weight
            - nodes.record.encoder.encoder.0.ffn.3.bias
            - nodes.record.encoder.coordinate_encoder.attention_norm.weight
            - nodes.record.encoder.coordinate_encoder.attention_norm.bias
            - nodes.record.encoder.coordinate_encoder.ffn_norm.weight
            - nodes.record.encoder.coordinate_encoder.ffn_norm.bias
            - nodes.record.encoder.coordinate_encoder.attention.q_proj.weight
            - nodes.record.encoder.coordinate_encoder.attention.q_proj.bias
            - nodes.record.encoder.coordinate_encoder.attention.k_proj.weight
            - nodes.record.encoder.coordinate_encoder.attention.k_proj.bias
            - nodes.record.encoder.coordinate_encoder.attention.v_proj.weight
            - nodes.record.encoder.coordinate_encoder.attention.v_proj.bias
            - nodes.record.encoder.coordinate_encoder.attention.out_proj.weight
            - nodes.record.encoder.coordinate_encoder.attention.out_proj.bias
            - nodes.record.encoder.coordinate_encoder.ffn.0.weight
            - nodes.record.encoder.coordinate_encoder.ffn.0.bias
            - nodes.record.encoder.coordinate_encoder.ffn.3.weight
            - nodes.record.encoder.coordinate_encoder.ffn.3.bias
            - nodes.record.encoder.pool.queries
            - nodes.record.encoder.pool.mass_direction
            - nodes.record.encoder.pool.blocks.0.attention_norm.weight
            - nodes.record.encoder.pool.blocks.0.attention_norm.bias
            - nodes.record.encoder.pool.blocks.0.ffn_norm.weight
            - nodes.record.encoder.pool.blocks.0.ffn_norm.bias
            - nodes.record.encoder.pool.blocks.0.attention.q_proj.weight
            - nodes.record.encoder.pool.blocks.0.attention.q_proj.bias
            - nodes.record.encoder.pool.blocks.0.attention.k_proj.weight
            - nodes.record.encoder.pool.blocks.0.attention.k_proj.bias
            - nodes.record.encoder.pool.blocks.0.attention.v_proj.weight
            - nodes.record.encoder.pool.blocks.0.attention.v_proj.bias
            - nodes.record.encoder.pool.blocks.0.attention.out_proj.weight
            - nodes.record.encoder.pool.blocks.0.attention.out_proj.bias
            - nodes.record.encoder.pool.blocks.0.ffn.0.weight
            - nodes.record.encoder.pool.blocks.0.ffn.0.bias
            - nodes.record.encoder.pool.blocks.0.ffn.3.weight
            - nodes.record.encoder.pool.blocks.0.ffn.3.bias
            - nodes.record.encoder.pool.norm.weight
            - nodes.record.encoder.pool.norm.bias
            - nodes.record.encoder.pool.mass_projection.weight
            initial_prediction_drift:
              u: 2.959281414747238
              v: 3.2186422646045685
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 1.2645541266222733
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.9566191304650187
                v:
                  rmse: 1.4453547400996387
                  baseline_rmse: 1.3013515850804187
                  nrmse: 1.1106566101506852
            - step: 32
              scores:
                u:
                  rmse: 0.09326566428708902
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.07055429008078172
                v:
                  rmse: 0.07710959390132345
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.05925346753741293
            - step: 128
              scores:
                u:
                  rmse: 0.03477009442148113
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.02630313467127633
                v:
                  rmse: 0.05007222845263086
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.03847709491170027
            - step: 256
              scores:
                u:
                  rmse: 0.029895567385493513
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.022615616900051996
                v:
                  rmse: 0.06995185957194495
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.053753236538012276
        test_rows: 1024
        baseline: Source-training mean for test comparisons; phase-training mean for validation curves
        optimizer_policy: New AdamW factory and Trainer for every fit; both hidden labels rehearsed
        mutation: reset record/u; complete-reset control resets record with descendants=True
      checks:
        Source learns both targets below 0.25 nRMSE: true
        Reset changes selected learned state: true
        Reset preserves every unselected state entry: true
        Reset preserves the schema: true
        Selected target immediately loses its skill: true
        Unselected target immediately preserves predictions: true
        'selective_reset: fresh optimizer covers current parameters': true
        'selective_reset: both final targets below 0.25 nRMSE': true
        Reset head parameters actually relearn: true
        Hidden target placeholders cannot affect predictions: true
        Relearned checkpoint preserves schema and state: true
        Relearned checkpoint preserves predictions: true
        'continuation: fresh optimizer covers current parameters': true
        'continuation: both final targets below 0.25 nRMSE': true
        Complete reset loses both learned tasks: true
        'complete_reset: fresh optimizer covers current parameters': true
        'complete_reset: both final targets below 0.25 nRMSE': true
      outcome: met
      duration_seconds: 15.008
    - started_at: '2026-09-15T17:59:28.750941+00:00'
      mode: full
      seed: 4801
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 2252cee7efe14048db1252663050b74fce7ce20d11f143c1b24b93df622d6f7c
        script_sha256: 84de49318b9298b52f63fe1743ebcf79674875911b46ffd1222e86ea2521027e
        code_sha256: f7ad2a7bee509149b1c4bad0f6392d223f7a873be15ca244b94bae386803a02e
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-mutations-v3_tgit_/src/relflow
        packages:
          relflow: 0.2.2
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
      metrics:
        source:
          u:
            rmse: 0.03486898976137349
            baseline_rmse: 1.3095368006346164
            nrmse: 0.026626964392658214
          v:
            rmse: 0.023913129355889483
            baseline_rmse: 1.3299997452869836
            nrmse: 0.01797979995156283
        source_fit:
          steps: 512
          optimizer_covers_current_parameters: true
          validation_curve:
          - step: 0
            scores:
              u:
                rmse: 1.306851460766046
                baseline_rmse: 1.3363771131216209
                nrmse: 0.9779061972360433
              v:
                rmse: 1.239518428898769
                baseline_rmse: 1.2518777806823944
                nrmse: 0.9901273495109976
          - step: 32
            scores:
              u:
                rmse: 0.12416076009991522
                baseline_rmse: 1.3363771131216209
                nrmse: 0.09290847537031684
              v:
                rmse: 0.0746600408669145
                baseline_rmse: 1.2518777806823944
                nrmse: 0.059638442361535926
          - step: 128
            scores:
              u:
                rmse: 0.025857928944642575
                baseline_rmse: 1.3363771131216209
                nrmse: 0.019349275508199534
              v:
                rmse: 0.05415747091400457
                baseline_rmse: 1.2518777806823944
                nrmse: 0.04326098901162981
          - step: 512
            scores:
              u:
                rmse: 0.035328201845256105
                baseline_rmse: 1.3363771131216209
                nrmse: 0.026435802812226822
              v:
                rmse: 0.023122613995360922
                baseline_rmse: 1.2518777806823944
                nrmse: 0.01847034459127221
        source_prerequisite_met: true
        downstream_interpretable: true
        arms:
          selective_reset:
            before:
              u:
                rmse: 1.453095410541797
                baseline_rmse: 1.3095368006346164
                nrmse: 1.1096254873002505
              v:
                rmse: 0.023913129355889483
                baseline_rmse: 1.3299997452869836
                nrmse: 0.01797979995156283
            after:
              u:
                rmse: 0.030104610980376922
                baseline_rmse: 1.3095368006346164
                nrmse: 0.022988747598225483
              v:
                rmse: 0.015094024155396957
                baseline_rmse: 1.3299997452869836
                nrmse: 0.011348892515870377
            changed_state_entries:
            - nodes.record/u.embedder.embeddings.weight
            - nodes.record/u.embedder.counter.counts
            - nodes.record/u.embedder.linear.weight
            - nodes.record/u.embedder.linear.bias
            - nodes.record/u.embedder.scalar.weight
            - nodes.record/u.embedder.normalizer.mean
            - nodes.record/u.embedder.normalizer.var
            - nodes.record/u.embedder.normalizer.count
            - nodes.record/u.decoder.context_projection.0.weight
            - nodes.record/u.decoder.context_projection.0.bias
            - nodes.record/u.decoder.context_projection.1.weight
            - nodes.record/u.decoder.context_projection.1.bias
            - nodes.record/u.decoder.context_projection.3.weight
            - nodes.record/u.decoder.context_projection.3.bias
            - nodes.record/u.decoder.pool.queries
            - nodes.record/u.decoder.pool.blocks.0.attention_norm.weight
            - nodes.record/u.decoder.pool.blocks.0.attention_norm.bias
            - nodes.record/u.decoder.pool.blocks.0.ffn_norm.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn_norm.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.q_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.q_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.k_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.k_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.v_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.v_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.out_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.out_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.ffn.0.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn.0.bias
            - nodes.record/u.decoder.pool.blocks.0.ffn.3.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn.3.bias
            - nodes.record/u.decoder.pool.norm.weight
            - nodes.record/u.decoder.pool.norm.bias
            - nodes.record/u.decoder.classification.weight
            - nodes.record/u.decoder.classification.bias
            - nodes.record/u.decoder.regression.weight
            - nodes.record/u.decoder.regression.bias
            initial_prediction_drift:
              u: 3.157834827899933
              v: 0.0
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 1.4709752782012806
                  baseline_rmse: 1.3218992662289384
                  nrmse: 1.112774109026946
                v:
                  rmse: 0.024370825129755812
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.018727318127675533
            - step: 32
              scores:
                u:
                  rmse: 0.07010150875836921
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.05303090072691545
                v:
                  rmse: 0.11446097666958786
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.08795545952519403
            - step: 128
              scores:
                u:
                  rmse: 0.033955746317564664
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.025687090677062152
                v:
                  rmse: 0.030254737304352235
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.02324870361800236
            - step: 256
              scores:
                u:
                  rmse: 0.029946861070816684
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.02265441992130603
                v:
                  rmse: 0.014465925603878202
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.011116077906789703
            reset_head_updated_parameters:
            - embedder.embeddings.weight
            - embedder.linear.weight
            - embedder.scalar.weight
            - decoder.context_projection.0.weight
            - decoder.context_projection.0.bias
            - decoder.context_projection.1.weight
            - decoder.context_projection.1.bias
            - decoder.context_projection.3.weight
            - decoder.context_projection.3.bias
            - decoder.pool.queries
            - decoder.pool.blocks.0.attention_norm.weight
            - decoder.pool.blocks.0.attention_norm.bias
            - decoder.pool.blocks.0.ffn_norm.weight
            - decoder.pool.blocks.0.ffn_norm.bias
            - decoder.pool.blocks.0.attention.q_proj.weight
            - decoder.pool.blocks.0.attention.q_proj.bias
            - decoder.pool.blocks.0.attention.k_proj.weight
            - decoder.pool.blocks.0.attention.k_proj.bias
            - decoder.pool.blocks.0.attention.v_proj.weight
            - decoder.pool.blocks.0.attention.v_proj.bias
            - decoder.pool.blocks.0.attention.out_proj.weight
            - decoder.pool.blocks.0.attention.out_proj.bias
            - decoder.pool.blocks.0.ffn.0.weight
            - decoder.pool.blocks.0.ffn.0.bias
            - decoder.pool.blocks.0.ffn.3.weight
            - decoder.pool.blocks.0.ffn.3.bias
            - decoder.pool.norm.weight
            - decoder.pool.norm.bias
            - decoder.classification.weight
            - decoder.classification.bias
            - decoder.regression.weight
            - decoder.regression.bias
          continuation:
            before:
              u:
                rmse: 0.03486898976137349
                baseline_rmse: 1.3095368006346164
                nrmse: 0.026626964392658214
              v:
                rmse: 0.023913129355889483
                baseline_rmse: 1.3299997452869836
                nrmse: 0.01797979995156283
            after:
              u:
                rmse: 0.011157568747554308
                baseline_rmse: 1.3095368006346164
                nrmse: 0.008520240700488313
              v:
                rmse: 0.03783177597342966
                baseline_rmse: 1.3299997452869836
                nrmse: 0.028444949788517762
            changed_state_entries: []
            initial_prediction_drift:
              u: 0.0
              v: 0.0
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 0.03575045788708082
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.02704476717735709
                v:
                  rmse: 0.024370825129755812
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.018727318127675533
            - step: 32
              scores:
                u:
                  rmse: 0.08799193586778015
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.06656478153498038
                v:
                  rmse: 0.12242212700592879
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.09407306096942554
            - step: 128
              scores:
                u:
                  rmse: 0.010680149996980285
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.008079397780020101
                v:
                  rmse: 0.010780049453845484
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.008283733295010599
            - step: 256
              scores:
                u:
                  rmse: 0.01178134751345195
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.008912439710373173
                v:
                  rmse: 0.037828475979184796
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.029068605604262693
          complete_reset:
            before:
              u:
                rmse: 1.2697078081789366
                baseline_rmse: 1.3095368006346164
                nrmse: 0.9695854347610711
              v:
                rmse: 1.4672726032015133
                baseline_rmse: 1.3299997452869836
                nrmse: 1.1032126948903358
            after:
              u:
                rmse: 0.02626351852449911
                baseline_rmse: 1.3095368006346164
                nrmse: 0.02005557882128361
              v:
                rmse: 0.04900859171262993
                baseline_rmse: 1.3299997452869836
                nrmse: 0.03684857225446686
            changed_state_entries:
            - nodes.record/a.embedder.embeddings.weight
            - nodes.record/a.embedder.counter.counts
            - nodes.record/a.embedder.linear.weight
            - nodes.record/a.embedder.linear.bias
            - nodes.record/a.embedder.scalar.weight
            - nodes.record/a.embedder.normalizer.mean
            - nodes.record/a.embedder.normalizer.var
            - nodes.record/a.embedder.normalizer.count
            - nodes.record/b.embedder.embeddings.weight
            - nodes.record/b.embedder.counter.counts
            - nodes.record/b.embedder.linear.weight
            - nodes.record/b.embedder.linear.bias
            - nodes.record/b.embedder.scalar.weight
            - nodes.record/b.embedder.normalizer.mean
            - nodes.record/b.embedder.normalizer.var
            - nodes.record/b.embedder.normalizer.count
            - nodes.record/u.embedder.embeddings.weight
            - nodes.record/u.embedder.counter.counts
            - nodes.record/u.embedder.linear.weight
            - nodes.record/u.embedder.linear.bias
            - nodes.record/u.embedder.scalar.weight
            - nodes.record/u.embedder.normalizer.mean
            - nodes.record/u.embedder.normalizer.var
            - nodes.record/u.embedder.normalizer.count
            - nodes.record/u.decoder.context_projection.0.weight
            - nodes.record/u.decoder.context_projection.0.bias
            - nodes.record/u.decoder.context_projection.1.weight
            - nodes.record/u.decoder.context_projection.1.bias
            - nodes.record/u.decoder.context_projection.3.weight
            - nodes.record/u.decoder.context_projection.3.bias
            - nodes.record/u.decoder.pool.queries
            - nodes.record/u.decoder.pool.blocks.0.attention_norm.weight
            - nodes.record/u.decoder.pool.blocks.0.attention_norm.bias
            - nodes.record/u.decoder.pool.blocks.0.ffn_norm.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn_norm.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.q_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.q_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.k_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.k_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.v_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.v_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.out_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.out_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.ffn.0.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn.0.bias
            - nodes.record/u.decoder.pool.blocks.0.ffn.3.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn.3.bias
            - nodes.record/u.decoder.pool.norm.weight
            - nodes.record/u.decoder.pool.norm.bias
            - nodes.record/u.decoder.classification.weight
            - nodes.record/u.decoder.classification.bias
            - nodes.record/u.decoder.regression.weight
            - nodes.record/u.decoder.regression.bias
            - nodes.record/v.embedder.embeddings.weight
            - nodes.record/v.embedder.counter.counts
            - nodes.record/v.embedder.linear.weight
            - nodes.record/v.embedder.linear.bias
            - nodes.record/v.embedder.scalar.weight
            - nodes.record/v.embedder.normalizer.mean
            - nodes.record/v.embedder.normalizer.var
            - nodes.record/v.embedder.normalizer.count
            - nodes.record/v.decoder.context_projection.0.weight
            - nodes.record/v.decoder.context_projection.0.bias
            - nodes.record/v.decoder.context_projection.1.weight
            - nodes.record/v.decoder.context_projection.1.bias
            - nodes.record/v.decoder.context_projection.3.weight
            - nodes.record/v.decoder.context_projection.3.bias
            - nodes.record/v.decoder.pool.queries
            - nodes.record/v.decoder.pool.blocks.0.attention_norm.weight
            - nodes.record/v.decoder.pool.blocks.0.attention_norm.bias
            - nodes.record/v.decoder.pool.blocks.0.ffn_norm.weight
            - nodes.record/v.decoder.pool.blocks.0.ffn_norm.bias
            - nodes.record/v.decoder.pool.blocks.0.attention.q_proj.weight
            - nodes.record/v.decoder.pool.blocks.0.attention.q_proj.bias
            - nodes.record/v.decoder.pool.blocks.0.attention.k_proj.weight
            - nodes.record/v.decoder.pool.blocks.0.attention.k_proj.bias
            - nodes.record/v.decoder.pool.blocks.0.attention.v_proj.weight
            - nodes.record/v.decoder.pool.blocks.0.attention.v_proj.bias
            - nodes.record/v.decoder.pool.blocks.0.attention.out_proj.weight
            - nodes.record/v.decoder.pool.blocks.0.attention.out_proj.bias
            - nodes.record/v.decoder.pool.blocks.0.ffn.0.weight
            - nodes.record/v.decoder.pool.blocks.0.ffn.0.bias
            - nodes.record/v.decoder.pool.blocks.0.ffn.3.weight
            - nodes.record/v.decoder.pool.blocks.0.ffn.3.bias
            - nodes.record/v.decoder.pool.norm.weight
            - nodes.record/v.decoder.pool.norm.bias
            - nodes.record/v.decoder.classification.weight
            - nodes.record/v.decoder.classification.bias
            - nodes.record/v.decoder.regression.weight
            - nodes.record/v.decoder.regression.bias
            - nodes.record.encoder.encoder.0.attention_norm.weight
            - nodes.record.encoder.encoder.0.attention_norm.bias
            - nodes.record.encoder.encoder.0.ffn_norm.weight
            - nodes.record.encoder.encoder.0.ffn_norm.bias
            - nodes.record.encoder.encoder.0.attention.q_proj.weight
            - nodes.record.encoder.encoder.0.attention.q_proj.bias
            - nodes.record.encoder.encoder.0.attention.k_proj.weight
            - nodes.record.encoder.encoder.0.attention.k_proj.bias
            - nodes.record.encoder.encoder.0.attention.v_proj.weight
            - nodes.record.encoder.encoder.0.attention.v_proj.bias
            - nodes.record.encoder.encoder.0.attention.out_proj.weight
            - nodes.record.encoder.encoder.0.attention.out_proj.bias
            - nodes.record.encoder.encoder.0.ffn.0.weight
            - nodes.record.encoder.encoder.0.ffn.0.bias
            - nodes.record.encoder.encoder.0.ffn.3.weight
            - nodes.record.encoder.encoder.0.ffn.3.bias
            - nodes.record.encoder.coordinate_encoder.attention_norm.weight
            - nodes.record.encoder.coordinate_encoder.attention_norm.bias
            - nodes.record.encoder.coordinate_encoder.ffn_norm.weight
            - nodes.record.encoder.coordinate_encoder.ffn_norm.bias
            - nodes.record.encoder.coordinate_encoder.attention.q_proj.weight
            - nodes.record.encoder.coordinate_encoder.attention.q_proj.bias
            - nodes.record.encoder.coordinate_encoder.attention.k_proj.weight
            - nodes.record.encoder.coordinate_encoder.attention.k_proj.bias
            - nodes.record.encoder.coordinate_encoder.attention.v_proj.weight
            - nodes.record.encoder.coordinate_encoder.attention.v_proj.bias
            - nodes.record.encoder.coordinate_encoder.attention.out_proj.weight
            - nodes.record.encoder.coordinate_encoder.attention.out_proj.bias
            - nodes.record.encoder.coordinate_encoder.ffn.0.weight
            - nodes.record.encoder.coordinate_encoder.ffn.0.bias
            - nodes.record.encoder.coordinate_encoder.ffn.3.weight
            - nodes.record.encoder.coordinate_encoder.ffn.3.bias
            - nodes.record.encoder.pool.queries
            - nodes.record.encoder.pool.mass_direction
            - nodes.record.encoder.pool.blocks.0.attention_norm.weight
            - nodes.record.encoder.pool.blocks.0.attention_norm.bias
            - nodes.record.encoder.pool.blocks.0.ffn_norm.weight
            - nodes.record.encoder.pool.blocks.0.ffn_norm.bias
            - nodes.record.encoder.pool.blocks.0.attention.q_proj.weight
            - nodes.record.encoder.pool.blocks.0.attention.q_proj.bias
            - nodes.record.encoder.pool.blocks.0.attention.k_proj.weight
            - nodes.record.encoder.pool.blocks.0.attention.k_proj.bias
            - nodes.record.encoder.pool.blocks.0.attention.v_proj.weight
            - nodes.record.encoder.pool.blocks.0.attention.v_proj.bias
            - nodes.record.encoder.pool.blocks.0.attention.out_proj.weight
            - nodes.record.encoder.pool.blocks.0.attention.out_proj.bias
            - nodes.record.encoder.pool.blocks.0.ffn.0.weight
            - nodes.record.encoder.pool.blocks.0.ffn.0.bias
            - nodes.record.encoder.pool.blocks.0.ffn.3.weight
            - nodes.record.encoder.pool.blocks.0.ffn.3.bias
            - nodes.record.encoder.pool.norm.weight
            - nodes.record.encoder.pool.norm.bias
            - nodes.record.encoder.pool.mass_projection.weight
            initial_prediction_drift:
              u: 3.0307161808013916
              v: 3.276441514492035
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 1.2645540796908759
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.9566190949620128
                v:
                  rmse: 1.445354731245329
                  baseline_rmse: 1.3013515850804187
                  nrmse: 1.1106566033467515
            - step: 32
              scores:
                u:
                  rmse: 0.09326570235963688
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.07055431888218046
                v:
                  rmse: 0.07710958198337366
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.059253458379280775
            - step: 128
              scores:
                u:
                  rmse: 0.0348029081713234
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.026327957856129045
                v:
                  rmse: 0.050016179758700076
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.038434025310392396
            - step: 256
              scores:
                u:
                  rmse: 0.025879687118018732
                  baseline_rmse: 1.3218992662289384
                  nrmse: 0.019577654499988696
                v:
                  rmse: 0.04897061230943835
                  baseline_rmse: 1.3013515850804187
                  nrmse: 0.03763057798589621
        test_rows: 1024
        baseline: Source-training mean for test comparisons; phase-training mean for validation curves
        optimizer_policy: New AdamW factory and Trainer for every fit; both hidden labels rehearsed
        mutation: reset record/u; complete-reset control resets record with descendants=True
      checks:
        Source learns both targets below 0.25 nRMSE: true
        Reset changes selected learned state: true
        Reset preserves every unselected state entry: true
        Reset preserves the schema: true
        Selected target immediately loses its skill: true
        Unselected target immediately preserves predictions: true
        'selective_reset: fresh optimizer covers current parameters': true
        'selective_reset: both final targets below 0.25 nRMSE': true
        Reset head parameters actually relearn: true
        Hidden target placeholders cannot affect predictions: true
        Relearned checkpoint preserves schema and state: true
        Relearned checkpoint preserves predictions: true
        'continuation: fresh optimizer covers current parameters': true
        'continuation: both final targets below 0.25 nRMSE': true
        Complete reset loses both learned tasks: true
        'complete_reset: fresh optimizer covers current parameters': true
        'complete_reset: both final targets below 0.25 nRMSE': true
      outcome: met
      duration_seconds: 35.627
    - started_at: '2026-09-15T18:01:31.237558+00:00'
      mode: full
      seed: 7101
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 2252cee7efe14048db1252663050b74fce7ce20d11f143c1b24b93df622d6f7c
        script_sha256: 84de49318b9298b52f63fe1743ebcf79674875911b46ffd1222e86ea2521027e
        code_sha256: f7ad2a7bee509149b1c4bad0f6392d223f7a873be15ca244b94bae386803a02e
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-mutations-v3_tgit_/src/relflow
        packages:
          relflow: 0.2.2
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
      metrics:
        source:
          u:
            rmse: 0.009796106068409562
            baseline_rmse: 1.2908974940031006
            nrmse: 0.007588601042234289
          v:
            rmse: 0.019397250921355053
            baseline_rmse: 1.2969480983896875
            nrmse: 0.01495607337366777
        source_fit:
          steps: 512
          optimizer_covers_current_parameters: true
          validation_curve:
          - step: 0
            scores:
              u:
                rmse: 1.5771062482408669
                baseline_rmse: 1.214202473192484
                nrmse: 1.2988824212276602
              v:
                rmse: 1.3072694637116182
                baseline_rmse: 1.3285155523136438
                nrmse: 0.9840076478103512
          - step: 32
            scores:
              u:
                rmse: 0.10717741666818707
                baseline_rmse: 1.214202473192484
                nrmse: 0.08826980592980273
              v:
                rmse: 0.10111543375960332
                baseline_rmse: 1.3285155523136438
                nrmse: 0.07611159205739684
          - step: 128
            scores:
              u:
                rmse: 0.017833300961804754
                baseline_rmse: 1.214202473192484
                nrmse: 0.014687254684069229
              v:
                rmse: 0.022416444336445907
                baseline_rmse: 1.3285155523136438
                nrmse: 0.016873302158493437
          - step: 512
            scores:
              u:
                rmse: 0.009539652227979903
                baseline_rmse: 1.214202473192484
                nrmse: 0.007856722777789638
              v:
                rmse: 0.01895260950991225
                baseline_rmse: 1.3285155523136438
                nrmse: 0.014266004998515672
        source_prerequisite_met: true
        downstream_interpretable: true
        arms:
          selective_reset:
            before:
              u:
                rmse: 1.609977754081612
                baseline_rmse: 1.2908974940031006
                nrmse: 1.2471770698764288
              v:
                rmse: 0.019397250921355053
                baseline_rmse: 1.2969480983896875
                nrmse: 0.01495607337366777
            after:
              u:
                rmse: 0.04632457690965369
                baseline_rmse: 1.2908974940031006
                nrmse: 0.03588555801282114
              v:
                rmse: 0.015373638433522189
                baseline_rmse: 1.2969480983896875
                nrmse: 0.011853703669877272
            changed_state_entries:
            - nodes.record/u.embedder.embeddings.weight
            - nodes.record/u.embedder.counter.counts
            - nodes.record/u.embedder.linear.weight
            - nodes.record/u.embedder.linear.bias
            - nodes.record/u.embedder.scalar.weight
            - nodes.record/u.embedder.normalizer.mean
            - nodes.record/u.embedder.normalizer.var
            - nodes.record/u.embedder.normalizer.count
            - nodes.record/u.decoder.context_projection.0.weight
            - nodes.record/u.decoder.context_projection.0.bias
            - nodes.record/u.decoder.context_projection.1.weight
            - nodes.record/u.decoder.context_projection.1.bias
            - nodes.record/u.decoder.context_projection.3.weight
            - nodes.record/u.decoder.context_projection.3.bias
            - nodes.record/u.decoder.pool.queries
            - nodes.record/u.decoder.pool.blocks.0.attention_norm.weight
            - nodes.record/u.decoder.pool.blocks.0.attention_norm.bias
            - nodes.record/u.decoder.pool.blocks.0.ffn_norm.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn_norm.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.q_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.q_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.k_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.k_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.v_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.v_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.out_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.out_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.ffn.0.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn.0.bias
            - nodes.record/u.decoder.pool.blocks.0.ffn.3.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn.3.bias
            - nodes.record/u.decoder.pool.norm.weight
            - nodes.record/u.decoder.pool.norm.bias
            - nodes.record/u.decoder.classification.weight
            - nodes.record/u.decoder.classification.bias
            - nodes.record/u.decoder.regression.weight
            - nodes.record/u.decoder.regression.bias
            initial_prediction_drift:
              u: 3.6637556552886963
              v: 0.0
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 1.5776053052517884
                  baseline_rmse: 1.2520463239225392
                  nrmse: 1.2600215144670563
                v:
                  rmse: 0.01851867432477028
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.014106081781560868
            - step: 32
              scores:
                u:
                  rmse: 0.09245453226491651
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.07384274087820127
                v:
                  rmse: 0.029584106461261212
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.022534864961621957
            - step: 128
              scores:
                u:
                  rmse: 0.05615155865109741
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.04484782837361803
                v:
                  rmse: 0.012019017248036383
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.009155149945480506
            - step: 256
              scores:
                u:
                  rmse: 0.04690964108847677
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.037466378193990006
                v:
                  rmse: 0.01498911598433781
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.011417539517154029
            reset_head_updated_parameters:
            - embedder.embeddings.weight
            - embedder.linear.weight
            - embedder.scalar.weight
            - decoder.context_projection.0.weight
            - decoder.context_projection.0.bias
            - decoder.context_projection.1.weight
            - decoder.context_projection.1.bias
            - decoder.context_projection.3.weight
            - decoder.context_projection.3.bias
            - decoder.pool.queries
            - decoder.pool.blocks.0.attention_norm.weight
            - decoder.pool.blocks.0.attention_norm.bias
            - decoder.pool.blocks.0.ffn_norm.weight
            - decoder.pool.blocks.0.ffn_norm.bias
            - decoder.pool.blocks.0.attention.q_proj.weight
            - decoder.pool.blocks.0.attention.q_proj.bias
            - decoder.pool.blocks.0.attention.k_proj.weight
            - decoder.pool.blocks.0.attention.k_proj.bias
            - decoder.pool.blocks.0.attention.v_proj.weight
            - decoder.pool.blocks.0.attention.v_proj.bias
            - decoder.pool.blocks.0.attention.out_proj.weight
            - decoder.pool.blocks.0.attention.out_proj.bias
            - decoder.pool.blocks.0.ffn.0.weight
            - decoder.pool.blocks.0.ffn.0.bias
            - decoder.pool.blocks.0.ffn.3.weight
            - decoder.pool.blocks.0.ffn.3.bias
            - decoder.pool.norm.weight
            - decoder.pool.norm.bias
            - decoder.classification.weight
            - decoder.classification.bias
            - decoder.regression.weight
            - decoder.regression.bias
          continuation:
            before:
              u:
                rmse: 0.009796106068409562
                baseline_rmse: 1.2908974940031006
                nrmse: 0.007588601042234289
              v:
                rmse: 0.019397250921355053
                baseline_rmse: 1.2969480983896875
                nrmse: 0.01495607337366777
            after:
              u:
                rmse: 0.014894116016718029
                baseline_rmse: 1.2908974940031006
                nrmse: 0.011537799155943093
              v:
                rmse: 0.03418484117031133
                baseline_rmse: 1.2969480983896875
                nrmse: 0.02635790993699424
            changed_state_entries: []
            initial_prediction_drift:
              u: 0.0
              v: 0.0
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 0.009405761385961659
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.007512311011380413
                v:
                  rmse: 0.01851867432477028
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.014106081781560868
            - step: 32
              scores:
                u:
                  rmse: 0.08427936048393028
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.06731329254647005
                v:
                  rmse: 0.061933053385872454
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.04717576975120379
            - step: 128
              scores:
                u:
                  rmse: 0.028769483507834138
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.02297797050967104
                v:
                  rmse: 0.052134352761181266
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.03971188384118252
            - step: 256
              scores:
                u:
                  rmse: 0.01376603956676995
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.010994832462462162
                v:
                  rmse: 0.035074513265269745
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.026717028653965164
          complete_reset:
            before:
              u:
                rmse: 1.4410291398560169
                baseline_rmse: 1.2908974940031006
                nrmse: 1.116300207065516
              v:
                rmse: 1.4272504185751518
                baseline_rmse: 1.2969480983896875
                nrmse: 1.1004684153107205
            after:
              u:
                rmse: 0.019270368654935185
                baseline_rmse: 1.2908974940031006
                nrmse: 0.01492788447142876
              v:
                rmse: 0.03453584099338142
                baseline_rmse: 1.2969480983896875
                nrmse: 0.026628545148615967
            changed_state_entries:
            - nodes.record/a.embedder.embeddings.weight
            - nodes.record/a.embedder.counter.counts
            - nodes.record/a.embedder.linear.weight
            - nodes.record/a.embedder.linear.bias
            - nodes.record/a.embedder.scalar.weight
            - nodes.record/a.embedder.normalizer.mean
            - nodes.record/a.embedder.normalizer.var
            - nodes.record/a.embedder.normalizer.count
            - nodes.record/b.embedder.embeddings.weight
            - nodes.record/b.embedder.counter.counts
            - nodes.record/b.embedder.linear.weight
            - nodes.record/b.embedder.linear.bias
            - nodes.record/b.embedder.scalar.weight
            - nodes.record/b.embedder.normalizer.mean
            - nodes.record/b.embedder.normalizer.var
            - nodes.record/b.embedder.normalizer.count
            - nodes.record/u.embedder.embeddings.weight
            - nodes.record/u.embedder.counter.counts
            - nodes.record/u.embedder.linear.weight
            - nodes.record/u.embedder.linear.bias
            - nodes.record/u.embedder.scalar.weight
            - nodes.record/u.embedder.normalizer.mean
            - nodes.record/u.embedder.normalizer.var
            - nodes.record/u.embedder.normalizer.count
            - nodes.record/u.decoder.context_projection.0.weight
            - nodes.record/u.decoder.context_projection.0.bias
            - nodes.record/u.decoder.context_projection.1.weight
            - nodes.record/u.decoder.context_projection.1.bias
            - nodes.record/u.decoder.context_projection.3.weight
            - nodes.record/u.decoder.context_projection.3.bias
            - nodes.record/u.decoder.pool.queries
            - nodes.record/u.decoder.pool.blocks.0.attention_norm.weight
            - nodes.record/u.decoder.pool.blocks.0.attention_norm.bias
            - nodes.record/u.decoder.pool.blocks.0.ffn_norm.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn_norm.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.q_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.q_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.k_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.k_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.v_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.v_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.out_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.out_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.ffn.0.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn.0.bias
            - nodes.record/u.decoder.pool.blocks.0.ffn.3.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn.3.bias
            - nodes.record/u.decoder.pool.norm.weight
            - nodes.record/u.decoder.pool.norm.bias
            - nodes.record/u.decoder.classification.weight
            - nodes.record/u.decoder.classification.bias
            - nodes.record/u.decoder.regression.weight
            - nodes.record/u.decoder.regression.bias
            - nodes.record/v.embedder.embeddings.weight
            - nodes.record/v.embedder.counter.counts
            - nodes.record/v.embedder.linear.weight
            - nodes.record/v.embedder.linear.bias
            - nodes.record/v.embedder.scalar.weight
            - nodes.record/v.embedder.normalizer.mean
            - nodes.record/v.embedder.normalizer.var
            - nodes.record/v.embedder.normalizer.count
            - nodes.record/v.decoder.context_projection.0.weight
            - nodes.record/v.decoder.context_projection.0.bias
            - nodes.record/v.decoder.context_projection.1.weight
            - nodes.record/v.decoder.context_projection.1.bias
            - nodes.record/v.decoder.context_projection.3.weight
            - nodes.record/v.decoder.context_projection.3.bias
            - nodes.record/v.decoder.pool.queries
            - nodes.record/v.decoder.pool.blocks.0.attention_norm.weight
            - nodes.record/v.decoder.pool.blocks.0.attention_norm.bias
            - nodes.record/v.decoder.pool.blocks.0.ffn_norm.weight
            - nodes.record/v.decoder.pool.blocks.0.ffn_norm.bias
            - nodes.record/v.decoder.pool.blocks.0.attention.q_proj.weight
            - nodes.record/v.decoder.pool.blocks.0.attention.q_proj.bias
            - nodes.record/v.decoder.pool.blocks.0.attention.k_proj.weight
            - nodes.record/v.decoder.pool.blocks.0.attention.k_proj.bias
            - nodes.record/v.decoder.pool.blocks.0.attention.v_proj.weight
            - nodes.record/v.decoder.pool.blocks.0.attention.v_proj.bias
            - nodes.record/v.decoder.pool.blocks.0.attention.out_proj.weight
            - nodes.record/v.decoder.pool.blocks.0.attention.out_proj.bias
            - nodes.record/v.decoder.pool.blocks.0.ffn.0.weight
            - nodes.record/v.decoder.pool.blocks.0.ffn.0.bias
            - nodes.record/v.decoder.pool.blocks.0.ffn.3.weight
            - nodes.record/v.decoder.pool.blocks.0.ffn.3.bias
            - nodes.record/v.decoder.pool.norm.weight
            - nodes.record/v.decoder.pool.norm.bias
            - nodes.record/v.decoder.classification.weight
            - nodes.record/v.decoder.classification.bias
            - nodes.record/v.decoder.regression.weight
            - nodes.record/v.decoder.regression.bias
            - nodes.record.encoder.encoder.0.attention_norm.weight
            - nodes.record.encoder.encoder.0.attention_norm.bias
            - nodes.record.encoder.encoder.0.ffn_norm.weight
            - nodes.record.encoder.encoder.0.ffn_norm.bias
            - nodes.record.encoder.encoder.0.attention.q_proj.weight
            - nodes.record.encoder.encoder.0.attention.q_proj.bias
            - nodes.record.encoder.encoder.0.attention.k_proj.weight
            - nodes.record.encoder.encoder.0.attention.k_proj.bias
            - nodes.record.encoder.encoder.0.attention.v_proj.weight
            - nodes.record.encoder.encoder.0.attention.v_proj.bias
            - nodes.record.encoder.encoder.0.attention.out_proj.weight
            - nodes.record.encoder.encoder.0.attention.out_proj.bias
            - nodes.record.encoder.encoder.0.ffn.0.weight
            - nodes.record.encoder.encoder.0.ffn.0.bias
            - nodes.record.encoder.encoder.0.ffn.3.weight
            - nodes.record.encoder.encoder.0.ffn.3.bias
            - nodes.record.encoder.coordinate_encoder.attention_norm.weight
            - nodes.record.encoder.coordinate_encoder.attention_norm.bias
            - nodes.record.encoder.coordinate_encoder.ffn_norm.weight
            - nodes.record.encoder.coordinate_encoder.ffn_norm.bias
            - nodes.record.encoder.coordinate_encoder.attention.q_proj.weight
            - nodes.record.encoder.coordinate_encoder.attention.q_proj.bias
            - nodes.record.encoder.coordinate_encoder.attention.k_proj.weight
            - nodes.record.encoder.coordinate_encoder.attention.k_proj.bias
            - nodes.record.encoder.coordinate_encoder.attention.v_proj.weight
            - nodes.record.encoder.coordinate_encoder.attention.v_proj.bias
            - nodes.record.encoder.coordinate_encoder.attention.out_proj.weight
            - nodes.record.encoder.coordinate_encoder.attention.out_proj.bias
            - nodes.record.encoder.coordinate_encoder.ffn.0.weight
            - nodes.record.encoder.coordinate_encoder.ffn.0.bias
            - nodes.record.encoder.coordinate_encoder.ffn.3.weight
            - nodes.record.encoder.coordinate_encoder.ffn.3.bias
            - nodes.record.encoder.pool.queries
            - nodes.record.encoder.pool.mass_direction
            - nodes.record.encoder.pool.blocks.0.attention_norm.weight
            - nodes.record.encoder.pool.blocks.0.attention_norm.bias
            - nodes.record.encoder.pool.blocks.0.ffn_norm.weight
            - nodes.record.encoder.pool.blocks.0.ffn_norm.bias
            - nodes.record.encoder.pool.blocks.0.attention.q_proj.weight
            - nodes.record.encoder.pool.blocks.0.attention.q_proj.bias
            - nodes.record.encoder.pool.blocks.0.attention.k_proj.weight
            - nodes.record.encoder.pool.blocks.0.attention.k_proj.bias
            - nodes.record.encoder.pool.blocks.0.attention.v_proj.weight
            - nodes.record.encoder.pool.blocks.0.attention.v_proj.bias
            - nodes.record.encoder.pool.blocks.0.attention.out_proj.weight
            - nodes.record.encoder.pool.blocks.0.attention.out_proj.bias
            - nodes.record.encoder.pool.blocks.0.ffn.0.weight
            - nodes.record.encoder.pool.blocks.0.ffn.0.bias
            - nodes.record.encoder.pool.blocks.0.ffn.3.weight
            - nodes.record.encoder.pool.blocks.0.ffn.3.bias
            - nodes.record.encoder.pool.norm.weight
            - nodes.record.encoder.pool.norm.bias
            - nodes.record.encoder.pool.mass_projection.weight
            initial_prediction_drift:
              u: 3.4898728728294373
              v: 3.0272326171398163
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 1.3874749972975753
                  baseline_rmse: 1.2520463239225392
                  nrmse: 1.1081658647826633
                v:
                  rmse: 1.4373958297140221
                  baseline_rmse: 1.3128148986756512
                  nrmse: 1.0948960368777398
            - step: 32
              scores:
                u:
                  rmse: 0.0686681868131216
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.05484476532624676
                v:
                  rmse: 0.09046761199796963
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.06891117101826925
            - step: 128
              scores:
                u:
                  rmse: 0.02379988831312726
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.019008792133636498
                v:
                  rmse: 0.02647999021107485
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.020170391300241553
            - step: 256
              scores:
                u:
                  rmse: 0.01781185651776526
                  baseline_rmse: 1.2520463239225392
                  nrmse: 0.014226196089903803
                v:
                  rmse: 0.034212078750043576
                  baseline_rmse: 1.3128148986756512
                  nrmse: 0.02606009330375229
        test_rows: 1024
        baseline: Source-training mean for test comparisons; phase-training mean for validation curves
        optimizer_policy: New AdamW factory and Trainer for every fit; both hidden labels rehearsed
        mutation: reset record/u; complete-reset control resets record with descendants=True
      checks:
        Source learns both targets below 0.25 nRMSE: true
        Reset changes selected learned state: true
        Reset preserves every unselected state entry: true
        Reset preserves the schema: true
        Selected target immediately loses its skill: true
        Unselected target immediately preserves predictions: true
        'selective_reset: fresh optimizer covers current parameters': true
        'selective_reset: both final targets below 0.25 nRMSE': true
        Reset head parameters actually relearn: true
        Hidden target placeholders cannot affect predictions: true
        Relearned checkpoint preserves schema and state: true
        Relearned checkpoint preserves predictions: true
        'continuation: fresh optimizer covers current parameters': true
        'continuation: both final targets below 0.25 nRMSE': true
        Complete reset loses both learned tasks: true
        'complete_reset: fresh optimizer covers current parameters': true
        'complete_reset: both final targets below 0.25 nRMSE': true
      outcome: met
      duration_seconds: 35.489
    - started_at: '2026-09-15T18:03:47.205739+00:00'
      mode: full
      seed: 7102
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: 2252cee7efe14048db1252663050b74fce7ce20d11f143c1b24b93df622d6f7c
        script_sha256: 84de49318b9298b52f63fe1743ebcf79674875911b46ffd1222e86ea2521027e
        code_sha256: f7ad2a7bee509149b1c4bad0f6392d223f7a873be15ca244b94bae386803a02e
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-mutations-v3_tgit_/src/relflow
        packages:
          relflow: 0.2.2
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
      metrics:
        source:
          u:
            rmse: 0.06565498347536482
            baseline_rmse: 1.2967289998405087
            nrmse: 0.050631229411419086
          v:
            rmse: 0.041381249939003356
            baseline_rmse: 1.2693145185962316
            nrmse: 0.03260125787008879
        source_fit:
          steps: 512
          optimizer_covers_current_parameters: true
          validation_curve:
          - step: 0
            scores:
              u:
                rmse: 1.2393028237273997
                baseline_rmse: 1.2723746695686682
                nrmse: 0.9740077772434124
              v:
                rmse: 1.7021467221439637
                baseline_rmse: 1.3468533739051283
                nrmse: 1.2637951206289677
          - step: 32
            scores:
              u:
                rmse: 0.10355146261742668
                baseline_rmse: 1.2723746695686682
                nrmse: 0.08138441065675282
              v:
                rmse: 0.08961803685159271
                baseline_rmse: 1.3468533739051283
                nrmse: 0.06653882195932738
          - step: 128
            scores:
              u:
                rmse: 0.03978728611733003
                baseline_rmse: 1.2723746695686682
                nrmse: 0.03127010232828497
              v:
                rmse: 0.04909547654677152
                baseline_rmse: 1.3468533739051283
                nrmse: 0.036451983191326795
          - step: 512
            scores:
              u:
                rmse: 0.06498414801296525
                baseline_rmse: 1.2723746695686682
                nrmse: 0.05107312300943142
              v:
                rmse: 0.03994279807800749
                baseline_rmse: 1.3468533739051283
                nrmse: 0.029656381943192166
        source_prerequisite_met: true
        downstream_interpretable: true
        arms:
          selective_reset:
            before:
              u:
                rmse: 1.2489358540227307
                baseline_rmse: 1.2967289998405087
                nrmse: 0.9631433045581179
              v:
                rmse: 0.041381249939003356
                baseline_rmse: 1.2693145185962316
                nrmse: 0.03260125787008879
            after:
              u:
                rmse: 0.021251006458372784
                baseline_rmse: 1.2967289998405087
                nrmse: 0.016388163186746463
              v:
                rmse: 0.012912155587262835
                baseline_rmse: 1.2693145185962316
                nrmse: 0.010172542264420586
            changed_state_entries:
            - nodes.record/u.embedder.embeddings.weight
            - nodes.record/u.embedder.counter.counts
            - nodes.record/u.embedder.linear.weight
            - nodes.record/u.embedder.linear.bias
            - nodes.record/u.embedder.scalar.weight
            - nodes.record/u.embedder.normalizer.mean
            - nodes.record/u.embedder.normalizer.var
            - nodes.record/u.embedder.normalizer.count
            - nodes.record/u.decoder.context_projection.0.weight
            - nodes.record/u.decoder.context_projection.0.bias
            - nodes.record/u.decoder.context_projection.1.weight
            - nodes.record/u.decoder.context_projection.1.bias
            - nodes.record/u.decoder.context_projection.3.weight
            - nodes.record/u.decoder.context_projection.3.bias
            - nodes.record/u.decoder.pool.queries
            - nodes.record/u.decoder.pool.blocks.0.attention_norm.weight
            - nodes.record/u.decoder.pool.blocks.0.attention_norm.bias
            - nodes.record/u.decoder.pool.blocks.0.ffn_norm.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn_norm.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.q_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.q_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.k_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.k_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.v_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.v_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.out_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.out_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.ffn.0.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn.0.bias
            - nodes.record/u.decoder.pool.blocks.0.ffn.3.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn.3.bias
            - nodes.record/u.decoder.pool.norm.weight
            - nodes.record/u.decoder.pool.norm.bias
            - nodes.record/u.decoder.classification.weight
            - nodes.record/u.decoder.classification.bias
            - nodes.record/u.decoder.regression.weight
            - nodes.record/u.decoder.regression.bias
            initial_prediction_drift:
              u: 2.9901226460933685
              v: 0.0
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 1.2203848159275321
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.9562906646932678
                v:
                  rmse: 0.04133891376364024
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.03097941775026884
            - step: 32
              scores:
                u:
                  rmse: 0.04211010364844126
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.03299737794399234
                v:
                  rmse: 0.06197801814497376
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.04644638043527074
            - step: 128
              scores:
                u:
                  rmse: 0.018226766827659342
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.014282451516396592
                v:
                  rmse: 0.013220150875833902
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.009907192507420552
            - step: 256
              scores:
                u:
                  rmse: 0.02077646370410201
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.016280387977845073
                v:
                  rmse: 0.01272842878576654
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.00953869554757468
            reset_head_updated_parameters:
            - embedder.embeddings.weight
            - embedder.linear.weight
            - embedder.scalar.weight
            - decoder.context_projection.0.weight
            - decoder.context_projection.0.bias
            - decoder.context_projection.1.weight
            - decoder.context_projection.1.bias
            - decoder.context_projection.3.weight
            - decoder.context_projection.3.bias
            - decoder.pool.queries
            - decoder.pool.blocks.0.attention_norm.weight
            - decoder.pool.blocks.0.attention_norm.bias
            - decoder.pool.blocks.0.ffn_norm.weight
            - decoder.pool.blocks.0.ffn_norm.bias
            - decoder.pool.blocks.0.attention.q_proj.weight
            - decoder.pool.blocks.0.attention.q_proj.bias
            - decoder.pool.blocks.0.attention.k_proj.weight
            - decoder.pool.blocks.0.attention.k_proj.bias
            - decoder.pool.blocks.0.attention.v_proj.weight
            - decoder.pool.blocks.0.attention.v_proj.bias
            - decoder.pool.blocks.0.attention.out_proj.weight
            - decoder.pool.blocks.0.attention.out_proj.bias
            - decoder.pool.blocks.0.ffn.0.weight
            - decoder.pool.blocks.0.ffn.0.bias
            - decoder.pool.blocks.0.ffn.3.weight
            - decoder.pool.blocks.0.ffn.3.bias
            - decoder.pool.norm.weight
            - decoder.pool.norm.bias
            - decoder.classification.weight
            - decoder.classification.bias
            - decoder.regression.weight
            - decoder.regression.bias
          continuation:
            before:
              u:
                rmse: 0.06565498347536482
                baseline_rmse: 1.2967289998405087
                nrmse: 0.050631229411419086
              v:
                rmse: 0.041381249939003356
                baseline_rmse: 1.2693145185962316
                nrmse: 0.03260125787008879
            after:
              u:
                rmse: 0.019977130988254894
                baseline_rmse: 1.2967289998405087
                nrmse: 0.015405787169649158
              v:
                rmse: 0.00927443784231114
                baseline_rmse: 1.2693145185962316
                nrmse: 0.007306650720869391
            changed_state_entries: []
            initial_prediction_drift:
              u: 0.0
              v: 0.0
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 0.06498562323181704
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.050922581160294314
                v:
                  rmse: 0.04133891376364024
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.03097941775026884
            - step: 32
              scores:
                u:
                  rmse: 0.05295915753943094
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.04149867099623535
                v:
                  rmse: 0.10447499427366826
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.07829365112412925
            - step: 128
              scores:
                u:
                  rmse: 0.00932612991919312
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.007307933418249405
                v:
                  rmse: 0.01754182235084703
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.013145856850884973
            - step: 256
              scores:
                u:
                  rmse: 0.019303910259913987
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.015126498570536561
                v:
                  rmse: 0.010437616341014606
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.007821958718947485
          complete_reset:
            before:
              u:
                rmse: 1.348654753140097
                baseline_rmse: 1.2967289998405087
                nrmse: 1.0400436431251054
              v:
                rmse: 1.2085798710962348
                baseline_rmse: 1.2693145185962316
                nrmse: 0.9521516167898522
            after:
              u:
                rmse: 0.021755791973197713
                baseline_rmse: 1.2967289998405087
                nrmse: 0.016777439215035345
              v:
                rmse: 0.012716984718581223
                baseline_rmse: 1.2693145185962316
                nrmse: 0.010018781422783434
            changed_state_entries:
            - nodes.record/a.embedder.embeddings.weight
            - nodes.record/a.embedder.counter.counts
            - nodes.record/a.embedder.linear.weight
            - nodes.record/a.embedder.linear.bias
            - nodes.record/a.embedder.scalar.weight
            - nodes.record/a.embedder.normalizer.mean
            - nodes.record/a.embedder.normalizer.var
            - nodes.record/a.embedder.normalizer.count
            - nodes.record/b.embedder.embeddings.weight
            - nodes.record/b.embedder.counter.counts
            - nodes.record/b.embedder.linear.weight
            - nodes.record/b.embedder.linear.bias
            - nodes.record/b.embedder.scalar.weight
            - nodes.record/b.embedder.normalizer.mean
            - nodes.record/b.embedder.normalizer.var
            - nodes.record/b.embedder.normalizer.count
            - nodes.record/u.embedder.embeddings.weight
            - nodes.record/u.embedder.counter.counts
            - nodes.record/u.embedder.linear.weight
            - nodes.record/u.embedder.linear.bias
            - nodes.record/u.embedder.scalar.weight
            - nodes.record/u.embedder.normalizer.mean
            - nodes.record/u.embedder.normalizer.var
            - nodes.record/u.embedder.normalizer.count
            - nodes.record/u.decoder.context_projection.0.weight
            - nodes.record/u.decoder.context_projection.0.bias
            - nodes.record/u.decoder.context_projection.1.weight
            - nodes.record/u.decoder.context_projection.1.bias
            - nodes.record/u.decoder.context_projection.3.weight
            - nodes.record/u.decoder.context_projection.3.bias
            - nodes.record/u.decoder.pool.queries
            - nodes.record/u.decoder.pool.blocks.0.attention_norm.weight
            - nodes.record/u.decoder.pool.blocks.0.attention_norm.bias
            - nodes.record/u.decoder.pool.blocks.0.ffn_norm.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn_norm.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.q_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.q_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.k_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.k_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.v_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.v_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.attention.out_proj.weight
            - nodes.record/u.decoder.pool.blocks.0.attention.out_proj.bias
            - nodes.record/u.decoder.pool.blocks.0.ffn.0.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn.0.bias
            - nodes.record/u.decoder.pool.blocks.0.ffn.3.weight
            - nodes.record/u.decoder.pool.blocks.0.ffn.3.bias
            - nodes.record/u.decoder.pool.norm.weight
            - nodes.record/u.decoder.pool.norm.bias
            - nodes.record/u.decoder.classification.weight
            - nodes.record/u.decoder.classification.bias
            - nodes.record/u.decoder.regression.weight
            - nodes.record/u.decoder.regression.bias
            - nodes.record/v.embedder.embeddings.weight
            - nodes.record/v.embedder.counter.counts
            - nodes.record/v.embedder.linear.weight
            - nodes.record/v.embedder.linear.bias
            - nodes.record/v.embedder.scalar.weight
            - nodes.record/v.embedder.normalizer.mean
            - nodes.record/v.embedder.normalizer.var
            - nodes.record/v.embedder.normalizer.count
            - nodes.record/v.decoder.context_projection.0.weight
            - nodes.record/v.decoder.context_projection.0.bias
            - nodes.record/v.decoder.context_projection.1.weight
            - nodes.record/v.decoder.context_projection.1.bias
            - nodes.record/v.decoder.context_projection.3.weight
            - nodes.record/v.decoder.context_projection.3.bias
            - nodes.record/v.decoder.pool.queries
            - nodes.record/v.decoder.pool.blocks.0.attention_norm.weight
            - nodes.record/v.decoder.pool.blocks.0.attention_norm.bias
            - nodes.record/v.decoder.pool.blocks.0.ffn_norm.weight
            - nodes.record/v.decoder.pool.blocks.0.ffn_norm.bias
            - nodes.record/v.decoder.pool.blocks.0.attention.q_proj.weight
            - nodes.record/v.decoder.pool.blocks.0.attention.q_proj.bias
            - nodes.record/v.decoder.pool.blocks.0.attention.k_proj.weight
            - nodes.record/v.decoder.pool.blocks.0.attention.k_proj.bias
            - nodes.record/v.decoder.pool.blocks.0.attention.v_proj.weight
            - nodes.record/v.decoder.pool.blocks.0.attention.v_proj.bias
            - nodes.record/v.decoder.pool.blocks.0.attention.out_proj.weight
            - nodes.record/v.decoder.pool.blocks.0.attention.out_proj.bias
            - nodes.record/v.decoder.pool.blocks.0.ffn.0.weight
            - nodes.record/v.decoder.pool.blocks.0.ffn.0.bias
            - nodes.record/v.decoder.pool.blocks.0.ffn.3.weight
            - nodes.record/v.decoder.pool.blocks.0.ffn.3.bias
            - nodes.record/v.decoder.pool.norm.weight
            - nodes.record/v.decoder.pool.norm.bias
            - nodes.record/v.decoder.classification.weight
            - nodes.record/v.decoder.classification.bias
            - nodes.record/v.decoder.regression.weight
            - nodes.record/v.decoder.regression.bias
            - nodes.record.encoder.encoder.0.attention_norm.weight
            - nodes.record.encoder.encoder.0.attention_norm.bias
            - nodes.record.encoder.encoder.0.ffn_norm.weight
            - nodes.record.encoder.encoder.0.ffn_norm.bias
            - nodes.record.encoder.encoder.0.attention.q_proj.weight
            - nodes.record.encoder.encoder.0.attention.q_proj.bias
            - nodes.record.encoder.encoder.0.attention.k_proj.weight
            - nodes.record.encoder.encoder.0.attention.k_proj.bias
            - nodes.record.encoder.encoder.0.attention.v_proj.weight
            - nodes.record.encoder.encoder.0.attention.v_proj.bias
            - nodes.record.encoder.encoder.0.attention.out_proj.weight
            - nodes.record.encoder.encoder.0.attention.out_proj.bias
            - nodes.record.encoder.encoder.0.ffn.0.weight
            - nodes.record.encoder.encoder.0.ffn.0.bias
            - nodes.record.encoder.encoder.0.ffn.3.weight
            - nodes.record.encoder.encoder.0.ffn.3.bias
            - nodes.record.encoder.coordinate_encoder.attention_norm.weight
            - nodes.record.encoder.coordinate_encoder.attention_norm.bias
            - nodes.record.encoder.coordinate_encoder.ffn_norm.weight
            - nodes.record.encoder.coordinate_encoder.ffn_norm.bias
            - nodes.record.encoder.coordinate_encoder.attention.q_proj.weight
            - nodes.record.encoder.coordinate_encoder.attention.q_proj.bias
            - nodes.record.encoder.coordinate_encoder.attention.k_proj.weight
            - nodes.record.encoder.coordinate_encoder.attention.k_proj.bias
            - nodes.record.encoder.coordinate_encoder.attention.v_proj.weight
            - nodes.record.encoder.coordinate_encoder.attention.v_proj.bias
            - nodes.record.encoder.coordinate_encoder.attention.out_proj.weight
            - nodes.record.encoder.coordinate_encoder.attention.out_proj.bias
            - nodes.record.encoder.coordinate_encoder.ffn.0.weight
            - nodes.record.encoder.coordinate_encoder.ffn.0.bias
            - nodes.record.encoder.coordinate_encoder.ffn.3.weight
            - nodes.record.encoder.coordinate_encoder.ffn.3.bias
            - nodes.record.encoder.pool.queries
            - nodes.record.encoder.pool.mass_direction
            - nodes.record.encoder.pool.blocks.0.attention_norm.weight
            - nodes.record.encoder.pool.blocks.0.attention_norm.bias
            - nodes.record.encoder.pool.blocks.0.ffn_norm.weight
            - nodes.record.encoder.pool.blocks.0.ffn_norm.bias
            - nodes.record.encoder.pool.blocks.0.attention.q_proj.weight
            - nodes.record.encoder.pool.blocks.0.attention.q_proj.bias
            - nodes.record.encoder.pool.blocks.0.attention.k_proj.weight
            - nodes.record.encoder.pool.blocks.0.attention.k_proj.bias
            - nodes.record.encoder.pool.blocks.0.attention.v_proj.weight
            - nodes.record.encoder.pool.blocks.0.attention.v_proj.bias
            - nodes.record.encoder.pool.blocks.0.attention.out_proj.weight
            - nodes.record.encoder.pool.blocks.0.attention.out_proj.bias
            - nodes.record.encoder.pool.blocks.0.ffn.0.weight
            - nodes.record.encoder.pool.blocks.0.ffn.0.bias
            - nodes.record.encoder.pool.blocks.0.ffn.3.weight
            - nodes.record.encoder.pool.blocks.0.ffn.3.bias
            - nodes.record.encoder.pool.norm.weight
            - nodes.record.encoder.pool.norm.bias
            - nodes.record.encoder.pool.mass_projection.weight
            initial_prediction_drift:
              u: 3.201029494404793
              v: 2.767811194062233
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                u:
                  rmse: 1.3161852264157115
                  baseline_rmse: 1.2761651462099894
                  nrmse: 1.0313596405015255
                v:
                  rmse: 1.274914898643669
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.9554223283888703
            - step: 32
              scores:
                u:
                  rmse: 0.07635042643943989
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.05982801416116769
                v:
                  rmse: 0.08731643516861808
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.06543501208133065
            - step: 128
              scores:
                u:
                  rmse: 0.04924193097719149
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.03858586102545765
                v:
                  rmse: 0.03647201738984849
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.02733216139580757
            - step: 256
              scores:
                u:
                  rmse: 0.022333670874404462
                  baseline_rmse: 1.2761651462099894
                  nrmse: 0.01750061184536497
                v:
                  rmse: 0.012428205365517732
                  baseline_rmse: 1.3343993130174792
                  nrmse: 0.009313707856618881
        test_rows: 1024
        baseline: Source-training mean for test comparisons; phase-training mean for validation curves
        optimizer_policy: New AdamW factory and Trainer for every fit; both hidden labels rehearsed
        mutation: reset record/u; complete-reset control resets record with descendants=True
      checks:
        Source learns both targets below 0.25 nRMSE: true
        Reset changes selected learned state: true
        Reset preserves every unselected state entry: true
        Reset preserves the schema: true
        Selected target immediately loses its skill: true
        Unselected target immediately preserves predictions: true
        'selective_reset: fresh optimizer covers current parameters': true
        'selective_reset: both final targets below 0.25 nRMSE': true
        Reset head parameters actually relearn: true
        Hidden target placeholders cannot affect predictions: true
        Relearned checkpoint preserves schema and state: true
        Relearned checkpoint preserves predictions: true
        'continuation: fresh optimizer covers current parameters': true
        'continuation: both final targets below 0.25 nRMSE': true
        Complete reset loses both learned tasks: true
        'complete_reset: fresh optimizer covers current parameters': true
        'complete_reset: both final targets below 0.25 nRMSE': true
      outcome: met
      duration_seconds: 44.535
  P049:
    script: proofs/mutations/deactivate_and_restore_input.py
    page: docs/proofs/mutations/deactivate-and-restore-input.py
    historical:
      status: Provisional pass
      source_revision: null
      sources: []
      summary: New experiment; no historical run predates registration.
      insights: 'Initial hypothesis: An informative pure input can be deactivated and reactivated without erasing
        its trained state.'
      evidence: No historical measurements. See recorded runs for actual outcomes.
    runs:
    - started_at: '2026-09-15T18:20:51.362453+00:00'
      mode: smoke
      seed: 4901
      steps_override: 2
      accelerator: cpu
      threads: 1
      provenance:
        revision: 5d985953fd0416bc5982a3518d8f43cadb52110c
        source_sha256: b6c88a66cf37b1ae7164ef5c44787d1d01d26b6f935db20e0b5332dd3966e061
        script_sha256: 5b099da2356648d54a137d62b71f1065c198990ab0bce3b79f4e690666aaac9e
        code_sha256: da353a706be8810fe4bc2f522e690989a46d8d095e3be7d988daa3e86127809c
        python: 3.12.10
        platform: macOS-26.5.2-arm64-arm-64bit
        host: Granthams-MacBook-Pro.local
        relflow_path: /Users/grantham/Desktop/relflow/src/relflow
        packages:
          relflow: 0.2.2
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: null
        gpu: null
      metrics:
        source:
          rmse: 0.45946386324889843
          baseline_rmse: 0.8228176545152625
          nrmse: 0.5584030200708046
        source_steps: 2
        source_prerequisite_met: false
        downstream_interpretable: false
        controls:
          shuffled_b:
            rmse: 0.7360061023172202
            baseline_rmse: 0.8228176545152625
            nrmse: 0.8944947866375271
          zero_filled_b:
            rmse: 0.656315068211645
            baseline_rmse: 0.8228176545152625
            nrmse: 0.7976433959700253
          only_a_oracle:
            rmse: 0.5857724467092484
            baseline_rmse: 0.8228176545152625
            nrmse: 0.7119104014052033
        edits:
        - edit: cycle 1 deactivate
          inactive: true
          scores:
            rmse: 0.8676151829725777
            baseline_rmse: 0.8228176545152625
            nrmse: 1.0544440535658004
          max_source_prediction_drift: 0.8917339276522398
          learned_state_preserved: true
        - edit: cycle 1 reactivate
          inactive: false
          scores:
            rmse: 0.45946386324889843
            baseline_rmse: 0.8228176545152625
            nrmse: 0.5584030200708046
          max_source_prediction_drift: 0.0
          learned_state_preserved: true
        - edit: cycle 2 deactivate
          inactive: true
          scores:
            rmse: 0.8676151829725777
            baseline_rmse: 0.8228176545152625
            nrmse: 1.0544440535658004
          max_source_prediction_drift: 0.8917339276522398
          learned_state_preserved: true
        - edit: cycle 2 reactivate
          inactive: false
          scores:
            rmse: 0.45946386324889843
            baseline_rmse: 0.8228176545152625
            nrmse: 0.5584030200708046
          max_source_prediction_drift: 0.0
          learned_state_preserved: true
        - edit: cycle 3 deactivate
          inactive: true
          scores:
            rmse: 0.8676151829725777
            baseline_rmse: 0.8228176545152625
            nrmse: 1.0544440535658004
          max_source_prediction_drift: 0.8917339276522398
          learned_state_preserved: true
        - edit: cycle 3 reactivate
          inactive: false
          scores:
            rmse: 0.45946386324889843
            baseline_rmse: 0.8228176545152625
            nrmse: 0.5584030200708046
          max_source_prediction_drift: 0.0
          learned_state_preserved: true
        - edit: temporary override
          inactive: true
          scores:
            rmse: 0.8676151829725777
            baseline_rmse: 0.8228176545152625
            nrmse: 1.0544440535658004
          max_source_prediction_drift: 0.8917339276522398
          learned_state_preserved: true
        - edit: normal override exit
          inactive: false
          scores:
            rmse: 0.45946386324889843
            baseline_rmse: 0.8228176545152625
            nrmse: 0.5584030200708046
          max_source_prediction_drift: 0.0
          learned_state_preserved: true
        - edit: override before exception
          inactive: true
          scores:
            rmse: 0.8676151829725777
            baseline_rmse: 0.8228176545152625
            nrmse: 1.0544440535658004
          max_source_prediction_drift: 0.8917339276522398
          learned_state_preserved: true
        - edit: exceptional override exit
          inactive: false
          scores:
            rmse: 0.45946386324889843
            baseline_rmse: 0.8228176545152625
            nrmse: 0.5584030200708046
          max_source_prediction_drift: 0.0
          learned_state_preserved: true
        test_rows: 2048
        optimizer_policy: Fresh AdamW for source; no fitting inside updates or overrides
        mutation: update record/b active=False/True three times; override with normal and exceptional exits
      checks:
        Source learns both-input relationship below 0.25 nRMSE: false
        Shuffling b destroys useful signal: false
        Source hidden target values cannot affect predictions: true
        Unchanged checkpoint preserves predictions: true
        'cycle 1 deactivate: all learned state survives': true
        'cycle 1 deactivate: input is inactive': true
        'cycle 1 deactivate: b values cannot affect predictions': true
        'cycle 1 deactivate: removing b loses information': true
        Inactive checkpoint preserves schema and state: true
        Inactive checkpoint preserves predictions: true
        Loaded inactive input can restore its trained function: true
        'cycle 1 reactivate: all learned state survives': true
        'cycle 1 reactivate: original schema is restored': true
        'cycle 1 reactivate: trained predictions are restored': true
        'cycle 2 deactivate: all learned state survives': true
        'cycle 2 deactivate: input is inactive': true
        'cycle 2 deactivate: b values cannot affect predictions': true
        'cycle 2 deactivate: removing b loses information': true
        'cycle 2 reactivate: all learned state survives': true
        'cycle 2 reactivate: original schema is restored': true
        'cycle 2 reactivate: trained predictions are restored': true
        'cycle 3 deactivate: all learned state survives': true
        'cycle 3 deactivate: input is inactive': true
        'cycle 3 deactivate: b values cannot affect predictions': true
        'cycle 3 deactivate: removing b loses information': true
        'cycle 3 reactivate: all learned state survives': true
        'cycle 3 reactivate: original schema is restored': true
        'cycle 3 reactivate: trained predictions are restored': true
        'temporary override: all learned state survives': true
        'temporary override: input is inactive': true
        'temporary override: b values cannot affect predictions': true
        'temporary override: removing b loses information': true
        'normal override exit: all learned state survives': true
        'normal override exit: original schema is restored': true
        'normal override exit: trained predictions are restored': true
        'override before exception: all learned state survives': true
        'override before exception: input is inactive': true
        'override before exception: b values cannot affect predictions': true
        'override before exception: removing b loses information': true
        'exceptional override exit: all learned state survives': true
        'exceptional override exit: original schema is restored': true
        'exceptional override exit: trained predictions are restored': true
      outcome: not_met
      duration_seconds: 1.079
    - started_at: '2026-09-15T18:21:55.145131+00:00'
      mode: full
      seed: 4901
      steps_override: null
      accelerator: cpu
      threads: 1
      provenance:
        revision: 5d985953fd0416bc5982a3518d8f43cadb52110c
        source_sha256: b6c88a66cf37b1ae7164ef5c44787d1d01d26b6f935db20e0b5332dd3966e061
        script_sha256: 5b099da2356648d54a137d62b71f1065c198990ab0bce3b79f4e690666aaac9e
        code_sha256: da353a706be8810fe4bc2f522e690989a46d8d095e3be7d988daa3e86127809c
        python: 3.12.10
        platform: macOS-26.5.2-arm64-arm-64bit
        host: Granthams-MacBook-Pro.local
        relflow_path: /Users/grantham/Desktop/relflow/src/relflow
        packages:
          relflow: 0.2.2
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: null
        gpu: null
      metrics:
        source:
          rmse: 0.02268946924387725
          baseline_rmse: 0.8228176545152625
          nrmse: 0.027575331082612765
        source_steps: 512
        source_prerequisite_met: true
        downstream_interpretable: true
        controls:
          shuffled_b:
            rmse: 0.8323123094901392
            baseline_rmse: 0.8228176545152625
            nrmse: 1.0115391969566698
          zero_filled_b:
            rmse: 0.5855899480602854
            baseline_rmse: 0.8228176545152625
            nrmse: 0.711688604208751
          only_a_oracle:
            rmse: 0.5857724467092484
            baseline_rmse: 0.8228176545152625
            nrmse: 0.7119104014052033
        edits:
        - edit: cycle 1 deactivate
          inactive: true
          scores:
            rmse: 0.6912687578436512
            baseline_rmse: 0.8228176545152625
            nrmse: 0.8401238768398701
          max_source_prediction_drift: 1.6222696229815483
          learned_state_preserved: true
        - edit: cycle 1 reactivate
          inactive: false
          scores:
            rmse: 0.02268946924387725
            baseline_rmse: 0.8228176545152625
            nrmse: 0.027575331082612765
          max_source_prediction_drift: 0.0
          learned_state_preserved: true
        - edit: cycle 2 deactivate
          inactive: true
          scores:
            rmse: 0.6912687578436512
            baseline_rmse: 0.8228176545152625
            nrmse: 0.8401238768398701
          max_source_prediction_drift: 1.6222696229815483
          learned_state_preserved: true
        - edit: cycle 2 reactivate
          inactive: false
          scores:
            rmse: 0.02268946924387725
            baseline_rmse: 0.8228176545152625
            nrmse: 0.027575331082612765
          max_source_prediction_drift: 0.0
          learned_state_preserved: true
        - edit: cycle 3 deactivate
          inactive: true
          scores:
            rmse: 0.6912687578436512
            baseline_rmse: 0.8228176545152625
            nrmse: 0.8401238768398701
          max_source_prediction_drift: 1.6222696229815483
          learned_state_preserved: true
        - edit: cycle 3 reactivate
          inactive: false
          scores:
            rmse: 0.02268946924387725
            baseline_rmse: 0.8228176545152625
            nrmse: 0.027575331082612765
          max_source_prediction_drift: 0.0
          learned_state_preserved: true
        - edit: temporary override
          inactive: true
          scores:
            rmse: 0.6912687578436512
            baseline_rmse: 0.8228176545152625
            nrmse: 0.8401238768398701
          max_source_prediction_drift: 1.6222696229815483
          learned_state_preserved: true
        - edit: normal override exit
          inactive: false
          scores:
            rmse: 0.02268946924387725
            baseline_rmse: 0.8228176545152625
            nrmse: 0.027575331082612765
          max_source_prediction_drift: 0.0
          learned_state_preserved: true
        - edit: override before exception
          inactive: true
          scores:
            rmse: 0.6912687578436512
            baseline_rmse: 0.8228176545152625
            nrmse: 0.8401238768398701
          max_source_prediction_drift: 1.6222696229815483
          learned_state_preserved: true
        - edit: exceptional override exit
          inactive: false
          scores:
            rmse: 0.02268946924387725
            baseline_rmse: 0.8228176545152625
            nrmse: 0.027575331082612765
          max_source_prediction_drift: 0.0
          learned_state_preserved: true
        test_rows: 2048
        optimizer_policy: Fresh AdamW for source; no fitting inside updates or overrides
        mutation: update record/b active=False/True three times; override with normal and exceptional exits
      checks:
        Source learns both-input relationship below 0.25 nRMSE: true
        Shuffling b destroys useful signal: true
        Source hidden target values cannot affect predictions: true
        Unchanged checkpoint preserves predictions: true
        'cycle 1 deactivate: all learned state survives': true
        'cycle 1 deactivate: input is inactive': true
        'cycle 1 deactivate: b values cannot affect predictions': true
        'cycle 1 deactivate: removing b loses information': true
        Inactive checkpoint preserves schema and state: true
        Inactive checkpoint preserves predictions: true
        Loaded inactive input can restore its trained function: true
        'cycle 1 reactivate: all learned state survives': true
        'cycle 1 reactivate: original schema is restored': true
        'cycle 1 reactivate: trained predictions are restored': true
        'cycle 2 deactivate: all learned state survives': true
        'cycle 2 deactivate: input is inactive': true
        'cycle 2 deactivate: b values cannot affect predictions': true
        'cycle 2 deactivate: removing b loses information': true
        'cycle 2 reactivate: all learned state survives': true
        'cycle 2 reactivate: original schema is restored': true
        'cycle 2 reactivate: trained predictions are restored': true
        'cycle 3 deactivate: all learned state survives': true
        'cycle 3 deactivate: input is inactive': true
        'cycle 3 deactivate: b values cannot affect predictions': true
        'cycle 3 deactivate: removing b loses information': true
        'cycle 3 reactivate: all learned state survives': true
        'cycle 3 reactivate: original schema is restored': true
        'cycle 3 reactivate: trained predictions are restored': true
        'temporary override: all learned state survives': true
        'temporary override: input is inactive': true
        'temporary override: b values cannot affect predictions': true
        'temporary override: removing b loses information': true
        'normal override exit: all learned state survives': true
        'normal override exit: original schema is restored': true
        'normal override exit: trained predictions are restored': true
        'override before exception: all learned state survives': true
        'override before exception: input is inactive': true
        'override before exception: b values cannot affect predictions': true
        'override before exception: removing b loses information': true
        'exceptional override exit: all learned state survives': true
        'exceptional override exit: original schema is restored': true
        'exceptional override exit: trained predictions are restored': true
      outcome: met
      duration_seconds: 7.187
    - started_at: '2026-09-15T18:23:15.633080+00:00'
      mode: full
      seed: 4901
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: b6c88a66cf37b1ae7164ef5c44787d1d01d26b6f935db20e0b5332dd3966e061
        script_sha256: 5b099da2356648d54a137d62b71f1065c198990ab0bce3b79f4e690666aaac9e
        code_sha256: da353a706be8810fe4bc2f522e690989a46d8d095e3be7d988daa3e86127809c
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-removal-6b17okdx/src/relflow
        packages:
          relflow: 0.2.2
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
      metrics:
        source:
          rmse: 0.01799741589811066
          baseline_rmse: 0.8228176545152625
          nrmse: 0.021872909264098475
        source_steps: 512
        source_prerequisite_met: true
        downstream_interpretable: true
        controls:
          shuffled_b:
            rmse: 0.8320161740170012
            baseline_rmse: 0.8228176545152625
            nrmse: 1.0111792928254046
          zero_filled_b:
            rmse: 0.5857425690628448
            baseline_rmse: 0.8228176545152625
            nrmse: 0.7118740900229188
          only_a_oracle:
            rmse: 0.5857724467092484
            baseline_rmse: 0.8228176545152625
            nrmse: 0.7119104014052033
        edits:
        - edit: cycle 1 deactivate
          inactive: true
          scores:
            rmse: 0.6899821178281003
            baseline_rmse: 0.8228176545152625
            nrmse: 0.8385601767800933
          max_source_prediction_drift: 1.674555629491806
          learned_state_preserved: true
        - edit: cycle 1 reactivate
          inactive: false
          scores:
            rmse: 0.01799741589811066
            baseline_rmse: 0.8228176545152625
            nrmse: 0.021872909264098475
          max_source_prediction_drift: 0.0
          learned_state_preserved: true
        - edit: cycle 2 deactivate
          inactive: true
          scores:
            rmse: 0.6899821178281003
            baseline_rmse: 0.8228176545152625
            nrmse: 0.8385601767800933
          max_source_prediction_drift: 1.674555629491806
          learned_state_preserved: true
        - edit: cycle 2 reactivate
          inactive: false
          scores:
            rmse: 0.01799741589811066
            baseline_rmse: 0.8228176545152625
            nrmse: 0.021872909264098475
          max_source_prediction_drift: 0.0
          learned_state_preserved: true
        - edit: cycle 3 deactivate
          inactive: true
          scores:
            rmse: 0.6899821178281003
            baseline_rmse: 0.8228176545152625
            nrmse: 0.8385601767800933
          max_source_prediction_drift: 1.674555629491806
          learned_state_preserved: true
        - edit: cycle 3 reactivate
          inactive: false
          scores:
            rmse: 0.01799741589811066
            baseline_rmse: 0.8228176545152625
            nrmse: 0.021872909264098475
          max_source_prediction_drift: 0.0
          learned_state_preserved: true
        - edit: temporary override
          inactive: true
          scores:
            rmse: 0.6899821178281003
            baseline_rmse: 0.8228176545152625
            nrmse: 0.8385601767800933
          max_source_prediction_drift: 1.674555629491806
          learned_state_preserved: true
        - edit: normal override exit
          inactive: false
          scores:
            rmse: 0.01799741589811066
            baseline_rmse: 0.8228176545152625
            nrmse: 0.021872909264098475
          max_source_prediction_drift: 0.0
          learned_state_preserved: true
        - edit: override before exception
          inactive: true
          scores:
            rmse: 0.6899821178281003
            baseline_rmse: 0.8228176545152625
            nrmse: 0.8385601767800933
          max_source_prediction_drift: 1.674555629491806
          learned_state_preserved: true
        - edit: exceptional override exit
          inactive: false
          scores:
            rmse: 0.01799741589811066
            baseline_rmse: 0.8228176545152625
            nrmse: 0.021872909264098475
          max_source_prediction_drift: 0.0
          learned_state_preserved: true
        test_rows: 2048
        optimizer_policy: Fresh AdamW for source; no fitting inside updates or overrides
        mutation: update record/b active=False/True three times; override with normal and exceptional exits
      checks:
        Source learns both-input relationship below 0.25 nRMSE: true
        Shuffling b destroys useful signal: true
        Source hidden target values cannot affect predictions: true
        Unchanged checkpoint preserves predictions: true
        'cycle 1 deactivate: all learned state survives': true
        'cycle 1 deactivate: input is inactive': true
        'cycle 1 deactivate: b values cannot affect predictions': true
        'cycle 1 deactivate: removing b loses information': true
        Inactive checkpoint preserves schema and state: true
        Inactive checkpoint preserves predictions: true
        Loaded inactive input can restore its trained function: true
        'cycle 1 reactivate: all learned state survives': true
        'cycle 1 reactivate: original schema is restored': true
        'cycle 1 reactivate: trained predictions are restored': true
        'cycle 2 deactivate: all learned state survives': true
        'cycle 2 deactivate: input is inactive': true
        'cycle 2 deactivate: b values cannot affect predictions': true
        'cycle 2 deactivate: removing b loses information': true
        'cycle 2 reactivate: all learned state survives': true
        'cycle 2 reactivate: original schema is restored': true
        'cycle 2 reactivate: trained predictions are restored': true
        'cycle 3 deactivate: all learned state survives': true
        'cycle 3 deactivate: input is inactive': true
        'cycle 3 deactivate: b values cannot affect predictions': true
        'cycle 3 deactivate: removing b loses information': true
        'cycle 3 reactivate: all learned state survives': true
        'cycle 3 reactivate: original schema is restored': true
        'cycle 3 reactivate: trained predictions are restored': true
        'temporary override: all learned state survives': true
        'temporary override: input is inactive': true
        'temporary override: b values cannot affect predictions': true
        'temporary override: removing b loses information': true
        'normal override exit: all learned state survives': true
        'normal override exit: original schema is restored': true
        'normal override exit: trained predictions are restored': true
        'override before exception: all learned state survives': true
        'override before exception: input is inactive': true
        'override before exception: b values cannot affect predictions': true
        'override before exception: removing b loses information': true
        'exceptional override exit: all learned state survives': true
        'exceptional override exit: original schema is restored': true
        'exceptional override exit: trained predictions are restored': true
      outcome: met
      duration_seconds: 11.958
    - started_at: '2026-09-15T18:24:06.897983+00:00'
      mode: full
      seed: 7201
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: b6c88a66cf37b1ae7164ef5c44787d1d01d26b6f935db20e0b5332dd3966e061
        script_sha256: 5b099da2356648d54a137d62b71f1065c198990ab0bce3b79f4e690666aaac9e
        code_sha256: da353a706be8810fe4bc2f522e690989a46d8d095e3be7d988daa3e86127809c
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-removal-6b17okdx/src/relflow
        packages:
          relflow: 0.2.2
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
      metrics:
        source:
          rmse: 0.012387407114893877
          baseline_rmse: 0.8120016401971133
          nrmse: 0.015255396666300866
        source_steps: 512
        source_prerequisite_met: true
        downstream_interpretable: true
        controls:
          shuffled_b:
            rmse: 0.8415880130521701
            baseline_rmse: 0.8120016401971133
            nrmse: 1.0364363461727426
          zero_filled_b:
            rmse: 0.5809422472772158
            baseline_rmse: 0.8120016401971133
            nrmse: 0.7154446721760218
          only_a_oracle:
            rmse: 0.5809035857842813
            baseline_rmse: 0.8120016401971133
            nrmse: 0.7153970595961691
        edits:
        - edit: cycle 1 deactivate
          inactive: true
          scores:
            rmse: 0.6978588819705238
            baseline_rmse: 0.8120016401971133
            nrmse: 0.8594303846493693
          max_source_prediction_drift: 1.6460874378681183
          learned_state_preserved: true
        - edit: cycle 1 reactivate
          inactive: false
          scores:
            rmse: 0.012387407114893877
            baseline_rmse: 0.8120016401971133
            nrmse: 0.015255396666300866
          max_source_prediction_drift: 0.0
          learned_state_preserved: true
        - edit: cycle 2 deactivate
          inactive: true
          scores:
            rmse: 0.6978588819705238
            baseline_rmse: 0.8120016401971133
            nrmse: 0.8594303846493693
          max_source_prediction_drift: 1.6460874378681183
          learned_state_preserved: true
        - edit: cycle 2 reactivate
          inactive: false
          scores:
            rmse: 0.012387407114893877
            baseline_rmse: 0.8120016401971133
            nrmse: 0.015255396666300866
          max_source_prediction_drift: 0.0
          learned_state_preserved: true
        - edit: cycle 3 deactivate
          inactive: true
          scores:
            rmse: 0.6978588819705238
            baseline_rmse: 0.8120016401971133
            nrmse: 0.8594303846493693
          max_source_prediction_drift: 1.6460874378681183
          learned_state_preserved: true
        - edit: cycle 3 reactivate
          inactive: false
          scores:
            rmse: 0.012387407114893877
            baseline_rmse: 0.8120016401971133
            nrmse: 0.015255396666300866
          max_source_prediction_drift: 0.0
          learned_state_preserved: true
        - edit: temporary override
          inactive: true
          scores:
            rmse: 0.6978588819705238
            baseline_rmse: 0.8120016401971133
            nrmse: 0.8594303846493693
          max_source_prediction_drift: 1.6460874378681183
          learned_state_preserved: true
        - edit: normal override exit
          inactive: false
          scores:
            rmse: 0.012387407114893877
            baseline_rmse: 0.8120016401971133
            nrmse: 0.015255396666300866
          max_source_prediction_drift: 0.0
          learned_state_preserved: true
        - edit: override before exception
          inactive: true
          scores:
            rmse: 0.6978588819705238
            baseline_rmse: 0.8120016401971133
            nrmse: 0.8594303846493693
          max_source_prediction_drift: 1.6460874378681183
          learned_state_preserved: true
        - edit: exceptional override exit
          inactive: false
          scores:
            rmse: 0.012387407114893877
            baseline_rmse: 0.8120016401971133
            nrmse: 0.015255396666300866
          max_source_prediction_drift: 0.0
          learned_state_preserved: true
        test_rows: 2048
        optimizer_policy: Fresh AdamW for source; no fitting inside updates or overrides
        mutation: update record/b active=False/True three times; override with normal and exceptional exits
      checks:
        Source learns both-input relationship below 0.25 nRMSE: true
        Shuffling b destroys useful signal: true
        Source hidden target values cannot affect predictions: true
        Unchanged checkpoint preserves predictions: true
        'cycle 1 deactivate: all learned state survives': true
        'cycle 1 deactivate: input is inactive': true
        'cycle 1 deactivate: b values cannot affect predictions': true
        'cycle 1 deactivate: removing b loses information': true
        Inactive checkpoint preserves schema and state: true
        Inactive checkpoint preserves predictions: true
        Loaded inactive input can restore its trained function: true
        'cycle 1 reactivate: all learned state survives': true
        'cycle 1 reactivate: original schema is restored': true
        'cycle 1 reactivate: trained predictions are restored': true
        'cycle 2 deactivate: all learned state survives': true
        'cycle 2 deactivate: input is inactive': true
        'cycle 2 deactivate: b values cannot affect predictions': true
        'cycle 2 deactivate: removing b loses information': true
        'cycle 2 reactivate: all learned state survives': true
        'cycle 2 reactivate: original schema is restored': true
        'cycle 2 reactivate: trained predictions are restored': true
        'cycle 3 deactivate: all learned state survives': true
        'cycle 3 deactivate: input is inactive': true
        'cycle 3 deactivate: b values cannot affect predictions': true
        'cycle 3 deactivate: removing b loses information': true
        'cycle 3 reactivate: all learned state survives': true
        'cycle 3 reactivate: original schema is restored': true
        'cycle 3 reactivate: trained predictions are restored': true
        'temporary override: all learned state survives': true
        'temporary override: input is inactive': true
        'temporary override: b values cannot affect predictions': true
        'temporary override: removing b loses information': true
        'normal override exit: all learned state survives': true
        'normal override exit: original schema is restored': true
        'normal override exit: trained predictions are restored': true
        'override before exception: all learned state survives': true
        'override before exception: input is inactive': true
        'override before exception: b values cannot affect predictions': true
        'override before exception: removing b loses information': true
        'exceptional override exit: all learned state survives': true
        'exceptional override exit: original schema is restored': true
        'exceptional override exit: trained predictions are restored': true
      outcome: met
      duration_seconds: 12.022
    - started_at: '2026-09-15T18:24:58.506617+00:00'
      mode: full
      seed: 7202
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: b6c88a66cf37b1ae7164ef5c44787d1d01d26b6f935db20e0b5332dd3966e061
        script_sha256: 5b099da2356648d54a137d62b71f1065c198990ab0bce3b79f4e690666aaac9e
        code_sha256: da353a706be8810fe4bc2f522e690989a46d8d095e3be7d988daa3e86127809c
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-removal-6b17okdx/src/relflow
        packages:
          relflow: 0.2.2
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
      metrics:
        source:
          rmse: 0.02008381101831335
          baseline_rmse: 0.8352833232272557
          nrmse: 0.02404430982856956
        source_steps: 512
        source_prerequisite_met: true
        downstream_interpretable: true
        controls:
          shuffled_b:
            rmse: 0.82572553566775
            baseline_rmse: 0.8352833232272557
            nrmse: 0.9885574304026834
          zero_filled_b:
            rmse: 0.5776697674270659
            baseline_rmse: 0.8352833232272557
            nrmse: 0.6915854194180998
          only_a_oracle:
            rmse: 0.5780872291911047
            baseline_rmse: 0.8352833232272557
            nrmse: 0.6920852040449805
        edits:
        - edit: cycle 1 deactivate
          inactive: true
          scores:
            rmse: 0.8051448159247964
            baseline_rmse: 0.8352833232272557
            nrmse: 0.963918222159621
          max_source_prediction_drift: 1.9680075012147427
          learned_state_preserved: true
        - edit: cycle 1 reactivate
          inactive: false
          scores:
            rmse: 0.02008381101831335
            baseline_rmse: 0.8352833232272557
            nrmse: 0.02404430982856956
          max_source_prediction_drift: 0.0
          learned_state_preserved: true
        - edit: cycle 2 deactivate
          inactive: true
          scores:
            rmse: 0.8051448159247964
            baseline_rmse: 0.8352833232272557
            nrmse: 0.963918222159621
          max_source_prediction_drift: 1.9680075012147427
          learned_state_preserved: true
        - edit: cycle 2 reactivate
          inactive: false
          scores:
            rmse: 0.02008381101831335
            baseline_rmse: 0.8352833232272557
            nrmse: 0.02404430982856956
          max_source_prediction_drift: 0.0
          learned_state_preserved: true
        - edit: cycle 3 deactivate
          inactive: true
          scores:
            rmse: 0.8051448159247964
            baseline_rmse: 0.8352833232272557
            nrmse: 0.963918222159621
          max_source_prediction_drift: 1.9680075012147427
          learned_state_preserved: true
        - edit: cycle 3 reactivate
          inactive: false
          scores:
            rmse: 0.02008381101831335
            baseline_rmse: 0.8352833232272557
            nrmse: 0.02404430982856956
          max_source_prediction_drift: 0.0
          learned_state_preserved: true
        - edit: temporary override
          inactive: true
          scores:
            rmse: 0.8051448159247964
            baseline_rmse: 0.8352833232272557
            nrmse: 0.963918222159621
          max_source_prediction_drift: 1.9680075012147427
          learned_state_preserved: true
        - edit: normal override exit
          inactive: false
          scores:
            rmse: 0.02008381101831335
            baseline_rmse: 0.8352833232272557
            nrmse: 0.02404430982856956
          max_source_prediction_drift: 0.0
          learned_state_preserved: true
        - edit: override before exception
          inactive: true
          scores:
            rmse: 0.8051448159247964
            baseline_rmse: 0.8352833232272557
            nrmse: 0.963918222159621
          max_source_prediction_drift: 1.9680075012147427
          learned_state_preserved: true
        - edit: exceptional override exit
          inactive: false
          scores:
            rmse: 0.02008381101831335
            baseline_rmse: 0.8352833232272557
            nrmse: 0.02404430982856956
          max_source_prediction_drift: 0.0
          learned_state_preserved: true
        test_rows: 2048
        optimizer_policy: Fresh AdamW for source; no fitting inside updates or overrides
        mutation: update record/b active=False/True three times; override with normal and exceptional exits
      checks:
        Source learns both-input relationship below 0.25 nRMSE: true
        Shuffling b destroys useful signal: true
        Source hidden target values cannot affect predictions: true
        Unchanged checkpoint preserves predictions: true
        'cycle 1 deactivate: all learned state survives': true
        'cycle 1 deactivate: input is inactive': true
        'cycle 1 deactivate: b values cannot affect predictions': true
        'cycle 1 deactivate: removing b loses information': true
        Inactive checkpoint preserves schema and state: true
        Inactive checkpoint preserves predictions: true
        Loaded inactive input can restore its trained function: true
        'cycle 1 reactivate: all learned state survives': true
        'cycle 1 reactivate: original schema is restored': true
        'cycle 1 reactivate: trained predictions are restored': true
        'cycle 2 deactivate: all learned state survives': true
        'cycle 2 deactivate: input is inactive': true
        'cycle 2 deactivate: b values cannot affect predictions': true
        'cycle 2 deactivate: removing b loses information': true
        'cycle 2 reactivate: all learned state survives': true
        'cycle 2 reactivate: original schema is restored': true
        'cycle 2 reactivate: trained predictions are restored': true
        'cycle 3 deactivate: all learned state survives': true
        'cycle 3 deactivate: input is inactive': true
        'cycle 3 deactivate: b values cannot affect predictions': true
        'cycle 3 deactivate: removing b loses information': true
        'cycle 3 reactivate: all learned state survives': true
        'cycle 3 reactivate: original schema is restored': true
        'cycle 3 reactivate: trained predictions are restored': true
        'temporary override: all learned state survives': true
        'temporary override: input is inactive': true
        'temporary override: b values cannot affect predictions': true
        'temporary override: removing b loses information': true
        'normal override exit: all learned state survives': true
        'normal override exit: original schema is restored': true
        'normal override exit: trained predictions are restored': true
        'override before exception: all learned state survives': true
        'override before exception: input is inactive': true
        'override before exception: b values cannot affect predictions': true
        'override before exception: removing b loses information': true
        'exceptional override exit: all learned state survives': true
        'exceptional override exit: original schema is restored': true
        'exceptional override exit: trained predictions are restored': true
      outcome: met
      duration_seconds: 12.029
  P050:
    script: proofs/mutations/delete_input_and_adapt.py
    page: docs/proofs/mutations/delete-input-and-adapt.py
    historical:
      status: Provisional pass
      source_revision: null
      sources: []
      summary: New experiment; no historical run predates registration.
      insights: 'Initial hypothesis: Deleting an informative input permits adaptation toward the conditional mean
        from remaining inputs.'
      evidence: No historical measurements. See recorded runs for actual outcomes.
    runs:
    - started_at: '2026-09-15T18:20:56.160212+00:00'
      mode: smoke
      seed: 5001
      steps_override: 2
      accelerator: cpu
      threads: 1
      provenance:
        revision: 5d985953fd0416bc5982a3518d8f43cadb52110c
        source_sha256: de366e85036478c26153e1ff1f82d3a7faec6fd712790249662f6d5fea48ec37
        script_sha256: fe688bd87233e2bfcd5b1c5ca6916536a0049dfd012699881fa7eeb6edb1f487
        code_sha256: 71ad78be90abfc30fba52b2e0182b4539ca9101f868befec33b05fdf349d023a
        python: 3.12.10
        platform: macOS-26.5.2-arm64-arm-64bit
        host: Granthams-MacBook-Pro.local
        relflow_path: /Users/grantham/Desktop/relflow/src/relflow
        packages:
          relflow: 0.2.2
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: null
        gpu: null
      metrics:
        source:
          rmse: 0.4408785755960084
          baseline_rmse: 0.8103532807277047
          nrmse: 0.5440572477229874
          only_a_distance_nrmse: 0.8002568809338788
        source_fit:
          steps: 2
          optimizer_covers_current_parameters: true
          validation_curve:
          - step: 0
            scores:
              rmse: 1.1152491751251399
              baseline_rmse: 0.8227835642459033
              nrmse: 1.3554587422359208
              only_a_distance_nrmse: 0.9971723998482822
          - step: 2
            scores:
              rmse: 0.4400419785163047
              baseline_rmse: 0.8227835642459033
              nrmse: 0.5348210606511222
              only_a_distance_nrmse: 0.7906639334091937
        source_prerequisite_met: false
        downstream_interpretable: false
        only_a_oracle:
          rmse: 0.5791384491604891
          baseline_rmse: 0.8103532807277047
          nrmse: 0.7146740353052158
          only_a_distance_nrmse: 0.0
        arms:
          deleted:
            before:
              rmse: 0.7271518158927684
              baseline_rmse: 0.8103532807277047
              nrmse: 0.8973269229437554
              only_a_distance_nrmse: 0.5529407654147872
            after:
              rmse: 0.724493864955975
              baseline_rmse: 0.8103532807277047
              nrmse: 0.8940469325987954
              only_a_distance_nrmse: 0.5337538704664715
            steps: 2
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                rmse: 0.7479704676843564
                baseline_rmse: 0.8185735883959189
                nrmse: 0.9137485966901073
                only_a_distance_nrmse: 0.5496018825796432
            - step: 2
              scores:
                rmse: 0.7124954308348078
                baseline_rmse: 0.8185735883959189
                nrmse: 0.8704109696857159
                only_a_distance_nrmse: 0.5287892518881139
            updated_parameter_count: 77
            pooling_capacity: 2
            removed_state_entries:
            - nodes.record/b.embedder.weights
            - nodes.record/b.embedder.max_fourier_input
            - nodes.record/b.embedder.embeddings.weight
            - nodes.record/b.embedder.counter.counts
            - nodes.record/b.embedder.linear.weight
            - nodes.record/b.embedder.linear.bias
            - nodes.record/b.embedder.scalar.weight
            - nodes.record/b.embedder.normalizer.mean
            - nodes.record/b.embedder.normalizer.var
            - nodes.record/b.embedder.normalizer.count
            changed_unselected_state_entries: []
          inactive:
            before:
              rmse: 0.7271518158927684
              baseline_rmse: 0.8103532807277047
              nrmse: 0.8973269229437554
              only_a_distance_nrmse: 0.5529407654147872
            after:
              rmse: 0.724493864955975
              baseline_rmse: 0.8103532807277047
              nrmse: 0.8940469325987954
              only_a_distance_nrmse: 0.5337538704664715
            steps: 2
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                rmse: 0.7479704676843564
                baseline_rmse: 0.8185735883959189
                nrmse: 0.9137485966901073
                only_a_distance_nrmse: 0.5496018825796432
            - step: 2
              scores:
                rmse: 0.7124954308348078
                baseline_rmse: 0.8185735883959189
                nrmse: 0.8704109696857159
                only_a_distance_nrmse: 0.5287892518881139
            updated_parameter_count: 77
            pooling_capacity: 2
          scratch_restricted:
            before:
              rmse: 1.0277799777901702
              baseline_rmse: 0.8103532807277047
              nrmse: 1.268310997479043
              only_a_distance_nrmse: 1.0606146291576006
            after:
              rmse: 0.7628028335183838
              baseline_rmse: 0.8103532807277047
              nrmse: 0.9413213368290184
              only_a_distance_nrmse: 0.6038361586464066
            steps: 2
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                rmse: 1.050771858874917
                baseline_rmse: 0.8185735883959189
                nrmse: 1.283662060162502
                only_a_distance_nrmse: 1.0486131884111216
            - step: 2
              scores:
                rmse: 0.7511156090856626
                baseline_rmse: 0.8185735883959189
                nrmse: 0.9175908186306776
                only_a_distance_nrmse: 0.6028711571904821
            updated_parameter_count: 77
            pooling_capacity: 2
          continuation:
            before:
              rmse: 0.4408785755960084
              baseline_rmse: 0.8103532807277047
              nrmse: 0.5440572477229874
              only_a_distance_nrmse: 0.8002568809338788
            after:
              rmse: 0.5387691939859782
              baseline_rmse: 0.8103532807277047
              nrmse: 0.6648571762455981
              only_a_distance_nrmse: 0.7777005031350472
            steps: 2
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                rmse: 0.44655369235189984
                baseline_rmse: 0.8185735883959189
                nrmse: 0.5455266315481407
                only_a_distance_nrmse: 0.8152021444503296
            - step: 2
              scores:
                rmse: 0.5509526345815351
                baseline_rmse: 0.8185735883959189
                nrmse: 0.6730642698369792
                only_a_distance_nrmse: 0.7482000327420087
            updated_parameter_count: 89
            pooling_capacity: 3
        readdition:
          scores:
            rmse: 0.4757161400717045
            baseline_rmse: 0.8103532807277047
            nrmse: 0.5870478362776628
            only_a_distance_nrmse: 0.5407052956250064
          source_normalization:
            mean: -0.03621933236718178
            variance: 0.31412187218666077
            std: 0.5604746846974097
            count: 256
            alpha: null
          fresh_normalization:
            mean: 0.0
            variance: 1.0
            std: 1.0000049999875
            count: 0
            alpha: null
          source_field_order:
          - record/a
          - record/b
          - record/y
          readded_field_order:
          - record/a
          - record/y
          - record/b
        test_rows: 2048
        optimizer_policy: New AdamW factory and Trainer per phase; matched adaptation data and updates
        mutation: delete record/b; inactive control updates active=False; separate source fork deletes and re-adds
          b
      checks:
        Source learns both-input relationship below 0.25 nRMSE: false
        Source optimizer covers current parameters: true
        Deletion removes b from schema and runtime: true
        Deletion removes the selected state entries: true
        Deletion preserves all unselected state entries: true
        Deletion immediately loses the selected information: true
        'deleted before: removed input values cannot affect predictions': true
        'deleted: optimizer covers current parameters': true
        'deleted: parameters actually learn': true
        'deleted: hidden target values cannot affect predictions': true
        'deleted: adapts near the remaining-information limit': false
        'deleted after: removed input values cannot affect predictions': true
        Deleted checkpoint preserves schema and learned state: true
        Deleted checkpoint preserves adapted predictions: true
        Inactive control preserves all original state: true
        Deletion and deactivation initially give the same predictions: true
        'inactive before: removed input values cannot affect predictions': true
        'inactive: optimizer covers current parameters': true
        'inactive: parameters actually learn': true
        'inactive: hidden target values cannot affect predictions': true
        'inactive: adapts near the remaining-information limit': false
        'inactive after: removed input values cannot affect predictions': true
        Scratch schema and field order match deletion: true
        'scratch_restricted before: removed input values cannot affect predictions': true
        'scratch_restricted: optimizer covers current parameters': true
        'scratch_restricted: parameters actually learn': true
        'scratch_restricted: hidden target values cannot affect predictions': true
        'scratch_restricted: adapts near the remaining-information limit': false
        'scratch_restricted after: removed input values cannot affect predictions': true
        Unchanged checkpoint restores source predictions: true
        'continuation: optimizer covers current parameters': true
        'continuation: parameters actually learn': true
        'continuation: hidden target values cannot affect predictions': true
        Continuation retains full-information accuracy below 0.25 nRMSE: false
        Re-adding the same name does not restore its learned state: true
        Re-added input has fresh normalization: true
      outcome: not_met
      duration_seconds: 1.068
    - started_at: '2026-09-15T18:22:05.979454+00:00'
      mode: full
      seed: 5001
      steps_override: null
      accelerator: cpu
      threads: 1
      provenance:
        revision: 5d985953fd0416bc5982a3518d8f43cadb52110c
        source_sha256: de366e85036478c26153e1ff1f82d3a7faec6fd712790249662f6d5fea48ec37
        script_sha256: fe688bd87233e2bfcd5b1c5ca6916536a0049dfd012699881fa7eeb6edb1f487
        code_sha256: 71ad78be90abfc30fba52b2e0182b4539ca9101f868befec33b05fdf349d023a
        python: 3.12.10
        platform: macOS-26.5.2-arm64-arm-64bit
        host: Granthams-MacBook-Pro.local
        relflow_path: /Users/grantham/Desktop/relflow/src/relflow
        packages:
          relflow: 0.2.2
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: null
        gpu: null
      metrics:
        source:
          rmse: 0.030233970450265445
          baseline_rmse: 0.8103532807277047
          nrmse: 0.03730961689093806
          only_a_distance_nrmse: 0.728618107549543
        source_fit:
          steps: 512
          optimizer_covers_current_parameters: true
          validation_curve:
          - step: 0
            scores:
              rmse: 1.1152491751251399
              baseline_rmse: 0.8227835642459033
              nrmse: 1.3554587422359208
              only_a_distance_nrmse: 0.9971723998482822
          - step: 32
            scores:
              rmse: 0.05782952452186843
              baseline_rmse: 0.8227835642459033
              nrmse: 0.07028522084646925
              only_a_distance_nrmse: 0.6607188312497041
          - step: 128
            scores:
              rmse: 0.052864771156084595
              baseline_rmse: 0.8227835642459033
              nrmse: 0.06425112684954537
              only_a_distance_nrmse: 0.7206757033372879
          - step: 512
            scores:
              rmse: 0.02961701962644633
              baseline_rmse: 0.8227835642459033
              nrmse: 0.03599612451373028
              only_a_distance_nrmse: 0.7132140583987974
        source_prerequisite_met: true
        downstream_interpretable: true
        only_a_oracle:
          rmse: 0.5791384491604891
          baseline_rmse: 0.8103532807277047
          nrmse: 0.7146740353052158
          only_a_distance_nrmse: 0.0
        arms:
          deleted:
            before:
              rmse: 0.690778493781905
              baseline_rmse: 0.8103532807277047
              nrmse: 0.8524411638854347
              only_a_distance_nrmse: 0.46328294230539013
            after:
              rmse: 0.5842682661881069
              baseline_rmse: 0.8103532807277047
              nrmse: 0.7210043817721433
              only_a_distance_nrmse: 0.07714394439231267
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                rmse: 0.6940508255036514
                baseline_rmse: 0.8185735883959189
                nrmse: 0.8478783524688562
                only_a_distance_nrmse: 0.4634211862312215
            - step: 32
              scores:
                rmse: 0.5962430241585547
                baseline_rmse: 0.8185735883959189
                nrmse: 0.7283926975056154
                only_a_distance_nrmse: 0.14292109841311226
            - step: 128
              scores:
                rmse: 0.5884883191315411
                baseline_rmse: 0.8185735883959189
                nrmse: 0.7189192608629676
                only_a_distance_nrmse: 0.14937961596717464
            - step: 256
              scores:
                rmse: 0.5845684618941069
                baseline_rmse: 0.8185735883959189
                nrmse: 0.7141306171869415
                only_a_distance_nrmse: 0.07933424217544038
            updated_parameter_count: 77
            pooling_capacity: 2
            removed_state_entries:
            - nodes.record/b.embedder.weights
            - nodes.record/b.embedder.max_fourier_input
            - nodes.record/b.embedder.embeddings.weight
            - nodes.record/b.embedder.counter.counts
            - nodes.record/b.embedder.linear.weight
            - nodes.record/b.embedder.linear.bias
            - nodes.record/b.embedder.scalar.weight
            - nodes.record/b.embedder.normalizer.mean
            - nodes.record/b.embedder.normalizer.var
            - nodes.record/b.embedder.normalizer.count
            changed_unselected_state_entries: []
          inactive:
            before:
              rmse: 0.690778493781905
              baseline_rmse: 0.8103532807277047
              nrmse: 0.8524411638854347
              only_a_distance_nrmse: 0.46328294230539013
            after:
              rmse: 0.5842682661881069
              baseline_rmse: 0.8103532807277047
              nrmse: 0.7210043817721433
              only_a_distance_nrmse: 0.07714394439231267
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                rmse: 0.6940508255036514
                baseline_rmse: 0.8185735883959189
                nrmse: 0.8478783524688562
                only_a_distance_nrmse: 0.4634211862312215
            - step: 32
              scores:
                rmse: 0.5962430241585547
                baseline_rmse: 0.8185735883959189
                nrmse: 0.7283926975056154
                only_a_distance_nrmse: 0.14292109841311226
            - step: 128
              scores:
                rmse: 0.5884883191315411
                baseline_rmse: 0.8185735883959189
                nrmse: 0.7189192608629676
                only_a_distance_nrmse: 0.14937961596717464
            - step: 256
              scores:
                rmse: 0.5845684618941069
                baseline_rmse: 0.8185735883959189
                nrmse: 0.7141306171869415
                only_a_distance_nrmse: 0.07933424217544038
            updated_parameter_count: 77
            pooling_capacity: 2
          scratch_restricted:
            before:
              rmse: 1.0277799777901702
              baseline_rmse: 0.8103532807277047
              nrmse: 1.268310997479043
              only_a_distance_nrmse: 1.0606146291576006
            after:
              rmse: 0.5831567734064373
              baseline_rmse: 0.8103532807277047
              nrmse: 0.7196327666900505
              only_a_distance_nrmse: 0.06692009098405423
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                rmse: 1.050771858874917
                baseline_rmse: 0.8185735883959189
                nrmse: 1.283662060162502
                only_a_distance_nrmse: 1.0486131884111216
            - step: 32
              scores:
                rmse: 0.5823476303396594
                baseline_rmse: 0.8185735883959189
                nrmse: 0.7114175666000059
                only_a_distance_nrmse: 0.0577569667245416
            - step: 128
              scores:
                rmse: 0.5892498555184403
                baseline_rmse: 0.8185735883959189
                nrmse: 0.7198495820921091
                only_a_distance_nrmse: 0.15640313331972078
            - step: 256
              scores:
                rmse: 0.5832848278837531
                baseline_rmse: 0.8185735883959189
                nrmse: 0.7125624820448473
                only_a_distance_nrmse: 0.06956897090926455
            updated_parameter_count: 77
            pooling_capacity: 2
          continuation:
            before:
              rmse: 0.030233970450265445
              baseline_rmse: 0.8103532807277047
              nrmse: 0.03730961689093806
              only_a_distance_nrmse: 0.728618107549543
            after:
              rmse: 0.013617242093645654
              baseline_rmse: 0.8103532807277047
              nrmse: 0.016804080908288846
              only_a_distance_nrmse: 0.7173870300374742
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                rmse: 0.029924764154731227
                baseline_rmse: 0.8185735883959189
                nrmse: 0.03655720704765463
                only_a_distance_nrmse: 0.7180107575257996
            - step: 32
              scores:
                rmse: 0.07121546077745729
                baseline_rmse: 0.8185735883959189
                nrmse: 0.08699946075344488
                only_a_distance_nrmse: 0.6795849223812774
            - step: 128
              scores:
                rmse: 0.008683239416743024
                baseline_rmse: 0.8185735883959189
                nrmse: 0.01060776885528245
                only_a_distance_nrmse: 0.7073769509370645
            - step: 256
              scores:
                rmse: 0.013771687757451129
                baseline_rmse: 0.8185735883959189
                nrmse: 0.016824006971002083
                only_a_distance_nrmse: 0.708008635122541
            updated_parameter_count: 89
            pooling_capacity: 3
        readdition:
          scores:
            rmse: 0.6852289823134198
            baseline_rmse: 0.8103532807277047
            nrmse: 0.845592902021792
            only_a_distance_nrmse: 0.7385194119698516
          source_normalization:
            mean: -0.0004043062508571893
            variance: 0.3330785930156708
            std: 0.5771382789381335
            count: 65536
            alpha: null
          fresh_normalization:
            mean: 0.0
            variance: 1.0
            std: 1.0000049999875
            count: 0
            alpha: null
          source_field_order:
          - record/a
          - record/b
          - record/y
          readded_field_order:
          - record/a
          - record/y
          - record/b
        test_rows: 2048
        optimizer_policy: New AdamW factory and Trainer per phase; matched adaptation data and updates
        mutation: delete record/b; inactive control updates active=False; separate source fork deletes and re-adds
          b
      checks:
        Source learns both-input relationship below 0.25 nRMSE: true
        Source optimizer covers current parameters: true
        Deletion removes b from schema and runtime: true
        Deletion removes the selected state entries: true
        Deletion preserves all unselected state entries: true
        Deletion immediately loses the selected information: true
        'deleted before: removed input values cannot affect predictions': true
        'deleted: optimizer covers current parameters': true
        'deleted: parameters actually learn': true
        'deleted: hidden target values cannot affect predictions': true
        'deleted: adapts near the remaining-information limit': true
        'deleted after: removed input values cannot affect predictions': true
        Deleted checkpoint preserves schema and learned state: true
        Deleted checkpoint preserves adapted predictions: true
        Inactive control preserves all original state: true
        Deletion and deactivation initially give the same predictions: true
        'inactive before: removed input values cannot affect predictions': true
        'inactive: optimizer covers current parameters': true
        'inactive: parameters actually learn': true
        'inactive: hidden target values cannot affect predictions': true
        'inactive: adapts near the remaining-information limit': true
        'inactive after: removed input values cannot affect predictions': true
        Scratch schema and field order match deletion: true
        'scratch_restricted before: removed input values cannot affect predictions': true
        'scratch_restricted: optimizer covers current parameters': true
        'scratch_restricted: parameters actually learn': true
        'scratch_restricted: hidden target values cannot affect predictions': true
        'scratch_restricted: adapts near the remaining-information limit': true
        'scratch_restricted after: removed input values cannot affect predictions': true
        Unchanged checkpoint restores source predictions: true
        'continuation: optimizer covers current parameters': true
        'continuation: parameters actually learn': true
        'continuation: hidden target values cannot affect predictions': true
        Continuation retains full-information accuracy below 0.25 nRMSE: true
        Re-adding the same name does not restore its learned state: true
        Re-added input has fresh normalization: true
      outcome: met
      duration_seconds: 13.82
    - started_at: '2026-09-15T18:23:31.594803+00:00'
      mode: full
      seed: 5001
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: de366e85036478c26153e1ff1f82d3a7faec6fd712790249662f6d5fea48ec37
        script_sha256: fe688bd87233e2bfcd5b1c5ca6916536a0049dfd012699881fa7eeb6edb1f487
        code_sha256: 71ad78be90abfc30fba52b2e0182b4539ca9101f868befec33b05fdf349d023a
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-removal-6b17okdx/src/relflow
        packages:
          relflow: 0.2.2
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
      metrics:
        source:
          rmse: 0.034193175689539355
          baseline_rmse: 0.8103532807277047
          nrmse: 0.04219539366686289
          only_a_distance_nrmse: 0.7263763636959647
        source_fit:
          steps: 512
          optimizer_covers_current_parameters: true
          validation_curve:
          - step: 0
            scores:
              rmse: 1.1152492049615597
              baseline_rmse: 0.8227835642459033
              nrmse: 1.3554587784987011
              only_a_distance_nrmse: 0.9971724517883713
          - step: 32
            scores:
              rmse: 0.057829628655470124
              baseline_rmse: 0.8227835642459033
              nrmse: 0.07028534740903833
              only_a_distance_nrmse: 0.6607187908389289
          - step: 128
            scores:
              rmse: 0.05289033813159905
              baseline_rmse: 0.8227835642459033
              nrmse: 0.0642822006053002
              only_a_distance_nrmse: 0.7206997159576051
          - step: 512
            scores:
              rmse: 0.03409068593820913
              baseline_rmse: 0.8227835642459033
              nrmse: 0.04143335795660173
              only_a_distance_nrmse: 0.7134729135579938
        source_prerequisite_met: true
        downstream_interpretable: true
        only_a_oracle:
          rmse: 0.5791384491604891
          baseline_rmse: 0.8103532807277047
          nrmse: 0.7146740353052158
          only_a_distance_nrmse: 0.0
        arms:
          deleted:
            before:
              rmse: 0.6869920652316659
              baseline_rmse: 0.8103532807277047
              nrmse: 0.8477685986718542
              only_a_distance_nrmse: 0.4544723842827458
            after:
              rmse: 0.5844560505348129
              baseline_rmse: 0.8103532807277047
              nrmse: 0.7212361132294867
              only_a_distance_nrmse: 0.07872369638242804
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                rmse: 0.6876196483060345
                baseline_rmse: 0.8185735883959189
                nrmse: 0.8400217867443018
                only_a_distance_nrmse: 0.4543510302166673
            - step: 32
              scores:
                rmse: 0.5889345966290531
                baseline_rmse: 0.8185735883959189
                nrmse: 0.7194644500846069
                only_a_distance_nrmse: 0.10265846999341365
            - step: 128
              scores:
                rmse: 0.5879907604012774
                baseline_rmse: 0.8185735883959189
                nrmse: 0.7183114245763869
                only_a_distance_nrmse: 0.14707627628724834
            - step: 256
              scores:
                rmse: 0.5845773005020589
                baseline_rmse: 0.8185735883959189
                nrmse: 0.7141414147597892
                only_a_distance_nrmse: 0.08087778371578416
            updated_parameter_count: 89
            pooling_capacity: 2
            removed_state_entries:
            - nodes.record/b.embedder.weights
            - nodes.record/b.embedder.max_fourier_input
            - nodes.record/b.embedder.embeddings.weight
            - nodes.record/b.embedder.counter.counts
            - nodes.record/b.embedder.linear.weight
            - nodes.record/b.embedder.linear.bias
            - nodes.record/b.embedder.scalar.weight
            - nodes.record/b.embedder.normalizer.mean
            - nodes.record/b.embedder.normalizer.var
            - nodes.record/b.embedder.normalizer.count
            changed_unselected_state_entries: []
          inactive:
            before:
              rmse: 0.6869920652316659
              baseline_rmse: 0.8103532807277047
              nrmse: 0.8477685986718542
              only_a_distance_nrmse: 0.4544723842827458
            after:
              rmse: 0.5844560505348129
              baseline_rmse: 0.8103532807277047
              nrmse: 0.7212361132294867
              only_a_distance_nrmse: 0.07872369638242804
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                rmse: 0.6876196483060345
                baseline_rmse: 0.8185735883959189
                nrmse: 0.8400217867443018
                only_a_distance_nrmse: 0.4543510302166673
            - step: 32
              scores:
                rmse: 0.5889345966290531
                baseline_rmse: 0.8185735883959189
                nrmse: 0.7194644500846069
                only_a_distance_nrmse: 0.10265846999341365
            - step: 128
              scores:
                rmse: 0.5879907604012774
                baseline_rmse: 0.8185735883959189
                nrmse: 0.7183114245763869
                only_a_distance_nrmse: 0.14707627628724834
            - step: 256
              scores:
                rmse: 0.5845773005020589
                baseline_rmse: 0.8185735883959189
                nrmse: 0.7141414147597892
                only_a_distance_nrmse: 0.08087778371578416
            updated_parameter_count: 89
            pooling_capacity: 2
          scratch_restricted:
            before:
              rmse: 1.0277799965979517
              baseline_rmse: 0.8103532807277047
              nrmse: 1.2683110206884036
              only_a_distance_nrmse: 1.06061465559322
            after:
              rmse: 0.5831567760991642
              baseline_rmse: 0.8103532807277047
              nrmse: 0.7196327700129553
              only_a_distance_nrmse: 0.06692010222859263
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                rmse: 1.0507718721225583
                baseline_rmse: 0.8185735883959189
                nrmse: 1.283662076346314
                only_a_distance_nrmse: 1.048613208499735
            - step: 32
              scores:
                rmse: 0.5823476208361499
                baseline_rmse: 0.8185735883959189
                nrmse: 0.7114175549901645
                only_a_distance_nrmse: 0.05775696373949843
            - step: 128
              scores:
                rmse: 0.5892498569077196
                baseline_rmse: 0.8185735883959189
                nrmse: 0.7198495837893044
                only_a_distance_nrmse: 0.15640314885348733
            - step: 256
              scores:
                rmse: 0.5832848293252761
                baseline_rmse: 0.8185735883959189
                nrmse: 0.7125624838058655
                only_a_distance_nrmse: 0.06956898556800413
            updated_parameter_count: 89
            pooling_capacity: 2
          continuation:
            before:
              rmse: 0.034193175689539355
              baseline_rmse: 0.8103532807277047
              nrmse: 0.04219539366686289
              only_a_distance_nrmse: 0.7263763636959647
            after:
              rmse: 0.017375520799651097
              baseline_rmse: 0.8103532807277047
              nrmse: 0.021441908378587324
              only_a_distance_nrmse: 0.7010713008943545
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                rmse: 0.035068273201261636
                baseline_rmse: 0.8185735883959189
                nrmse: 0.04284070937346221
                only_a_distance_nrmse: 0.7203080813425458
            - step: 32
              scores:
                rmse: 0.08031614652766814
                baseline_rmse: 0.8185735883959189
                nrmse: 0.09811719760596734
                only_a_distance_nrmse: 0.7179605857986787
            - step: 128
              scores:
                rmse: 0.004807879730056251
                baseline_rmse: 0.8185735883959189
                nrmse: 0.005873485045465243
                only_a_distance_nrmse: 0.705783136099351
            - step: 256
              scores:
                rmse: 0.016764382588168907
                baseline_rmse: 0.8185735883959189
                nrmse: 0.020479994499969734
                only_a_distance_nrmse: 0.6931467450606643
            updated_parameter_count: 93
            pooling_capacity: 3
        readdition:
          scores:
            rmse: 0.7129609305304768
            baseline_rmse: 0.8103532807277047
            nrmse: 0.8798149492160151
            only_a_distance_nrmse: 0.7605748091272082
          source_normalization:
            mean: -0.0004043062508571893
            variance: 0.3330785930156708
            std: 0.5771382789381335
            count: 65536
            alpha: null
          fresh_normalization:
            mean: 0.0
            variance: 1.0
            std: 1.0000049999875
            count: 0
            alpha: null
          source_field_order:
          - record/a
          - record/b
          - record/y
          readded_field_order:
          - record/a
          - record/y
          - record/b
        test_rows: 2048
        optimizer_policy: New AdamW factory and Trainer per phase; matched adaptation data and updates
        mutation: delete record/b; inactive control updates active=False; separate source fork deletes and re-adds
          b
      checks:
        Source learns both-input relationship below 0.25 nRMSE: true
        Source optimizer covers current parameters: true
        Deletion removes b from schema and runtime: true
        Deletion removes the selected state entries: true
        Deletion preserves all unselected state entries: true
        Deletion immediately loses the selected information: true
        'deleted before: removed input values cannot affect predictions': true
        'deleted: optimizer covers current parameters': true
        'deleted: parameters actually learn': true
        'deleted: hidden target values cannot affect predictions': true
        'deleted: adapts near the remaining-information limit': true
        'deleted after: removed input values cannot affect predictions': true
        Deleted checkpoint preserves schema and learned state: true
        Deleted checkpoint preserves adapted predictions: true
        Inactive control preserves all original state: true
        Deletion and deactivation initially give the same predictions: true
        'inactive before: removed input values cannot affect predictions': true
        'inactive: optimizer covers current parameters': true
        'inactive: parameters actually learn': true
        'inactive: hidden target values cannot affect predictions': true
        'inactive: adapts near the remaining-information limit': true
        'inactive after: removed input values cannot affect predictions': true
        Scratch schema and field order match deletion: true
        'scratch_restricted before: removed input values cannot affect predictions': true
        'scratch_restricted: optimizer covers current parameters': true
        'scratch_restricted: parameters actually learn': true
        'scratch_restricted: hidden target values cannot affect predictions': true
        'scratch_restricted: adapts near the remaining-information limit': true
        'scratch_restricted after: removed input values cannot affect predictions': true
        Unchanged checkpoint restores source predictions: true
        'continuation: optimizer covers current parameters': true
        'continuation: parameters actually learn': true
        'continuation: hidden target values cannot affect predictions': true
        Continuation retains full-information accuracy below 0.25 nRMSE: true
        Re-adding the same name does not restore its learned state: true
        Re-added input has fresh normalization: true
      outcome: met
      duration_seconds: 30.909
    - started_at: '2026-09-15T18:24:22.957999+00:00'
      mode: full
      seed: 7201
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: de366e85036478c26153e1ff1f82d3a7faec6fd712790249662f6d5fea48ec37
        script_sha256: fe688bd87233e2bfcd5b1c5ca6916536a0049dfd012699881fa7eeb6edb1f487
        code_sha256: 71ad78be90abfc30fba52b2e0182b4539ca9101f868befec33b05fdf349d023a
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-removal-6b17okdx/src/relflow
        packages:
          relflow: 0.2.2
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
      metrics:
        source:
          rmse: 0.012387407114893877
          baseline_rmse: 0.8120016401971133
          nrmse: 0.015255396666300866
          only_a_distance_nrmse: 0.7136397917074613
        source_fit:
          steps: 512
          optimizer_covers_current_parameters: true
          validation_curve:
          - step: 0
            scores:
              rmse: 0.9848706373195013
              baseline_rmse: 0.8396052345162109
              nrmse: 1.173016313895415
              only_a_distance_nrmse: 0.7962542109945072
          - step: 32
            scores:
              rmse: 0.052390351564096396
              baseline_rmse: 0.8396052345162109
              nrmse: 0.06239879101549938
              only_a_distance_nrmse: 0.6842872372979514
          - step: 128
            scores:
              rmse: 0.015064316126240537
              baseline_rmse: 0.8396052345162109
              nrmse: 0.01794214174345965
              only_a_distance_nrmse: 0.6847022180759422
          - step: 512
            scores:
              rmse: 0.01243701868450528
              baseline_rmse: 0.8396052345162109
              nrmse: 0.01481293609570171
              only_a_distance_nrmse: 0.6891333235742876
        source_prerequisite_met: true
        downstream_interpretable: true
        only_a_oracle:
          rmse: 0.5809035857842813
          baseline_rmse: 0.8120016401971133
          nrmse: 0.7153970595961691
          only_a_distance_nrmse: 0.0
        arms:
          deleted:
            before:
              rmse: 0.6978588819705238
              baseline_rmse: 0.8120016401971133
              nrmse: 0.8594303846493693
              only_a_distance_nrmse: 0.4683118781791459
            after:
              rmse: 0.5831621066597686
              baseline_rmse: 0.8120016401971133
              nrmse: 0.7181784836274544
              only_a_distance_nrmse: 0.07859965746781736
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                rmse: 0.6901263734392206
                baseline_rmse: 0.8256454947735132
                nrmse: 0.8358628222497991
                only_a_distance_nrmse: 0.4671020486917348
            - step: 32
              scores:
                rmse: 0.5880209811528249
                baseline_rmse: 0.8256454947735132
                nrmse: 0.7121954699384967
                only_a_distance_nrmse: 0.09196330366955971
            - step: 128
              scores:
                rmse: 0.5903828080975378
                baseline_rmse: 0.8256454947735132
                nrmse: 0.7150560523066726
                only_a_distance_nrmse: 0.11623862002519912
            - step: 256
              scores:
                rmse: 0.5808657463437441
                baseline_rmse: 0.8256454947735132
                nrmse: 0.7035292386632402
                only_a_distance_nrmse: 0.07769698358159956
            updated_parameter_count: 89
            pooling_capacity: 2
            removed_state_entries:
            - nodes.record/b.embedder.weights
            - nodes.record/b.embedder.max_fourier_input
            - nodes.record/b.embedder.embeddings.weight
            - nodes.record/b.embedder.counter.counts
            - nodes.record/b.embedder.linear.weight
            - nodes.record/b.embedder.linear.bias
            - nodes.record/b.embedder.scalar.weight
            - nodes.record/b.embedder.normalizer.mean
            - nodes.record/b.embedder.normalizer.var
            - nodes.record/b.embedder.normalizer.count
            changed_unselected_state_entries: []
          inactive:
            before:
              rmse: 0.6978588819705238
              baseline_rmse: 0.8120016401971133
              nrmse: 0.8594303846493693
              only_a_distance_nrmse: 0.4683118781791459
            after:
              rmse: 0.5831621066597686
              baseline_rmse: 0.8120016401971133
              nrmse: 0.7181784836274544
              only_a_distance_nrmse: 0.07859965746781736
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                rmse: 0.6901263734392206
                baseline_rmse: 0.8256454947735132
                nrmse: 0.8358628222497991
                only_a_distance_nrmse: 0.4671020486917348
            - step: 32
              scores:
                rmse: 0.5880209811528249
                baseline_rmse: 0.8256454947735132
                nrmse: 0.7121954699384967
                only_a_distance_nrmse: 0.09196330366955971
            - step: 128
              scores:
                rmse: 0.5903828080975378
                baseline_rmse: 0.8256454947735132
                nrmse: 0.7150560523066726
                only_a_distance_nrmse: 0.11623862002519912
            - step: 256
              scores:
                rmse: 0.5808657463437441
                baseline_rmse: 0.8256454947735132
                nrmse: 0.7035292386632402
                only_a_distance_nrmse: 0.07769698358159956
            updated_parameter_count: 89
            pooling_capacity: 2
          scratch_restricted:
            before:
              rmse: 1.244657045306195
              baseline_rmse: 0.8120016401971133
              nrmse: 1.5328257773026845
              only_a_distance_nrmse: 1.376798698767851
            after:
              rmse: 0.581655971541918
              baseline_rmse: 0.8120016401971133
              nrmse: 0.7163236411698886
              only_a_distance_nrmse: 0.05921633754258864
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                rmse: 1.2326355702152973
                baseline_rmse: 0.8256454947735132
                nrmse: 1.4929356219080776
                only_a_distance_nrmse: 1.3516029008577253
            - step: 32
              scores:
                rmse: 0.5881523347689552
                baseline_rmse: 0.8256454947735132
                nrmse: 0.7123545619664455
                only_a_distance_nrmse: 0.0967495088065333
            - step: 128
              scores:
                rmse: 0.5901936678822421
                baseline_rmse: 0.8256454947735132
                nrmse: 0.7148269706772166
                only_a_distance_nrmse: 0.11287399450786655
            - step: 256
              scores:
                rmse: 0.5818092520166288
                baseline_rmse: 0.8256454947735132
                nrmse: 0.7046719877957157
                only_a_distance_nrmse: 0.05865919066520842
            updated_parameter_count: 89
            pooling_capacity: 2
          continuation:
            before:
              rmse: 0.012387407114893877
              baseline_rmse: 0.8120016401971133
              nrmse: 0.015255396666300866
              only_a_distance_nrmse: 0.7136397917074613
            after:
              rmse: 0.010233279181010285
              baseline_rmse: 0.8120016401971133
              nrmse: 0.012602535111291347
              only_a_distance_nrmse: 0.7135734304229762
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                rmse: 0.012024774168433016
                baseline_rmse: 0.8256454947735132
                nrmse: 0.014564088636772117
                only_a_distance_nrmse: 0.6996642910923084
            - step: 32
              scores:
                rmse: 0.042896468824362474
                baseline_rmse: 0.8256454947735132
                nrmse: 0.051955069210581246
                only_a_distance_nrmse: 0.6805924397417519
            - step: 128
              scores:
                rmse: 0.018348379425840437
                baseline_rmse: 0.8256454947735132
                nrmse: 0.02222307218048064
                only_a_distance_nrmse: 0.6965932513607549
            - step: 256
              scores:
                rmse: 0.009791922153065192
                baseline_rmse: 0.8256454947735132
                nrmse: 0.011859717293983735
                only_a_distance_nrmse: 0.6998416283507768
            updated_parameter_count: 93
            pooling_capacity: 3
        readdition:
          scores:
            rmse: 0.5735670565285867
            baseline_rmse: 0.8120016401971133
            nrmse: 0.7063619432952788
            only_a_distance_nrmse: 0.22241200155948565
          source_normalization:
            mean: 0.02379218488931656
            variance: 0.33199870586395264
            std: 0.5762019662097246
            count: 65536
            alpha: null
          fresh_normalization:
            mean: 0.0
            variance: 1.0
            std: 1.0000049999875
            count: 0
            alpha: null
          source_field_order:
          - record/a
          - record/b
          - record/y
          readded_field_order:
          - record/a
          - record/y
          - record/b
        test_rows: 2048
        optimizer_policy: New AdamW factory and Trainer per phase; matched adaptation data and updates
        mutation: delete record/b; inactive control updates active=False; separate source fork deletes and re-adds
          b
      checks:
        Source learns both-input relationship below 0.25 nRMSE: true
        Source optimizer covers current parameters: true
        Deletion removes b from schema and runtime: true
        Deletion removes the selected state entries: true
        Deletion preserves all unselected state entries: true
        Deletion immediately loses the selected information: true
        'deleted before: removed input values cannot affect predictions': true
        'deleted: optimizer covers current parameters': true
        'deleted: parameters actually learn': true
        'deleted: hidden target values cannot affect predictions': true
        'deleted: adapts near the remaining-information limit': true
        'deleted after: removed input values cannot affect predictions': true
        Deleted checkpoint preserves schema and learned state: true
        Deleted checkpoint preserves adapted predictions: true
        Inactive control preserves all original state: true
        Deletion and deactivation initially give the same predictions: true
        'inactive before: removed input values cannot affect predictions': true
        'inactive: optimizer covers current parameters': true
        'inactive: parameters actually learn': true
        'inactive: hidden target values cannot affect predictions': true
        'inactive: adapts near the remaining-information limit': true
        'inactive after: removed input values cannot affect predictions': true
        Scratch schema and field order match deletion: true
        'scratch_restricted before: removed input values cannot affect predictions': true
        'scratch_restricted: optimizer covers current parameters': true
        'scratch_restricted: parameters actually learn': true
        'scratch_restricted: hidden target values cannot affect predictions': true
        'scratch_restricted: adapts near the remaining-information limit': true
        'scratch_restricted after: removed input values cannot affect predictions': true
        Unchanged checkpoint restores source predictions: true
        'continuation: optimizer covers current parameters': true
        'continuation: parameters actually learn': true
        'continuation: hidden target values cannot affect predictions': true
        Continuation retains full-information accuracy below 0.25 nRMSE: true
        Re-adding the same name does not restore its learned state: true
        Re-added input has fresh normalization: true
      outcome: met
      duration_seconds: 31.006
    - started_at: '2026-09-15T18:25:14.574219+00:00'
      mode: full
      seed: 7202
      steps_override: null
      accelerator: gpu
      threads: 1
      provenance:
        revision: null
        source_sha256: de366e85036478c26153e1ff1f82d3a7faec6fd712790249662f6d5fea48ec37
        script_sha256: fe688bd87233e2bfcd5b1c5ca6916536a0049dfd012699881fa7eeb6edb1f487
        code_sha256: 71ad78be90abfc30fba52b2e0182b4539ca9101f868befec33b05fdf349d023a
        python: 3.12.6
        platform: Linux-6.8.0-138-generic-x86_64-with-glibc2.35
        host: lab
        relflow_path: /home/grantham/relflow-removal-6b17okdx/src/relflow
        packages:
          relflow: 0.2.2
          torch: 2.12.0
          lightning: 2.6.4
          numpy: 2.4.6
          pyarrow: 24.0.0
          polars: 1.44.1
          torchmetrics: 1.9.0
          tensordict: 0.12.4
          pydantic: 2.13.4
        cuda: '13.0'
        gpu: NVIDIA GeForce RTX 3090
      metrics:
        source:
          rmse: 0.02008381101831335
          baseline_rmse: 0.8352833232272557
          nrmse: 0.02404430982856956
          only_a_distance_nrmse: 0.7083488643135359
        source_fit:
          steps: 512
          optimizer_covers_current_parameters: true
          validation_curve:
          - step: 0
            scores:
              rmse: 0.6233581094490702
              baseline_rmse: 0.818524820858298
              nrmse: 0.7615628672022704
              only_a_distance_nrmse: 0.7208547812234832
          - step: 32
            scores:
              rmse: 0.1094425294716588
              baseline_rmse: 0.818524820858298
              nrmse: 0.1337070381774108
              only_a_distance_nrmse: 0.7307140954775097
          - step: 128
            scores:
              rmse: 0.016519101916772697
              baseline_rmse: 0.818524820858298
              nrmse: 0.02018155283238804
              only_a_distance_nrmse: 0.7153357098778558
          - step: 512
            scores:
              rmse: 0.019615138964158296
              baseline_rmse: 0.818524820858298
              nrmse: 0.02396401240904342
              only_a_distance_nrmse: 0.7285638406273279
        source_prerequisite_met: true
        downstream_interpretable: true
        only_a_oracle:
          rmse: 0.5780872291911047
          baseline_rmse: 0.8352833232272557
          nrmse: 0.6920852040449805
          only_a_distance_nrmse: 0.0
        arms:
          deleted:
            before:
              rmse: 0.8051448159247964
              baseline_rmse: 0.8352833232272557
              nrmse: 0.963918222159621
              only_a_distance_nrmse: 0.7052061517161763
            after:
              rmse: 0.5778075411583316
              baseline_rmse: 0.8352833232272557
              nrmse: 0.691750361932136
              only_a_distance_nrmse: 0.06130398393420271
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                rmse: 0.8142301306723146
                baseline_rmse: 0.8056991213085883
                nrmse: 1.0105883314727593
                only_a_distance_nrmse: 0.721816357907311
            - step: 32
              scores:
                rmse: 0.5715751093486549
                baseline_rmse: 0.8056991213085883
                nrmse: 0.7094150834126796
                only_a_distance_nrmse: 0.13606648887478617
            - step: 128
              scores:
                rmse: 0.5753770291476329
                baseline_rmse: 0.8056991213085883
                nrmse: 0.714133867011206
                only_a_distance_nrmse: 0.1312310084402827
            - step: 256
              scores:
                rmse: 0.5649223332311453
                baseline_rmse: 0.8056991213085883
                nrmse: 0.7011579363691227
                only_a_distance_nrmse: 0.0625918032746263
            updated_parameter_count: 89
            pooling_capacity: 2
            removed_state_entries:
            - nodes.record/b.embedder.weights
            - nodes.record/b.embedder.max_fourier_input
            - nodes.record/b.embedder.embeddings.weight
            - nodes.record/b.embedder.counter.counts
            - nodes.record/b.embedder.linear.weight
            - nodes.record/b.embedder.linear.bias
            - nodes.record/b.embedder.scalar.weight
            - nodes.record/b.embedder.normalizer.mean
            - nodes.record/b.embedder.normalizer.var
            - nodes.record/b.embedder.normalizer.count
            changed_unselected_state_entries: []
          inactive:
            before:
              rmse: 0.8051448159247964
              baseline_rmse: 0.8352833232272557
              nrmse: 0.963918222159621
              only_a_distance_nrmse: 0.7052061517161763
            after:
              rmse: 0.5778075411583316
              baseline_rmse: 0.8352833232272557
              nrmse: 0.691750361932136
              only_a_distance_nrmse: 0.06130398393420271
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                rmse: 0.8142301306723146
                baseline_rmse: 0.8056991213085883
                nrmse: 1.0105883314727593
                only_a_distance_nrmse: 0.721816357907311
            - step: 32
              scores:
                rmse: 0.5715751093486549
                baseline_rmse: 0.8056991213085883
                nrmse: 0.7094150834126796
                only_a_distance_nrmse: 0.13606648887478617
            - step: 128
              scores:
                rmse: 0.5753770291476329
                baseline_rmse: 0.8056991213085883
                nrmse: 0.714133867011206
                only_a_distance_nrmse: 0.1312310084402827
            - step: 256
              scores:
                rmse: 0.5649223332311453
                baseline_rmse: 0.8056991213085883
                nrmse: 0.7011579363691227
                only_a_distance_nrmse: 0.0625918032746263
            updated_parameter_count: 89
            pooling_capacity: 2
          scratch_restricted:
            before:
              rmse: 0.8868556317484789
              baseline_rmse: 0.8352833232272557
              nrmse: 1.06174229400626
              only_a_distance_nrmse: 0.7709742570931406
            after:
              rmse: 0.5782203378198156
              baseline_rmse: 0.8352833232272557
              nrmse: 0.69224456150491
              only_a_distance_nrmse: 0.07019150170318522
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                rmse: 0.8572424072001292
                baseline_rmse: 0.8056991213085883
                nrmse: 1.0639733673878484
                only_a_distance_nrmse: 0.7993693131078533
            - step: 32
              scores:
                rmse: 0.5694346192640745
                baseline_rmse: 0.8056991213085883
                nrmse: 0.7067583967811938
                only_a_distance_nrmse: 0.0866815169412168
            - step: 128
              scores:
                rmse: 0.5711789456390196
                baseline_rmse: 0.8056991213085883
                nrmse: 0.7089233816109055
                only_a_distance_nrmse: 0.10832556341325922
            - step: 256
              scores:
                rmse: 0.5654904967131181
                baseline_rmse: 0.8056991213085883
                nrmse: 0.7018631170835439
                only_a_distance_nrmse: 0.07370084116310446
            updated_parameter_count: 89
            pooling_capacity: 2
          continuation:
            before:
              rmse: 0.02008381101831335
              baseline_rmse: 0.8352833232272557
              nrmse: 0.02404430982856956
              only_a_distance_nrmse: 0.7083488643135359
            after:
              rmse: 0.01599579466581891
              baseline_rmse: 0.8352833232272557
              nrmse: 0.019150142497777287
              only_a_distance_nrmse: 0.6791647199298226
            steps: 256
            optimizer_covers_current_parameters: true
            validation_curve:
            - step: 0
              scores:
                rmse: 0.018716987765503217
                baseline_rmse: 0.8056991213085883
                nrmse: 0.023230741191704093
                only_a_distance_nrmse: 0.7158475211177245
            - step: 32
              scores:
                rmse: 0.0270836781610786
                baseline_rmse: 0.8056991213085883
                nrmse: 0.033615126844237134
                only_a_distance_nrmse: 0.7217665791058488
            - step: 128
              scores:
                rmse: 0.006284964283198546
                baseline_rmse: 0.8056991213085883
                nrmse: 0.007800634401823259
                only_a_distance_nrmse: 0.7005309659747299
            - step: 256
              scores:
                rmse: 0.014907214874622854
                baseline_rmse: 0.8056991213085883
                nrmse: 0.01850221066446129
                only_a_distance_nrmse: 0.6880186986846835
            updated_parameter_count: 93
            pooling_capacity: 3
        readdition:
          scores:
            rmse: 0.5636660707421731
            baseline_rmse: 0.8352833232272557
            nrmse: 0.6748202137741188
            only_a_distance_nrmse: 0.24856142796021527
          source_normalization:
            mean: -0.019764553755521774
            variance: 0.3272486925125122
            std: 0.5720652869319307
            count: 65536
            alpha: null
          fresh_normalization:
            mean: 0.0
            variance: 1.0
            std: 1.0000049999875
            count: 0
            alpha: null
          source_field_order:
          - record/a
          - record/b
          - record/y
          readded_field_order:
          - record/a
          - record/y
          - record/b
        test_rows: 2048
        optimizer_policy: New AdamW factory and Trainer per phase; matched adaptation data and updates
        mutation: delete record/b; inactive control updates active=False; separate source fork deletes and re-adds
          b
      checks:
        Source learns both-input relationship below 0.25 nRMSE: true
        Source optimizer covers current parameters: true
        Deletion removes b from schema and runtime: true
        Deletion removes the selected state entries: true
        Deletion preserves all unselected state entries: true
        Deletion immediately loses the selected information: true
        'deleted before: removed input values cannot affect predictions': true
        'deleted: optimizer covers current parameters': true
        'deleted: parameters actually learn': true
        'deleted: hidden target values cannot affect predictions': true
        'deleted: adapts near the remaining-information limit': true
        'deleted after: removed input values cannot affect predictions': true
        Deleted checkpoint preserves schema and learned state: true
        Deleted checkpoint preserves adapted predictions: true
        Inactive control preserves all original state: true
        Deletion and deactivation initially give the same predictions: true
        'inactive before: removed input values cannot affect predictions': true
        'inactive: optimizer covers current parameters': true
        'inactive: parameters actually learn': true
        'inactive: hidden target values cannot affect predictions': true
        'inactive: adapts near the remaining-information limit': true
        'inactive after: removed input values cannot affect predictions': true
        Scratch schema and field order match deletion: true
        'scratch_restricted before: removed input values cannot affect predictions': true
        'scratch_restricted: optimizer covers current parameters': true
        'scratch_restricted: parameters actually learn': true
        'scratch_restricted: hidden target values cannot affect predictions': true
        'scratch_restricted: adapts near the remaining-information limit': true
        'scratch_restricted after: removed input values cannot affect predictions': true
        Unchanged checkpoint restores source predictions: true
        'continuation: optimizer covers current parameters': true
        'continuation: parameters actually learn': true
        'continuation: hidden target values cannot affect predictions': true
        Continuation retains full-information accuracy below 0.25 nRMSE: true
        Re-adding the same name does not restore its learned state: true
        Re-added input has fresh normalization: true
      outcome: met
      duration_seconds: 31.192
