)]}'
{
  "commit": "375e20090a0a60fd2d47ba6553d189e05482dfea",
  "tree": "9956cf954acc3d1f4b35f6866724d44e3277c355",
  "parents": [
    "60194f8d10ebc9ec1aeba559e359ebe3ca9b756b"
  ],
  "author": {
    "name": "Ha Thach",
    "email": "thach@tinyusb.org",
    "time": "Tue Aug 25 15:04:42 2026 +0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Aug 25 15:04:42 2026 +0700"
  },
  "message": "hil: make hil_report.md a rendering of hil_report.json (#3840)\n\nhil_report.json and hil_report.md were written independently. Four writers\nproduced the markdown and three wrote no JSON at all -- and those three are the\npaths where a run died, so a JSON consumer saw nothing exactly when it mattered:\nthe per-board verdicts an agent hands back reported the whole fleet as \"no\nreport row\" while a human read the real story from the markdown.\n\nEvery writer now goes through render_report(), so a table can never contain\nsomething the JSON does not. The document gains `scope` (a three-board PR run\nand a full run that lost 24 boards were indistinguishable) and `caveat` (how the\nrun ended). `banner` carries rig health across an --accumulate retry; `caveat`\nrecords how a run ended and must not -- conflating them made a clean retry\npublish an abandonment that never happened.\n\nhelper/hil_report.py owns the document end to end, dissolving the import cycle\nthat forced write_timeout_report to compose its own markdown and removing a\nduplicate cell classifier kept in sync by hand. hil_summary.py is deleted; its\nCLI moves there. hil_ci.sh uploads the sidecar so a remote --accumulate has a\nmerge bas",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a37501211ce87e0f53de9b71d45c38ac89f7718f",
      "old_mode": 33188,
      "old_path": ".claude/agents/hil-operator.md",
      "new_id": "81fdc08e9833a3567f6369070b6fb1bb1943ddbb",
      "new_mode": 33188,
      "new_path": ".claude/agents/hil-operator.md"
    },
    {
      "type": "modify",
      "old_id": "bc0bda8b9c44a2ad37d6e0ba4acd6ca24cf1d533",
      "old_mode": 33188,
      "old_path": ".claude/workflows/hil-validate.js",
      "new_id": "741ba481d8a5b488b180af8ae6b722ff53439dc6",
      "new_mode": 33188,
      "new_path": ".claude/workflows/hil-validate.js"
    },
    {
      "type": "modify",
      "old_id": "db73095f6a917c306d1febcf3e7f401e3f57e6b7",
      "old_mode": 33188,
      "old_path": ".claude/workflows/test-hil-validate.mjs",
      "new_id": "e8be57cfc9c6b01e392a2a6c2f5757362873d510",
      "new_mode": 33188,
      "new_path": ".claude/workflows/test-hil-validate.mjs"
    },
    {
      "type": "modify",
      "old_id": "69ff939b0ebdf369618288ff147586469db7fb94",
      "old_mode": 33188,
      "old_path": "docs/superpowers/followup/pr3803-hil-blindness-reporting.md",
      "new_id": "374ee62c73a302a035534c11411855d2ea3979fa",
      "new_mode": 33188,
      "new_path": "docs/superpowers/followup/pr3803-hil-blindness-reporting.md"
    },
    {
      "type": "delete",
      "old_id": "f4ccc77c2d8a971e35e290fbabdda8ac8a59c75b",
      "old_mode": 33188,
      "old_path": "docs/superpowers/followup/pr3836-report-single-source.md",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7b8da7b9cb1a1b92c3103b5897aad456f9cd4cbb",
      "new_mode": 33188,
      "new_path": "docs/superpowers/followup/pr3840-mret-board-result.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a039a8c12e2d3f24341d9609e839580c8add4fd3",
      "new_mode": 33188,
      "new_path": "docs/superpowers/followup/pr3840-skill-md-no-boards-drift.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2094207bbe064f0b0c580146c41cb3498205782f",
      "new_mode": 33188,
      "new_path": "docs/superpowers/followup/pr3840-write-report-atomicity.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5a7c832d8b0faafade73bb4354d87d8d0a6e37f5",
      "new_mode": 33188,
      "new_path": "docs/superpowers/plans/2026-08-21-hil-report-module.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "41e7000b7b873f3f94560687273a750d422b4334",
      "new_mode": 33188,
      "new_path": "docs/superpowers/specs/2026-08-21-hil-report-module-design.md"
    },
    {
      "type": "modify",
      "old_id": "92f0accc88a855c37d9d97057b63e21a668e260d",
      "old_mode": 33188,
      "old_path": "test/hil/helper/hil_health.py",
      "new_id": "aa811eeb4c5b8e98a9232c06a6bf56d5c36f595b",
      "new_mode": 33188,
      "new_path": "test/hil/helper/hil_health.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b73c030a98442ef05f3a03d4b73e05c9f583fa9b",
      "new_mode": 33188,
      "new_path": "test/hil/helper/hil_report.py"
    },
    {
      "type": "delete",
      "old_id": "e566bead028cd3603514fbf458c9b9d3bad834a5",
      "old_mode": 33188,
      "old_path": "test/hil/helper/hil_summary.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "514b0f174fbdb4f5290ef88886fe56b80c993c97",
      "old_mode": 33188,
      "old_path": "test/hil/hil_ci.sh",
      "new_id": "daa787242474d2de8b73c0e63fd633a84d37b159",
      "new_mode": 33188,
      "new_path": "test/hil/hil_ci.sh"
    },
    {
      "type": "modify",
      "old_id": "fcd7c7e6f73779a835ffa6e468e5ee9a86d75236",
      "old_mode": 33261,
      "old_path": "test/hil/hil_test.py",
      "new_id": "83e5082d4ee34c3dcb5a62bb116448b6d53cda9b",
      "new_mode": 33261,
      "new_path": "test/hil/hil_test.py"
    },
    {
      "type": "modify",
      "old_id": "c34bccd1faf9de598f4c66e18b61a3a72895b22f",
      "old_mode": 33188,
      "old_path": "test/hil/test/test_ci_select.py",
      "new_id": "f3e000cb4eff649f5b76dc153ddc416ad252d287",
      "new_mode": 33188,
      "new_path": "test/hil/test/test_ci_select.py"
    },
    {
      "type": "modify",
      "old_id": "c6d454f0e66409129a130c44cea767a13e17b999",
      "old_mode": 33188,
      "old_path": "test/hil/test/test_hil_bounded.py",
      "new_id": "715d520dbe377fddafc6ddf34a1f544c5dd98204",
      "new_mode": 33188,
      "new_path": "test/hil/test/test_hil_bounded.py"
    },
    {
      "type": "modify",
      "old_id": "5695cad6d160eae512f2f305cf41a358aa0753aa",
      "old_mode": 33188,
      "old_path": "test/hil/test/test_hil_health.py",
      "new_id": "c7864f5684526af88f851c1f3050ed4c13748f83",
      "new_mode": 33188,
      "new_path": "test/hil/test/test_hil_health.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9ab39bde3f28fcd93c433573bf959942b40df1f9",
      "new_mode": 33188,
      "new_path": "test/hil/test/test_hil_report.py"
    }
  ]
}
