)]}'
{
  "commit": "f96ddbaa1e11a98f8076df48ba73026191c28399",
  "tree": "52d56a27ca8a17bcba179f735d26ca70f22182fa",
  "parents": [
    "04d0f71984117b8c72349f4584bd9e26a37b129c"
  ],
  "author": {
    "name": "hathach",
    "email": "thach@tinyusb.org",
    "time": "Fri Aug 21 11:09:03 2026 +0700"
  },
  "committer": {
    "name": "hathach",
    "email": "thach@tinyusb.org",
    "time": "Fri Aug 21 11:09:03 2026 +0700"
  },
  "message": "docs: record the CI selection design and its plan\n\nThe binding rule table (17 rows x 3 answer columns), the measured effect per PR\nshape, and the reasoning behind the parts that look surprising: why empty means\nempty, why hw/mcu and lib are rules rather than full-matrix paths, why get_deps.py\nis diffed as data, and which build system is the reference. The plan is the\ntask-by-task record of how it was built, kept as the origin trail.\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0d8b9cfa4dfd144088fe6e62a2e421c6fd128f6b",
      "new_mode": 33188,
      "new_path": "docs/superpowers/plans/2026-08-19-ci-build-family-filter.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9fa358bee14899c4e97df0e822408fe35d6f67b5",
      "new_mode": 33188,
      "new_path": "docs/superpowers/specs/2026-08-19-ci-build-family-filter-design.md"
    }
  ]
}
