{
  "id": "analysis__sft_v1_flow_isolation_tables",
  "generated_utc": "2026-08-17T07:05Z",
  "question": "sft-v1 flow regression isolation, mechanism (c') check: does run 2's --recompute-stats pooled action table suppress flow-MSE weight on a grasp-critical channel for the sim slice?",
  "method": "per-channel normalized-space occupancy of the SIM demos' action window under each serving table (occupancy = demos q01-q99 width / table width; flow-MSE gradient weight scales as occupancy^2). Tables read from checkpoint metadata: run-2 step3000 pooled stats + its per_dataset_stats demos row; run-1b step2000 (remap-only, no recompute) rig-lineage stats.",
  "read": "SURGICAL single-channel effect: wrist_flex is the ONLY channel the pooled table compresses (occupancy 48.9% -> 0.24x gradient weight vs the demos-only table; all other channels 0.96-1.01x). Under run-1b's rig table wrist_flex sits at 81.4% (near full weight); run-1b wrist_roll OVERFLOWS its table (288% - clipping preserves gradient scale, does not suppress it). Matches the reaches-but-cannot-grasp shape: run 2 trained with quarter-weight supervision on exactly the wrist articulation channel.",
  "channels": [
    {
      "channel": "shoulder_pan",
      "demos_width_deg": 104.7,
      "run2_pooled_width_deg": 104.5,
      "run2_occupancy": 1.002,
      "run2_grad_weight_vs_demos_table": 1.0,
      "run1b_rig_width_deg": 90.7,
      "run1b_occupancy": 1.154
    },
    {
      "channel": "shoulder_lift",
      "demos_width_deg": 169.6,
      "run2_pooled_width_deg": 169.1,
      "run2_occupancy": 1.003,
      "run2_grad_weight_vs_demos_table": 1.01,
      "run1b_rig_width_deg": 140.9,
      "run1b_occupancy": 1.204
    },
    {
      "channel": "elbow_flex",
      "demos_width_deg": 134.0,
      "run2_pooled_width_deg": 136.7,
      "run2_occupancy": 0.98,
      "run2_grad_weight_vs_demos_table": 0.96,
      "run1b_rig_width_deg": 138.2,
      "run1b_occupancy": 0.969
    },
    {
      "channel": "wrist_flex",
      "demos_width_deg": 72.0,
      "run2_pooled_width_deg": 147.4,
      "run2_occupancy": 0.489,
      "run2_grad_weight_vs_demos_table": 0.24,
      "run1b_rig_width_deg": 88.5,
      "run1b_occupancy": 0.814
    },
    {
      "channel": "wrist_roll",
      "demos_width_deg": 314.4,
      "run2_pooled_width_deg": 314.4,
      "run2_occupancy": 1.0,
      "run2_grad_weight_vs_demos_table": 1.0,
      "run1b_rig_width_deg": 109.1,
      "run1b_occupancy": 2.882
    },
    {
      "channel": "gripper",
      "demos_width_deg": 41.7,
      "run2_pooled_width_deg": 41.7,
      "run2_occupancy": 1.0,
      "run2_grad_weight_vs_demos_table": 1.0,
      "run1b_rig_width_deg": 45.0,
      "run1b_occupancy": 0.925
    }
  ],
  "companion": "sim20 of run-1b step2000 (outputs/sim/grasp_sft/run1b_isolation/) is the causal discriminator: run-1b has (a) joint objective + (b) 3-dataset mix but NOT (c) the pooled table."
}
