risk tier: a SHIP review receipt at the head signs off high

Merged
TE
16d ago
+148-46

Leo's call (2026-10-21): risk:high needs no human label. An independent review receipt Review (<reviewer>): SHIP at <full head sha> on the exact head, plus a green compile, is enough. The risk label stays as information.

  • CLAUDE.md: the risk tier bullet now says this. Agents never need a label.
  • scripts/ci/risk_tier.py: risk evidence accepts the receipt from the PR's comments.
    • The newest verdict naming the full head sha decides, so a later BLOCK beats an earlier SHIP and a push needs a new receipt.
    • Self-reviews, bots and outside accounts don't count.
    • A collaborator approval or risk:human-ok from a maintainer still works.
    • The green compile is already required on every tier by the merge path (next_autoland, merge_audit, the HQ hook), so this check doesn't repeat it.
  • docs/ci/risk-tiers.md: the same rule. tests/test_risk_tier.py: 5 receipt cases (34 tests pass).

The risk evidence workflow runs from main only (pull_request_target), and the feat copy never registers. #22974 brings it to main. The merge-path enforcers in leo-workspace and HQ get the same change in their own PRs.

Risk: high (it changes the risk gate).

Agent session: cosmic-gray

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.


Summary by cubic

Lets high-risk PRs merge on an independent review receipt on the exact head plus a green compile, so agents never need a risk:human-ok label.

  • risk evidence reads receipt lines like Review (<reviewer>): SHIP at <full head sha> as one timeline with approvals, change requests, and BLOCK comments, so a later Blocking verdict beats an earlier SHIP, a BLOCK wins a tie, and a push needs a new receipt.
  • Self-reviews, bots, and outside accounts don't count; a collaborator approval or risk:human-ok from a maintainer still signs off.
  • A receipt or review doesn't re-trigger the check, so it needs a manual re-run or a description edit to re-grade.
  • Updates CLAUDE.md, docs/ci/risk-tiers.md, scripts/ci/risk_tier.py, scripts/gh-merge-green, and the workflow; adds 5 new test cases (34 pass).
  • The workflow runs pull_request_target from main only, so this reaches main via #22974; the merge-path enforcers get the same change in their own PRs.