)]}'
{
  "commit": "247eff2bcf5acaf8631a7eb9dbe43f82c5e56593",
  "tree": "f38a2d72dc9f6a62762d7cb3a1b0ff0fb8c71ff6",
  "parents": [
    "d9fa95d77166f6a5237de49d521fc317b3885b82"
  ],
  "author": {
    "name": "hathach",
    "email": "thach@tinyusb.org",
    "time": "Mon Sep 07 11:48:46 2026 +0700"
  },
  "committer": {
    "name": "hathach",
    "email": "thach@tinyusb.org",
    "time": "Mon Sep 07 11:48:46 2026 +0700"
  },
  "message": "validate: make the Claude review opt-in\n\nvalidate was the last workflow still spending a Claude review by default:\nits reviewer set was derived from `skip` alone, so an unconfigured run\nscheduled both providers. Every other caller already reached the verifier\nthrough code-verify, which defaults to Codex.\n\nTake the router\u0027s own vocabulary — reviewProvider codex|claude|both,\ndefaulting to codex — and forward it through full-check so /pre-pr can\nstill ask for the second reviewer.\n\nSkipping a reviewer that was explicitly selected is contradictory input\nand now throws: otherwise `reviewProvider: \u0027claude\u0027` plus skip:[\u0027review\u0027]\nwould report green having reviewed nothing. Skipping the default reviewer\nstays legal but is logged, since skip:[\u0027codex\u0027] used to mean \"review with\nClaude\" and now means no review at all.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6e353bf72be9c10ec2cbefa06567f785c1f72bdb",
      "old_mode": 33188,
      "old_path": ".claude/workflows/full-check.js",
      "new_id": "76c98ddb6df5e3c3099b51612ffe6dc76f975548",
      "new_mode": 33188,
      "new_path": ".claude/workflows/full-check.js"
    },
    {
      "type": "modify",
      "old_id": "16cbbd63f76cbbbec49b7295d8f380594e376e1b",
      "old_mode": 33188,
      "old_path": ".claude/workflows/test/test-code-verify.mjs",
      "new_id": "c776a2a7e358cd432e5195fbe1b4943b09ceaa39",
      "new_mode": 33188,
      "new_path": ".claude/workflows/test/test-code-verify.mjs"
    },
    {
      "type": "modify",
      "old_id": "b9465326f614957b89a655254908de07d53aba88",
      "old_mode": 33188,
      "old_path": ".claude/workflows/validate.js",
      "new_id": "ddf8daefe7806e4d683076d1243d6526a8969d2e",
      "new_mode": 33188,
      "new_path": ".claude/workflows/validate.js"
    },
    {
      "type": "modify",
      "old_id": "ebe2ba602c5c30b565ee2a149b55c411e4e3cfff",
      "old_mode": 33188,
      "old_path": "CLAUDE.md",
      "new_id": "ae42228a352f99bb6e31fe5c453ee9f474fe1c8f",
      "new_mode": 33188,
      "new_path": "CLAUDE.md"
    }
  ]
}
