anhtld commited on
Commit
4130741
·
verified ·
1 Parent(s): c2d5c6e

Auto-sync: 2026-06-29 11:49:11

Browse files
results/paper_analysis.json CHANGED
@@ -1,11 +1,11 @@
1
  {
2
- "best_clean_key": "residual_k4_consensus_grid035040045_noopbonus003",
3
- "generated_utc": "2026-06-29T13:46:02+00:00",
4
  "mechanism_gap": {
5
- "best_clean_vs_direct_same_ckpt": 0.07130434782608691,
6
- "best_clean_vs_h16": 0.05681159420289855,
7
  "same_state_full_vs_no_expert": 0.12347826086956515,
8
- "same_state_no_expert_vs_best_clean": 0.2156521739130436,
9
  "same_state_no_expert_vs_h16": 0.27246376811594214
10
  },
11
  "methods": {
@@ -844,6 +844,212 @@
844
  "source": "results/h16_policy_ckpt_near_miss_policy_bc5_bestpt_retrieval_residual_k4_compose_grid035040045_safe_margin0p20_noopbonus0p03_summary.json",
845
  "std_success": 0.01578047256674342
846
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
847
  "residual_k4_consensus": {
848
  "ci95_success": 0.04490086956521744,
849
  "label": "K4 mean-by-type tangent consensus",
@@ -5801,13 +6007,13 @@
5801
  },
5802
  "paired_deltas": {
5803
  "best_clean - canonical_h16": {
5804
- "ci95_delta": 0.043707043917985626,
5805
- "left": "residual_k4_consensus_grid035040045_noopbonus003",
5806
- "mean_delta": 0.05681159420289857,
5807
  "right": "h16_policy_canonical",
5808
  "seed_deltas": {
5809
- "0": 0.06608695652173913,
5810
- "1": 0.03652173913043483,
5811
  "2": 0.06782608695652176
5812
  },
5813
  "seeds": [
@@ -5815,16 +6021,16 @@
5815
  1,
5816
  2
5817
  ],
5818
- "std_delta": 0.017593032933905507
5819
  },
5820
  "best_clean - direct_same_ckpt": {
5821
- "ci95_delta": 0.043205881883877584,
5822
- "left": "residual_k4_consensus_grid035040045_noopbonus003",
5823
- "mean_delta": 0.07130434782608697,
5824
  "right": "near_miss_policy_bc5",
5825
  "seed_deltas": {
5826
- "0": 0.07130434782608697,
5827
- "1": 0.05391304347826087,
5828
  "2": 0.08869565217391306
5829
  },
5830
  "seeds": [
@@ -5832,7 +6038,7 @@
5832
  1,
5833
  2
5834
  ],
5835
- "std_delta": 0.017391304347826098
5836
  },
5837
  "full_lattice - no_expert_lattice": {
5838
  "ci95_delta": 0.02628111194117426,
@@ -5888,18 +6094,18 @@
5888
  },
5889
  "per_task_deltas": {
5890
  "best_clean_vs_h16": {
5891
- "LiftPegUpright-v1": 0.03278131303915899,
5892
- "PickCube-v1": 0.1203569980743894,
5893
- "PullCube-v1": 0.002501202501202532,
5894
- "PushCube-v1": 0.0035460992907800915,
5895
- "StackCube-v1": 0.05981055981055983
5896
  },
5897
  "no_expert_vs_best_clean": {
5898
- "LiftPegUpright-v1": 0.35374851747103375,
5899
- "PickCube-v1": 0.29526451809060505,
5900
- "PullCube-v1": -0.001875901875901892,
5901
- "PushCube-v1": 0.046939714097919305,
5902
- "StackCube-v1": 0.2817404817404817
5903
  }
5904
  }
5905
  }
 
1
  {
2
+ "best_clean_key": "residual_k4_composemasked_grid035040045_noopbonus003",
3
+ "generated_utc": "2026-06-29T15:56:21+00:00",
4
  "mechanism_gap": {
5
+ "best_clean_vs_direct_same_ckpt": 0.07246376811594196,
6
+ "best_clean_vs_h16": 0.0579710144927536,
7
  "same_state_full_vs_no_expert": 0.12347826086956515,
8
+ "same_state_no_expert_vs_best_clean": 0.21449275362318854,
9
  "same_state_no_expert_vs_h16": 0.27246376811594214
10
  },
11
  "methods": {
 
844
  "source": "results/h16_policy_ckpt_near_miss_policy_bc5_bestpt_retrieval_residual_k4_compose_grid035040045_safe_margin0p20_noopbonus0p03_summary.json",
845
  "std_success": 0.01578047256674342
846
  },
847
+ "residual_k4_composemasked_grid035040045": {
848
+ "ci95_success": 0.03024411731871433,
849
+ "label": "K4 composed type-consensus tangents, masked, scales 0.35/0.40/0.45",
850
+ "mean_action_mse_to_best": 0.4104903701765706,
851
+ "mean_progress": 0.5690829302439838,
852
+ "mean_success": 0.35304347826086957,
853
+ "num_completed": 3,
854
+ "per_task_success": {
855
+ "LiftPegUpright-v1": {
856
+ "mean_num_groups": 102.0,
857
+ "mean_success": 0.25997222475645976,
858
+ "std_success": 0.06389511734286676
859
+ },
860
+ "PickCube-v1": {
861
+ "mean_num_groups": 196.66666666666666,
862
+ "mean_success": 0.32090765514678554,
863
+ "std_success": 0.028741814746710958
864
+ },
865
+ "PullCube-v1": {
866
+ "mean_num_groups": 81.0,
867
+ "mean_success": 0.20844535581377688,
868
+ "std_success": 0.024567915948941907
869
+ },
870
+ "PushCube-v1": {
871
+ "mean_num_groups": 102.0,
872
+ "mean_success": 0.757403601199683,
873
+ "std_success": 0.07781968814460603
874
+ },
875
+ "StackCube-v1": {
876
+ "mean_num_groups": 93.33333333333333,
877
+ "mean_success": 0.19707329707329704,
878
+ "std_success": 0.0831467196651622
879
+ }
880
+ },
881
+ "seed_action_mse_to_best": {
882
+ "0": 0.40412475434496353,
883
+ "1": 0.39919882555532715,
884
+ "2": 0.42814753062942107
885
+ },
886
+ "seed_progress": {
887
+ "0": 0.5549376096017659,
888
+ "1": 0.5699067040403252,
889
+ "2": 0.5824044770898605
890
+ },
891
+ "seed_success": {
892
+ "0": 0.34782608695652173,
893
+ "1": 0.3443478260869565,
894
+ "2": 0.36695652173913046
895
+ },
896
+ "selected_candidate_type_counts": {
897
+ "retrieval_residual_policy_residual": 1623,
898
+ "retrieval_residual_residual_near_miss": 7,
899
+ "retrieval_residual_residual_near_miss+residual_no_op": 16,
900
+ "retrieval_residual_residual_near_miss+residual_wrong_gripper": 5,
901
+ "retrieval_residual_residual_no_op": 31,
902
+ "retrieval_residual_residual_no_op+residual_wrong_gripper": 24,
903
+ "retrieval_residual_residual_wrong_gripper": 19
904
+ },
905
+ "selected_residual_scale_counts": {
906
+ "0.35": 1637,
907
+ "0.4": 10,
908
+ "0.45": 78
909
+ },
910
+ "selected_type_outcomes": {
911
+ "retrieval_residual_policy_residual": {
912
+ "count": 1623.0,
913
+ "mean_progress": 0.5605780961007093,
914
+ "success_rate": 0.34442390634627235
915
+ },
916
+ "retrieval_residual_residual_near_miss": {
917
+ "count": 7.0,
918
+ "mean_progress": 0.8583278954029083,
919
+ "success_rate": 0.7142857142857143
920
+ },
921
+ "retrieval_residual_residual_near_miss+residual_no_op": {
922
+ "count": 16.0,
923
+ "mean_progress": 0.5099116703495383,
924
+ "success_rate": 0.25
925
+ },
926
+ "retrieval_residual_residual_near_miss+residual_wrong_gripper": {
927
+ "count": 5.0,
928
+ "mean_progress": 0.7557853102684021,
929
+ "success_rate": 0.6
930
+ },
931
+ "retrieval_residual_residual_no_op": {
932
+ "count": 31.0,
933
+ "mean_progress": 0.7701972944121207,
934
+ "success_rate": 0.5161290322580645
935
+ },
936
+ "retrieval_residual_residual_no_op+residual_wrong_gripper": {
937
+ "count": 24.0,
938
+ "mean_progress": 0.7473632637411356,
939
+ "success_rate": 0.5416666666666666
940
+ },
941
+ "retrieval_residual_residual_wrong_gripper": {
942
+ "count": 19.0,
943
+ "mean_progress": 0.6363769314791027,
944
+ "success_rate": 0.47368421052631576
945
+ }
946
+ },
947
+ "source": "results/h16_policy_ckpt_near_miss_policy_bc5_bestpt_retrieval_residual_k4_composemasked_grid035040045_safe_margin0p20_summary.json",
948
+ "std_success": 0.012173913043478276
949
+ },
950
+ "residual_k4_composemasked_grid035040045_noopbonus003": {
951
+ "ci95_success": 0.025316336466430094,
952
+ "label": "K4 composed type-consensus tangents, masked, scales 0.35/0.40/0.45, no-op bonus 0.03",
953
+ "mean_action_mse_to_best": 0.41063271115952427,
954
+ "mean_progress": 0.570213930835129,
955
+ "mean_success": 0.35536231884057967,
956
+ "num_completed": 3,
957
+ "per_task_success": {
958
+ "LiftPegUpright-v1": {
959
+ "mean_num_groups": 102.0,
960
+ "mean_success": 0.25997222475645976,
961
+ "std_success": 0.06389511734286676
962
+ },
963
+ "PickCube-v1": {
964
+ "mean_num_groups": 196.66666666666666,
965
+ "mean_success": 0.3278169093386485,
966
+ "std_success": 0.02533117351097172
967
+ },
968
+ "PullCube-v1": {
969
+ "mean_num_groups": 81.0,
970
+ "mean_success": 0.20474165211007314,
971
+ "std_success": 0.019188581862611215
972
+ },
973
+ "PushCube-v1": {
974
+ "mean_num_groups": 102.0,
975
+ "mean_success": 0.757403601199683,
976
+ "std_success": 0.07781968814460603
977
+ },
978
+ "StackCube-v1": {
979
+ "mean_num_groups": 93.33333333333333,
980
+ "mean_success": 0.20044030044030045,
981
+ "std_success": 0.08896982358351117
982
+ }
983
+ },
984
+ "seed_action_mse_to_best": {
985
+ "0": 0.4049635051790139,
986
+ "1": 0.3985257065668702,
987
+ "2": 0.42840892173268874
988
+ },
989
+ "seed_progress": {
990
+ "0": 0.5575027554895243,
991
+ "1": 0.5714990638326044,
992
+ "2": 0.581639973183258
993
+ },
994
+ "seed_success": {
995
+ "0": 0.35130434782608694,
996
+ "1": 0.34782608695652173,
997
+ "2": 0.36695652173913046
998
+ },
999
+ "selected_candidate_type_counts": {
1000
+ "retrieval_residual_policy_residual": 1608,
1001
+ "retrieval_residual_residual_near_miss": 7,
1002
+ "retrieval_residual_residual_near_miss+residual_no_op": 10,
1003
+ "retrieval_residual_residual_near_miss+residual_wrong_gripper": 5,
1004
+ "retrieval_residual_residual_no_op": 55,
1005
+ "retrieval_residual_residual_no_op+residual_wrong_gripper": 21,
1006
+ "retrieval_residual_residual_wrong_gripper": 19
1007
+ },
1008
+ "selected_residual_scale_counts": {
1009
+ "0.35": 1625,
1010
+ "0.4": 11,
1011
+ "0.45": 89
1012
+ },
1013
+ "selected_type_outcomes": {
1014
+ "retrieval_residual_policy_residual": {
1015
+ "count": 1608.0,
1016
+ "mean_progress": 0.5611789632519321,
1017
+ "success_rate": 0.3451492537313433
1018
+ },
1019
+ "retrieval_residual_residual_near_miss": {
1020
+ "count": 7.0,
1021
+ "mean_progress": 0.8583278954029083,
1022
+ "success_rate": 0.7142857142857143
1023
+ },
1024
+ "retrieval_residual_residual_near_miss+residual_no_op": {
1025
+ "count": 10.0,
1026
+ "mean_progress": 0.4397697255015373,
1027
+ "success_rate": 0.3
1028
+ },
1029
+ "retrieval_residual_residual_near_miss+residual_wrong_gripper": {
1030
+ "count": 5.0,
1031
+ "mean_progress": 0.7557853102684021,
1032
+ "success_rate": 0.6
1033
+ },
1034
+ "retrieval_residual_residual_no_op": {
1035
+ "count": 55.0,
1036
+ "mean_progress": 0.7199717064811425,
1037
+ "success_rate": 0.4909090909090909
1038
+ },
1039
+ "retrieval_residual_residual_no_op+residual_wrong_gripper": {
1040
+ "count": 21.0,
1041
+ "mean_progress": 0.7318444358451026,
1042
+ "success_rate": 0.5238095238095238
1043
+ },
1044
+ "retrieval_residual_residual_wrong_gripper": {
1045
+ "count": 19.0,
1046
+ "mean_progress": 0.6363769314791027,
1047
+ "success_rate": 0.47368421052631576
1048
+ }
1049
+ },
1050
+ "source": "results/h16_policy_ckpt_near_miss_policy_bc5_bestpt_retrieval_residual_k4_composemasked_grid035040045_safe_margin0p20_noopbonus0p03_summary.json",
1051
+ "std_success": 0.010190374394925787
1052
+ },
1053
  "residual_k4_consensus": {
1054
  "ci95_success": 0.04490086956521744,
1055
  "label": "K4 mean-by-type tangent consensus",
 
6007
  },
6008
  "paired_deltas": {
6009
  "best_clean - canonical_h16": {
6010
+ "ci95_delta": 0.042406376811594176,
6011
+ "left": "residual_k4_composemasked_grid035040045_noopbonus003",
6012
+ "mean_delta": 0.057971014492753624,
6013
  "right": "h16_policy_canonical",
6014
  "seed_deltas": {
6015
+ "0": 0.0678260869565217,
6016
+ "1": 0.038260869565217404,
6017
  "2": 0.06782608695652176
6018
  },
6019
  "seeds": [
 
6021
  1,
6022
  2
6023
  ],
6024
+ "std_delta": 0.01706948621951936
6025
  },
6026
  "best_clean - direct_same_ckpt": {
6027
+ "ci95_delta": 0.041064533365485906,
6028
+ "left": "residual_k4_composemasked_grid035040045_noopbonus003",
6029
+ "mean_delta": 0.07246376811594202,
6030
  "right": "near_miss_policy_bc5",
6031
  "seed_deltas": {
6032
+ "0": 0.07304347826086954,
6033
+ "1": 0.055652173913043446,
6034
  "2": 0.08869565217391306
6035
  },
6036
  "seeds": [
 
6038
  1,
6039
  2
6040
  ],
6041
+ "std_delta": 0.01652936513551684
6042
  },
6043
  "full_lattice - no_expert_lattice": {
6044
  "ci95_delta": 0.02628111194117426,
 
6094
  },
6095
  "per_task_deltas": {
6096
  "best_clean_vs_h16": {
6097
+ "LiftPegUpright-v1": 0.029344886922320512,
6098
+ "PickCube-v1": 0.1219595621769535,
6099
+ "PullCube-v1": 0.006887167413483192,
6100
+ "PushCube-v1": 0.006846429323783432,
6101
+ "StackCube-v1": 0.0594738594738595
6102
  },
6103
  "no_expert_vs_best_clean": {
6104
+ "LiftPegUpright-v1": 0.35718494358787223,
6105
+ "PickCube-v1": 0.29366195398804096,
6106
+ "PullCube-v1": -0.006261866788182552,
6107
+ "PushCube-v1": 0.043639384064915965,
6108
+ "StackCube-v1": 0.282077182077182
6109
  }
6110
  }
6111
  }
results/paper_analysis.md CHANGED
@@ -1,6 +1,6 @@
1
  # Paper Analysis
2
 
3
- Generated: `2026-06-29T13:46:02+00:00`
4
 
5
  ## Main Seed Statistics
6
 
@@ -45,6 +45,8 @@ Generated: `2026-06-29T13:46:02+00:00`
45
  | residual_k4_consensus_grid035040045_noopbonus003_consensus010 | K4 mean-by-type tangent consensus, scales 0.35/0.40/0.45, no-op bonus 0.03, consensus penalty 0.10 | 3 | 35.36% +/- 1.16 | +/- 2.88 | 56.75% | 0.397 | +5.62 pp |
46
  | residual_k4_compose_grid035040045 | K4 composed type-consensus tangents, scales 0.35/0.40/0.45 | 3 | 34.09% +/- 1.55 | +/- 3.84 | 55.96% | 0.482 | +4.35 pp |
47
  | residual_k4_compose_grid035040045_noopbonus003 | K4 composed type-consensus tangents, scales 0.35/0.40/0.45, no-op bonus 0.03 | 3 | 34.14% +/- 1.58 | +/- 3.92 | 56.00% | 0.482 | +4.41 pp |
 
 
48
  | repair_nearmiss_k4_grid025035050_margin020 | K4 near-miss-to-expert repair tangent, scales 0.25/0.35/0.50, margin 0.20 | 3 | 34.32% +/- 1.35 | +/- 3.36 | 55.97% | 0.394 | +4.58 pp |
49
  | repair_nearmiss_k4_grid035050075_margin020 | K4 near-miss-to-expert repair tangent, scales 0.35/0.50/0.75, margin 0.20 | 3 | 34.38% +/- 1.50 | +/- 3.73 | 56.05% | 0.394 | +4.64 pp |
50
  | repair_nearmiss_k4_grid025035050_margin010 | K4 near-miss-to-expert repair tangent, scales 0.25/0.35/0.50, margin 0.10 | 3 | 34.14% +/- 1.48 | +/- 3.67 | 56.01% | 0.393 | +4.41 pp |
@@ -84,8 +86,8 @@ Generated: `2026-06-29T13:46:02+00:00`
84
 
85
  | comparison | seeds | mean delta | 95% CI | seed deltas |
86
  |---|---:|---:|---:|---|
87
- | best_clean - canonical_h16 | 3 | +5.68 pp | +/- 4.37 | 0:+6.61, 1:+3.65, 2:+6.78 |
88
- | best_clean - direct_same_ckpt | 3 | +7.13 pp | +/- 4.32 | 0:+7.13, 1:+5.39, 2:+8.87 |
89
  | no_expert_lattice - canonical_h16 | 3 | +27.25 pp | +/- 8.58 | 0:+23.30, 1:+28.70, 2:+29.74 |
90
  | full_lattice - no_expert_lattice | 3 | +12.35 pp | +/- 2.63 | 0:+13.57, 1:+11.83, 2:+11.65 |
91
  | policy_candidate_lattice - no_expert_lattice | 3 | -16.29 pp | +/- 7.55 | 0:-15.48, 1:-13.74, 2:-19.65 |
@@ -94,17 +96,17 @@ Generated: `2026-06-29T13:46:02+00:00`
94
 
95
  | task | h16 policy | best clean | near-miss lattice | no-expert lattice | full lattice | clean-h16 delta | noexpert-clean gap |
96
  |---|---:|---:|---:|---:|---:|---:|---:|
97
- | LiftPegUpright-v1 | 23.06% | 26.34% | 62.90% | 61.72% | 73.19% | +3.28 pp | +35.37 pp |
98
- | PickCube-v1 | 20.59% | 32.62% | 58.13% | 62.15% | 84.19% | +12.04 pp | +29.53 pp |
99
- | PullCube-v1 | 19.79% | 20.04% | 15.02% | 19.85% | 22.41% | +0.25 pp | -0.19 pp |
100
- | PushCube-v1 | 75.06% | 75.41% | 82.54% | 80.10% | 81.92% | +0.35 pp | +4.69 pp |
101
- | StackCube-v1 | 14.10% | 20.08% | 50.41% | 48.25% | 60.83% | +5.98 pp | +28.17 pp |
102
 
103
  ## Mechanism Gap
104
 
105
- - Best clean residual transport improves over canonical h16 by +5.68 pp.
106
  - Same-state no-expert lattice improves over canonical h16 by +27.25 pp.
107
- - Remaining clean-to-same-state proposal gap is +21.57 pp.
108
  - Full lattice adds expert proposals and reaches 69.33%, a +12.35 pp gain over no-expert.
109
 
110
  ## Selection Histograms
@@ -113,8 +115,8 @@ Generated: `2026-06-29T13:46:02+00:00`
113
  - `same_state_no_expert`: lattice_near_miss=1263 (73.2%), lattice_no_op=222 (12.9%), lattice_random_negative=144 (8.3%), lattice_wrong_gripper=62 (3.6%), lattice_wrong_direction=34 (2.0%)
114
  - `same_state_policy_baseline`: policy_continuous=1022 (59.2%), lattice_near_miss=448 (26.0%), lattice_no_op=119 (6.9%), lattice_random_negative=75 (4.3%), lattice_wrong_gripper=45 (2.6%), lattice_wrong_direction=16 (0.9%)
115
  - `same_state_full`: lattice_expert=977 (56.6%), lattice_near_miss=348 (20.2%), lattice_no_op=177 (10.3%), lattice_random_negative=138 (8.0%), lattice_wrong_gripper=55 (3.2%), lattice_wrong_direction=30 (1.7%)
116
- - `residual_k4_consensus_grid035040045_noopbonus003`: retrieval_residual_policy_residual=1631 (94.6%), retrieval_residual_residual_no_op=66 (3.8%), retrieval_residual_residual_wrong_gripper=28 (1.6%)
117
- - `residual_k4_consensus_grid035040045_noopbonus003` residual scale counts: {'0.35': 1643, '0.4': 10, '0.45': 72}
118
 
119
  ## Selected-Type Outcomes
120
 
 
1
  # Paper Analysis
2
 
3
+ Generated: `2026-06-29T15:56:21+00:00`
4
 
5
  ## Main Seed Statistics
6
 
 
45
  | residual_k4_consensus_grid035040045_noopbonus003_consensus010 | K4 mean-by-type tangent consensus, scales 0.35/0.40/0.45, no-op bonus 0.03, consensus penalty 0.10 | 3 | 35.36% +/- 1.16 | +/- 2.88 | 56.75% | 0.397 | +5.62 pp |
46
  | residual_k4_compose_grid035040045 | K4 composed type-consensus tangents, scales 0.35/0.40/0.45 | 3 | 34.09% +/- 1.55 | +/- 3.84 | 55.96% | 0.482 | +4.35 pp |
47
  | residual_k4_compose_grid035040045_noopbonus003 | K4 composed type-consensus tangents, scales 0.35/0.40/0.45, no-op bonus 0.03 | 3 | 34.14% +/- 1.58 | +/- 3.92 | 56.00% | 0.482 | +4.41 pp |
48
+ | residual_k4_composemasked_grid035040045 | K4 composed type-consensus tangents, masked, scales 0.35/0.40/0.45 | 3 | 35.30% +/- 1.22 | +/- 3.02 | 56.91% | 0.410 | +5.57 pp |
49
+ | residual_k4_composemasked_grid035040045_noopbonus003 | K4 composed type-consensus tangents, masked, scales 0.35/0.40/0.45, no-op bonus 0.03 | 3 | 35.54% +/- 1.02 | +/- 2.53 | 57.02% | 0.411 | +5.80 pp |
50
  | repair_nearmiss_k4_grid025035050_margin020 | K4 near-miss-to-expert repair tangent, scales 0.25/0.35/0.50, margin 0.20 | 3 | 34.32% +/- 1.35 | +/- 3.36 | 55.97% | 0.394 | +4.58 pp |
51
  | repair_nearmiss_k4_grid035050075_margin020 | K4 near-miss-to-expert repair tangent, scales 0.35/0.50/0.75, margin 0.20 | 3 | 34.38% +/- 1.50 | +/- 3.73 | 56.05% | 0.394 | +4.64 pp |
52
  | repair_nearmiss_k4_grid025035050_margin010 | K4 near-miss-to-expert repair tangent, scales 0.25/0.35/0.50, margin 0.10 | 3 | 34.14% +/- 1.48 | +/- 3.67 | 56.01% | 0.393 | +4.41 pp |
 
86
 
87
  | comparison | seeds | mean delta | 95% CI | seed deltas |
88
  |---|---:|---:|---:|---|
89
+ | best_clean - canonical_h16 | 3 | +5.80 pp | +/- 4.24 | 0:+6.78, 1:+3.83, 2:+6.78 |
90
+ | best_clean - direct_same_ckpt | 3 | +7.25 pp | +/- 4.11 | 0:+7.30, 1:+5.57, 2:+8.87 |
91
  | no_expert_lattice - canonical_h16 | 3 | +27.25 pp | +/- 8.58 | 0:+23.30, 1:+28.70, 2:+29.74 |
92
  | full_lattice - no_expert_lattice | 3 | +12.35 pp | +/- 2.63 | 0:+13.57, 1:+11.83, 2:+11.65 |
93
  | policy_candidate_lattice - no_expert_lattice | 3 | -16.29 pp | +/- 7.55 | 0:-15.48, 1:-13.74, 2:-19.65 |
 
96
 
97
  | task | h16 policy | best clean | near-miss lattice | no-expert lattice | full lattice | clean-h16 delta | noexpert-clean gap |
98
  |---|---:|---:|---:|---:|---:|---:|---:|
99
+ | LiftPegUpright-v1 | 23.06% | 26.00% | 62.90% | 61.72% | 73.19% | +2.93 pp | +35.72 pp |
100
+ | PickCube-v1 | 20.59% | 32.78% | 58.13% | 62.15% | 84.19% | +12.20 pp | +29.37 pp |
101
+ | PullCube-v1 | 19.79% | 20.47% | 15.02% | 19.85% | 22.41% | +0.69 pp | -0.63 pp |
102
+ | PushCube-v1 | 75.06% | 75.74% | 82.54% | 80.10% | 81.92% | +0.68 pp | +4.36 pp |
103
+ | StackCube-v1 | 14.10% | 20.04% | 50.41% | 48.25% | 60.83% | +5.95 pp | +28.21 pp |
104
 
105
  ## Mechanism Gap
106
 
107
+ - Best clean residual transport improves over canonical h16 by +5.80 pp.
108
  - Same-state no-expert lattice improves over canonical h16 by +27.25 pp.
109
+ - Remaining clean-to-same-state proposal gap is +21.45 pp.
110
  - Full lattice adds expert proposals and reaches 69.33%, a +12.35 pp gain over no-expert.
111
 
112
  ## Selection Histograms
 
115
  - `same_state_no_expert`: lattice_near_miss=1263 (73.2%), lattice_no_op=222 (12.9%), lattice_random_negative=144 (8.3%), lattice_wrong_gripper=62 (3.6%), lattice_wrong_direction=34 (2.0%)
116
  - `same_state_policy_baseline`: policy_continuous=1022 (59.2%), lattice_near_miss=448 (26.0%), lattice_no_op=119 (6.9%), lattice_random_negative=75 (4.3%), lattice_wrong_gripper=45 (2.6%), lattice_wrong_direction=16 (0.9%)
117
  - `same_state_full`: lattice_expert=977 (56.6%), lattice_near_miss=348 (20.2%), lattice_no_op=177 (10.3%), lattice_random_negative=138 (8.0%), lattice_wrong_gripper=55 (3.2%), lattice_wrong_direction=30 (1.7%)
118
+ - `residual_k4_composemasked_grid035040045_noopbonus003`: retrieval_residual_policy_residual=1608 (93.2%), retrieval_residual_residual_no_op=55 (3.2%), retrieval_residual_residual_no_op+residual_wrong_gripper=21 (1.2%), retrieval_residual_residual_wrong_gripper=19 (1.1%), retrieval_residual_residual_near_miss+residual_no_op=10 (0.6%), retrieval_residual_residual_near_miss=7 (0.4%), retrieval_residual_residual_near_miss+residual_wrong_gripper=5 (0.3%)
119
+ - `residual_k4_composemasked_grid035040045_noopbonus003` residual scale counts: {'0.35': 1625, '0.4': 11, '0.45': 89}
120
 
121
  ## Selected-Type Outcomes
122
 
results/paper_table_status.json CHANGED
@@ -1258,6 +1258,44 @@
1258
  "best_config": null,
1259
  "gain_vs_h16_policy": 0.04405797101449277
1260
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1261
  {
1262
  "key": "retrieval_repair_nearmiss_k4_grid025035050_margin020",
1263
  "label": "K4 near-miss-to-expert repair tangent, scales 0.25/0.35/0.50, margin 0.20",
@@ -2305,23 +2343,23 @@
2305
  }
2306
  ],
2307
  "best_clean": {
2308
- "key": "retrieval_residual_k4_mean_grid035040045_noopbonus003",
2309
- "label": "K4 mean-by-type residual retrieval, scales 0.35/0.40/0.45, margin 0.20, no-op bonus 0.03",
2310
- "path": "h16_policy_ckpt_near_miss_policy_bc5_bestpt_retrieval_residual_k4_grid035040045_safe_margin0p20_mean_by_type_noopbonus0p03_summary.json",
2311
  "clean_deployment": "yes",
2312
  "same_state_proposals": "no",
2313
  "expert_proposal": "no",
2314
- "story_role": "scale-grid diagnostic for sparse mean-consensus residual transport",
2315
  "fallback_success": null,
2316
- "pending_job": "14897988/14897990",
2317
  "path_exists": true,
2318
  "status": "complete",
2319
- "success": 0.3542028985507247,
2320
- "std_success": 0.011181044360571544,
2321
  "completed_seeds": null,
2322
  "num_completed": 3,
2323
  "best_config": null,
2324
- "gain_vs_h16_policy": 0.05681159420289861
2325
  },
2326
  "best_mechanism_no_expert": {
2327
  "key": "no_expert_lattice",
@@ -2346,7 +2384,7 @@
2346
  "Use no-expert same-state lattice as the conservative mechanism result, not as deployment-clean inference.",
2347
  "Use full lattice only as an upper result because it includes expert proposals.",
2348
  "Do not claim external SOTA from this table alone; add current external baselines separately.",
2349
- "Current best clean deployment row is K4 mean-by-type residual retrieval, scales 0.35/0.40/0.45, margin 0.20, no-op bonus 0.03 at 35.42%.",
2350
  "Trust-region field optimization should be framed as a negative/diagnostic ablation.",
2351
  "Train-state counterfactual residual retrieval is a positive clean bridge but remains below the current clean best.",
2352
  "KNN counterfactual residual retrieval is a positive clean bridge but remains below the current clean best.",
 
1258
  "best_config": null,
1259
  "gain_vs_h16_policy": 0.04405797101449277
1260
  },
1261
+ {
1262
+ "key": "retrieval_residual_k4_composemasked_grid035040045",
1263
+ "label": "K4 composed type-consensus residual retrieval, masked, scales 0.35/0.40/0.45, margin 0.20",
1264
+ "path": "h16_policy_ckpt_near_miss_policy_bc5_bestpt_retrieval_residual_k4_composemasked_grid035040045_safe_margin0p20_summary.json",
1265
+ "clean_deployment": "yes",
1266
+ "same_state_proposals": "no",
1267
+ "expert_proposal": "no",
1268
+ "story_role": "local tangent composition with anti-goal composite masks",
1269
+ "fallback_success": null,
1270
+ "pending_job": "14911979/14911982",
1271
+ "path_exists": true,
1272
+ "status": "complete",
1273
+ "success": 0.35304347826086957,
1274
+ "std_success": 0.012173913043478276,
1275
+ "completed_seeds": null,
1276
+ "num_completed": 3,
1277
+ "best_config": null,
1278
+ "gain_vs_h16_policy": 0.0556521739130435
1279
+ },
1280
+ {
1281
+ "key": "retrieval_residual_k4_composemasked_grid035040045_noopbonus003",
1282
+ "label": "K4 composed type-consensus residual retrieval, masked, scales 0.35/0.40/0.45, margin 0.20, no-op bonus 0.03",
1283
+ "path": "h16_policy_ckpt_near_miss_policy_bc5_bestpt_retrieval_residual_k4_composemasked_grid035040045_safe_margin0p20_noopbonus0p03_summary.json",
1284
+ "clean_deployment": "yes",
1285
+ "same_state_proposals": "no",
1286
+ "expert_proposal": "no",
1287
+ "story_role": "local tangent composition with anti-goal composite masks on the current best typed prior",
1288
+ "fallback_success": null,
1289
+ "pending_job": "14911980/14911983",
1290
+ "path_exists": true,
1291
+ "status": "complete",
1292
+ "success": 0.3553623188405797,
1293
+ "std_success": 0.010190374394925787,
1294
+ "completed_seeds": null,
1295
+ "num_completed": 3,
1296
+ "best_config": null,
1297
+ "gain_vs_h16_policy": 0.05797101449275366
1298
+ },
1299
  {
1300
  "key": "retrieval_repair_nearmiss_k4_grid025035050_margin020",
1301
  "label": "K4 near-miss-to-expert repair tangent, scales 0.25/0.35/0.50, margin 0.20",
 
2343
  }
2344
  ],
2345
  "best_clean": {
2346
+ "key": "retrieval_residual_k4_composemasked_grid035040045_noopbonus003",
2347
+ "label": "K4 composed type-consensus residual retrieval, masked, scales 0.35/0.40/0.45, margin 0.20, no-op bonus 0.03",
2348
+ "path": "h16_policy_ckpt_near_miss_policy_bc5_bestpt_retrieval_residual_k4_composemasked_grid035040045_safe_margin0p20_noopbonus0p03_summary.json",
2349
  "clean_deployment": "yes",
2350
  "same_state_proposals": "no",
2351
  "expert_proposal": "no",
2352
+ "story_role": "local tangent composition with anti-goal composite masks on the current best typed prior",
2353
  "fallback_success": null,
2354
+ "pending_job": "14911980/14911983",
2355
  "path_exists": true,
2356
  "status": "complete",
2357
+ "success": 0.3553623188405797,
2358
+ "std_success": 0.010190374394925787,
2359
  "completed_seeds": null,
2360
  "num_completed": 3,
2361
  "best_config": null,
2362
+ "gain_vs_h16_policy": 0.05797101449275366
2363
  },
2364
  "best_mechanism_no_expert": {
2365
  "key": "no_expert_lattice",
 
2384
  "Use no-expert same-state lattice as the conservative mechanism result, not as deployment-clean inference.",
2385
  "Use full lattice only as an upper result because it includes expert proposals.",
2386
  "Do not claim external SOTA from this table alone; add current external baselines separately.",
2387
+ "Current best clean deployment row is K4 composed type-consensus residual retrieval, masked, scales 0.35/0.40/0.45, margin 0.20, no-op bonus 0.03 at 35.54%.",
2388
  "Trust-region field optimization should be framed as a negative/diagnostic ablation.",
2389
  "Train-state counterfactual residual retrieval is a positive clean bridge but remains below the current clean best.",
2390
  "KNN counterfactual residual retrieval is a positive clean bridge but remains below the current clean best.",
results/paper_table_status.md CHANGED
@@ -69,6 +69,8 @@ Baseline h=16 policy: 29.74%
69
  | retrieval_residual_k4_mean_grid035040045_noopbonus003_consensus010 | K4 mean-by-type residual retrieval, scales 0.35/0.40/0.45, margin 0.20, no-op bonus 0.03, consensus penalty 0.10 | complete | 35.36% | +5.62 pp | yes | no | no | train-neighbor tangent-consensus confidence on the current best typed prior |
70
  | retrieval_residual_k4_compose_grid035040045 | K4 composed type-consensus residual retrieval, scales 0.35/0.40/0.45, margin 0.20 | complete | 34.09% | +4.35 pp | yes | no | no | local tangent composition without typed priors |
71
  | retrieval_residual_k4_compose_grid035040045_noopbonus003 | K4 composed type-consensus residual retrieval, scales 0.35/0.40/0.45, margin 0.20, no-op bonus 0.03 | complete | 34.14% | +4.41 pp | yes | no | no | local tangent composition on the current best typed prior |
 
 
72
  | retrieval_repair_nearmiss_k4_grid025035050_margin020 | K4 near-miss-to-expert repair tangent, scales 0.25/0.35/0.50, margin 0.20 | complete | 34.32% | +4.58 pp | yes | no | no | deployment-clean corrective tangent transport from train near-misses back toward expert actions |
73
  | retrieval_repair_nearmiss_k4_grid035050075_margin020 | K4 near-miss-to-expert repair tangent, scales 0.35/0.50/0.75, margin 0.20 | complete | 34.38% | +4.64 pp | yes | no | no | repair-tangent scale diagnostic for near-miss counterfactual geometry |
74
  | retrieval_repair_nearmiss_k4_grid025035050_margin010 | K4 near-miss-to-expert repair tangent, scales 0.25/0.35/0.50, margin 0.10 | complete | 34.14% | +4.41 pp | yes | no | no | repair-tangent abstention diagnostic for near-miss counterfactual geometry |
@@ -130,7 +132,7 @@ Baseline h=16 policy: 29.74%
130
  - Use no-expert same-state lattice as the conservative mechanism result, not as deployment-clean inference.
131
  - Use full lattice only as an upper result because it includes expert proposals.
132
  - Do not claim external SOTA from this table alone; add current external baselines separately.
133
- - Current best clean deployment row is K4 mean-by-type residual retrieval, scales 0.35/0.40/0.45, margin 0.20, no-op bonus 0.03 at 35.42%.
134
  - Trust-region field optimization should be framed as a negative/diagnostic ablation.
135
  - Train-state counterfactual residual retrieval is a positive clean bridge but remains below the current clean best.
136
  - KNN counterfactual residual retrieval is a positive clean bridge but remains below the current clean best.
 
69
  | retrieval_residual_k4_mean_grid035040045_noopbonus003_consensus010 | K4 mean-by-type residual retrieval, scales 0.35/0.40/0.45, margin 0.20, no-op bonus 0.03, consensus penalty 0.10 | complete | 35.36% | +5.62 pp | yes | no | no | train-neighbor tangent-consensus confidence on the current best typed prior |
70
  | retrieval_residual_k4_compose_grid035040045 | K4 composed type-consensus residual retrieval, scales 0.35/0.40/0.45, margin 0.20 | complete | 34.09% | +4.35 pp | yes | no | no | local tangent composition without typed priors |
71
  | retrieval_residual_k4_compose_grid035040045_noopbonus003 | K4 composed type-consensus residual retrieval, scales 0.35/0.40/0.45, margin 0.20, no-op bonus 0.03 | complete | 34.14% | +4.41 pp | yes | no | no | local tangent composition on the current best typed prior |
72
+ | retrieval_residual_k4_composemasked_grid035040045 | K4 composed type-consensus residual retrieval, masked, scales 0.35/0.40/0.45, margin 0.20 | complete | 35.30% | +5.57 pp | yes | no | no | local tangent composition with anti-goal composite masks |
73
+ | retrieval_residual_k4_composemasked_grid035040045_noopbonus003 | K4 composed type-consensus residual retrieval, masked, scales 0.35/0.40/0.45, margin 0.20, no-op bonus 0.03 | complete | 35.54% | +5.80 pp | yes | no | no | local tangent composition with anti-goal composite masks on the current best typed prior |
74
  | retrieval_repair_nearmiss_k4_grid025035050_margin020 | K4 near-miss-to-expert repair tangent, scales 0.25/0.35/0.50, margin 0.20 | complete | 34.32% | +4.58 pp | yes | no | no | deployment-clean corrective tangent transport from train near-misses back toward expert actions |
75
  | retrieval_repair_nearmiss_k4_grid035050075_margin020 | K4 near-miss-to-expert repair tangent, scales 0.35/0.50/0.75, margin 0.20 | complete | 34.38% | +4.64 pp | yes | no | no | repair-tangent scale diagnostic for near-miss counterfactual geometry |
76
  | retrieval_repair_nearmiss_k4_grid025035050_margin010 | K4 near-miss-to-expert repair tangent, scales 0.25/0.35/0.50, margin 0.10 | complete | 34.14% | +4.41 pp | yes | no | no | repair-tangent abstention diagnostic for near-miss counterfactual geometry |
 
132
  - Use no-expert same-state lattice as the conservative mechanism result, not as deployment-clean inference.
133
  - Use full lattice only as an upper result because it includes expert proposals.
134
  - Do not claim external SOTA from this table alone; add current external baselines separately.
135
+ - Current best clean deployment row is K4 composed type-consensus residual retrieval, masked, scales 0.35/0.40/0.45, margin 0.20, no-op bonus 0.03 at 35.54%.
136
  - Trust-region field optimization should be framed as a negative/diagnostic ablation.
137
  - Train-state counterfactual residual retrieval is a positive clean bridge but remains below the current clean best.
138
  - KNN counterfactual residual retrieval is a positive clean bridge but remains below the current clean best.
scripts/build_paper_analysis.py CHANGED
@@ -14,7 +14,13 @@ RESULTS_DIR = Path("results")
14
  OUT_JSON = RESULTS_DIR / "paper_analysis.json"
15
  OUT_MD = RESULTS_DIR / "paper_analysis.md"
16
  CANONICAL_H16_ROLLOUT = Path("/scratch/knguy52/dovla/experiments/dovla_h16_rollout_runs")
17
- BEST_CLEAN_KEY = "residual_k4_consensus_grid035040045_noopbonus003"
 
 
 
 
 
 
18
 
19
 
20
  @dataclass(frozen=True)
@@ -807,6 +813,22 @@ def _load_methods() -> dict[str, dict[str, Any]]:
807
  return methods
808
 
809
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
810
  def _paired_delta(
811
  methods: dict[str, dict[str, Any]],
812
  left: str,
@@ -854,6 +876,7 @@ def _pp(value: float) -> str:
854
 
855
  def _render_markdown(report: dict[str, Any]) -> str:
856
  methods = report["methods"]
 
857
  lines = [
858
  "# Paper Analysis",
859
  "",
@@ -911,7 +934,7 @@ def _render_markdown(report: dict[str, Any]) -> str:
911
  tasks = sorted(methods["h16_policy_canonical"].get("per_task_success", {}))
912
  for task in tasks:
913
  h16 = methods["h16_policy_canonical"]["per_task_success"][task]["mean_success"]
914
- clean = methods[BEST_CLEAN_KEY]["per_task_success"][task]["mean_success"]
915
  near = methods["same_state_near_miss"]["per_task_success"][task]["mean_success"]
916
  noexpert = methods["same_state_no_expert"]["per_task_success"][task]["mean_success"]
917
  full = methods["same_state_full"]["per_task_success"][task]["mean_success"]
@@ -933,7 +956,7 @@ def _render_markdown(report: dict[str, Any]) -> str:
933
  "",
934
  ]
935
  )
936
- for key in ["same_state_near_miss", "same_state_no_expert", "same_state_policy_baseline", "same_state_full", BEST_CLEAN_KEY]:
937
  counts = methods[key].get("selected_candidate_type_counts", {})
938
  if counts:
939
  total = sum(int(value) for value in counts.values())
@@ -944,9 +967,9 @@ def _render_markdown(report: dict[str, Any]) -> str:
944
  else:
945
  summary = "not recorded"
946
  lines.append(f"- `{key}`: {summary}")
947
- scale_counts = methods[BEST_CLEAN_KEY].get("selected_residual_scale_counts", {})
948
  if scale_counts:
949
- lines.append(f"- `{BEST_CLEAN_KEY}` residual scale counts: {scale_counts}")
950
  lines.extend(
951
  [
952
  "",
@@ -994,9 +1017,10 @@ def _render_markdown(report: dict[str, Any]) -> str:
994
 
995
  def build_report() -> dict[str, Any]:
996
  methods = _load_methods()
 
997
  paired_deltas = {
998
- "best_clean - canonical_h16": _paired_delta(methods, BEST_CLEAN_KEY, "h16_policy_canonical"),
999
- "best_clean - direct_same_ckpt": _paired_delta(methods, BEST_CLEAN_KEY, "near_miss_policy_bc5"),
1000
  "no_expert_lattice - canonical_h16": _paired_delta(methods, "same_state_no_expert", "h16_policy_canonical"),
1001
  "full_lattice - no_expert_lattice": _paired_delta(methods, "same_state_full", "same_state_no_expert"),
1002
  "policy_candidate_lattice - no_expert_lattice": _paired_delta(
@@ -1006,14 +1030,14 @@ def build_report() -> dict[str, Any]:
1006
  ),
1007
  }
1008
  mechanism_gap = {
1009
- "best_clean_vs_h16": methods[BEST_CLEAN_KEY]["mean_success"]
1010
  - methods["h16_policy_canonical"]["mean_success"],
1011
- "best_clean_vs_direct_same_ckpt": methods[BEST_CLEAN_KEY]["mean_success"]
1012
  - methods["near_miss_policy_bc5"]["mean_success"],
1013
  "same_state_no_expert_vs_h16": methods["same_state_no_expert"]["mean_success"]
1014
  - methods["h16_policy_canonical"]["mean_success"],
1015
  "same_state_no_expert_vs_best_clean": methods["same_state_no_expert"]["mean_success"]
1016
- - methods[BEST_CLEAN_KEY]["mean_success"],
1017
  "same_state_full_vs_no_expert": methods["same_state_full"]["mean_success"]
1018
  - methods["same_state_no_expert"]["mean_success"],
1019
  }
@@ -1022,11 +1046,11 @@ def build_report() -> dict[str, Any]:
1022
  "methods": methods,
1023
  "paired_deltas": paired_deltas,
1024
  "per_task_deltas": {
1025
- "best_clean_vs_h16": _per_task_delta(methods, BEST_CLEAN_KEY, "h16_policy_canonical"),
1026
- "no_expert_vs_best_clean": _per_task_delta(methods, "same_state_no_expert", BEST_CLEAN_KEY),
1027
  },
1028
  "mechanism_gap": mechanism_gap,
1029
- "best_clean_key": BEST_CLEAN_KEY,
1030
  }
1031
 
1032
 
 
14
  OUT_JSON = RESULTS_DIR / "paper_analysis.json"
15
  OUT_MD = RESULTS_DIR / "paper_analysis.md"
16
  CANONICAL_H16_ROLLOUT = Path("/scratch/knguy52/dovla/experiments/dovla_h16_rollout_runs")
17
+ FALLBACK_BEST_CLEAN_KEY = "residual_k4_consensus_grid035040045_noopbonus003"
18
+ NON_DEPLOYMENT_KEYS = {
19
+ "same_state_near_miss",
20
+ "same_state_no_expert",
21
+ "same_state_policy_baseline",
22
+ "same_state_full",
23
+ }
24
 
25
 
26
  @dataclass(frozen=True)
 
813
  return methods
814
 
815
 
816
+ def _best_clean_key(methods: dict[str, dict[str, Any]]) -> str:
817
+ candidates: list[tuple[float, str]] = []
818
+ for spec in METHODS:
819
+ if spec.key in NON_DEPLOYMENT_KEYS:
820
+ continue
821
+ method = methods.get(spec.key, {})
822
+ if method.get("missing"):
823
+ continue
824
+ success = method.get("mean_success")
825
+ if isinstance(success, (int, float)) and math.isfinite(float(success)):
826
+ candidates.append((float(success), spec.key))
827
+ if not candidates:
828
+ return FALLBACK_BEST_CLEAN_KEY
829
+ return max(candidates)[1]
830
+
831
+
832
  def _paired_delta(
833
  methods: dict[str, dict[str, Any]],
834
  left: str,
 
876
 
877
  def _render_markdown(report: dict[str, Any]) -> str:
878
  methods = report["methods"]
879
+ best_clean_key = report["best_clean_key"]
880
  lines = [
881
  "# Paper Analysis",
882
  "",
 
934
  tasks = sorted(methods["h16_policy_canonical"].get("per_task_success", {}))
935
  for task in tasks:
936
  h16 = methods["h16_policy_canonical"]["per_task_success"][task]["mean_success"]
937
+ clean = methods[best_clean_key]["per_task_success"][task]["mean_success"]
938
  near = methods["same_state_near_miss"]["per_task_success"][task]["mean_success"]
939
  noexpert = methods["same_state_no_expert"]["per_task_success"][task]["mean_success"]
940
  full = methods["same_state_full"]["per_task_success"][task]["mean_success"]
 
956
  "",
957
  ]
958
  )
959
+ for key in ["same_state_near_miss", "same_state_no_expert", "same_state_policy_baseline", "same_state_full", best_clean_key]:
960
  counts = methods[key].get("selected_candidate_type_counts", {})
961
  if counts:
962
  total = sum(int(value) for value in counts.values())
 
967
  else:
968
  summary = "not recorded"
969
  lines.append(f"- `{key}`: {summary}")
970
+ scale_counts = methods[best_clean_key].get("selected_residual_scale_counts", {})
971
  if scale_counts:
972
+ lines.append(f"- `{best_clean_key}` residual scale counts: {scale_counts}")
973
  lines.extend(
974
  [
975
  "",
 
1017
 
1018
  def build_report() -> dict[str, Any]:
1019
  methods = _load_methods()
1020
+ best_clean_key = _best_clean_key(methods)
1021
  paired_deltas = {
1022
+ "best_clean - canonical_h16": _paired_delta(methods, best_clean_key, "h16_policy_canonical"),
1023
+ "best_clean - direct_same_ckpt": _paired_delta(methods, best_clean_key, "near_miss_policy_bc5"),
1024
  "no_expert_lattice - canonical_h16": _paired_delta(methods, "same_state_no_expert", "h16_policy_canonical"),
1025
  "full_lattice - no_expert_lattice": _paired_delta(methods, "same_state_full", "same_state_no_expert"),
1026
  "policy_candidate_lattice - no_expert_lattice": _paired_delta(
 
1030
  ),
1031
  }
1032
  mechanism_gap = {
1033
+ "best_clean_vs_h16": methods[best_clean_key]["mean_success"]
1034
  - methods["h16_policy_canonical"]["mean_success"],
1035
+ "best_clean_vs_direct_same_ckpt": methods[best_clean_key]["mean_success"]
1036
  - methods["near_miss_policy_bc5"]["mean_success"],
1037
  "same_state_no_expert_vs_h16": methods["same_state_no_expert"]["mean_success"]
1038
  - methods["h16_policy_canonical"]["mean_success"],
1039
  "same_state_no_expert_vs_best_clean": methods["same_state_no_expert"]["mean_success"]
1040
+ - methods[best_clean_key]["mean_success"],
1041
  "same_state_full_vs_no_expert": methods["same_state_full"]["mean_success"]
1042
  - methods["same_state_no_expert"]["mean_success"],
1043
  }
 
1046
  "methods": methods,
1047
  "paired_deltas": paired_deltas,
1048
  "per_task_deltas": {
1049
+ "best_clean_vs_h16": _per_task_delta(methods, best_clean_key, "h16_policy_canonical"),
1050
+ "no_expert_vs_best_clean": _per_task_delta(methods, "same_state_no_expert", best_clean_key),
1051
  },
1052
  "mechanism_gap": mechanism_gap,
1053
+ "best_clean_key": best_clean_key,
1054
  }
1055
 
1056