Skip to content

pm-dispatch: re-read the PR head before trusting any check_suite.completed event — the event can name a stale SHA (#15803 section B2) #16372

Description

@claude

Split out of #15803 (section B2) by the skills seat at grading, as that card's triage prescribed; the maintainer's principle question in #15803 section A stays on that card.

The reading

A check_suite.completed event can name a head that is no longer the PR's head. Measured by the domain:spec @ objectui seat on 2026-09-05: the event named dfec57b5e while the PR's actual head was e46a218c9. Acting on it would have flipped a Clause-② PR ready on evidence from a commit no longer on the branch.

The protocol's existing corrective — read the full check farm by name on the head, then arm — already prevents the bad outcome, but it reads as being about aggregate-vs-by-name. This is a distinct failure: right method, wrong commit.

The rule to land

One clause in .claude/skills/pm-dispatch/SKILL.md's 入队与落地 block (line-neutral, paid by a fold in the same block): before trusting any suite or check event, re-read the PR object and take the head from it; a check reading is bound to that head, never to the event's SHA. references/platform-readings.md gains the fact as one line in the fifth readings increment (with #15977 · #16006 · #16104 section 1 · #15803 section C), not here.

Acceptance

  • SKILL.md 811/811 (pin 342), the clause in the 落地 block; check-skill-line-ratchet, check-skill-id-lint, check-skill-frame-sync, check-governed-prose, check-half-states --self-test, check-governed-merges --test exit 3, whole-repo lint — exits captured before any pipe.
  • Governed (.claude/**): draft PR, seat review, os-zhuang + hotlong, human merge.

Serial

SKILL.md is held by PR #16339 (flight A) and PR #16271 (devx); this card folds into the SKILL.md flight that follows both (with #16352 and #16229 — same file, same register, no conflicting ruling).

Refs #15803.


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions