{
  "schema": 1,
  "kind": "credit_entropy_path_audit",
  "observed_at": "2026-10-01T15:22:32+08:00",
  "scope": "CPU/source/log audit; no GPU and no training launch",
  "finding": "policy_entropy is aggregated from entropys using batch.response_mask in verl_trainer.py. credit_trainer.py only attaches credit to loss_mask-aligned credit_advantages and adds it to advantages; it does not alter response_mask or entropy. Therefore B first-step low entropy is not explained by broadcast credit changing the entropy mask. Original O/B/M launch logs share seed=42, temperature=1.0, train_batch_size=16, n_samples_per_prompt=8, and the same clean profile; B first-step policy_entropy=0.1713 versus O=0.3922 and M=0.3777 remains an unexplained run-level anomaly requiring raw batch/rollout audit or a controlled rerun before using B as the principal contrast.",
  "first_step_metrics": {
    "O": {
      "policy_entropy": 0.39223283529281616,
      "num_microbatches": 88.0,
      "grad_norm": 0.09940747916698456
    },
    "B": {
      "policy_entropy": 0.1712826043367386,
      "num_microbatches": 83.0,
      "grad_norm": 0.05550212413072586
    },
    "M": {
      "policy_entropy": 0.3776754140853882,
      "num_microbatches": 73.0,
      "grad_norm": 0.11399319032287696
    }
  },
  "source_sha256": {
    "rl/skyrl/SkyRL/skyrl-agent/skyrl_agent/integrations/verl/verl_trainer.py": "b5e720fe8c9a06b5c601bdcc13bf0273aa4eb7c89fa74b3ed6a74607d0581ffa",
    "rl/skyrl/swe_skyrl_recipe/credit_trainer.py": "c8fb5e4010719b951894df838b7b985ccd25f0df0f1720ee9ad199f2358b3d37"
  }
}
