What
When a PR is un-mergeable because of the required_signatures rule, temper should comment on the PR naming the offending commit(s) and the fix ("commit X is unsigned/unverifiable — rebase to re-sign"). Today the state is illegible: the PR sits mergeStateStatus: BLOCKED with every check green, and nothing — not the check list, not reviewDecision, not the merge button — names signatures.
Detection is straightforward from the API temper already uses: blocked merge state + all green checks + a commit in the range with verification.verified == false (or %G? ∉ {G}).
Why — three repos hit it independently this week
- gale (#323): a
-c commit.gpgsign=false commit left a PR BLOCKED with all 61 checks green; diagnosed only via git log --format='%G?' plus the protection API. "Keep the rule; the wish is that the blocked state say why."
- ordeal (#130): a PR sat BLOCKED-all-green from an unverifiable signature (email identity mismatch); fix was rebase-to-re-sign. "A temper bot comment… would save every future maintainer the same diagnosis."
- synth (#1132): "an unsigned commit is silently unmergeable and surfaces much later as an opaque 'base branch policy prohibits the merge'."
All three explicitly keep the signed-commits rule — this is purely a legibility fix on a control everyone endorses.
From the 2026-09 org feedback round (temper#62).
What
When a PR is un-mergeable because of the
required_signaturesrule, temper should comment on the PR naming the offending commit(s) and the fix ("commit X is unsigned/unverifiable — rebase to re-sign"). Today the state is illegible: the PR sitsmergeStateStatus: BLOCKEDwith every check green, and nothing — not the check list, notreviewDecision, not the merge button — names signatures.Detection is straightforward from the API temper already uses: blocked merge state + all green checks + a commit in the range with
verification.verified == false(or%G?∉ {G}).Why — three repos hit it independently this week
-c commit.gpgsign=falsecommit left a PR BLOCKED with all 61 checks green; diagnosed only viagit log --format='%G?'plus the protection API. "Keep the rule; the wish is that the blocked state say why."All three explicitly keep the signed-commits rule — this is purely a legibility fix on a control everyone endorses.
From the 2026-09 org feedback round (temper#62).