Separate a review from merge evidence

A team can ask Copilot to review an open pull request manually. A usual Copilot review is a Comment, rather than an approval, and ordinarily does not satisfy a required-approval rule.

Use the commit identifier as the primary freshness boundary: a review is acceptance evidence only when the repository can associate it with the pull request’s present head and when required independent checks are complete. This is a proposed repository rule, not a provider-prescribed merge design.

A post-review push does not initiate another Copilot pass unless the automatic setup includes new pushes. Therefore, a visible earlier review should not by itself be treated as analysis of the newer commit.

Four merge-decision cases

The table applies a deliberately strict policy: “current” means that the recorded review target matches the current head. “Stale” does not say that the review is wrong; it says the repository lacks current-head evidence under this proposed rule.

CaseReview triggerReviewed head stateFreshness classificationAgentic-context availabilityApproval meaningInference to rejectIndependent validation requiredBounded repository-owned action
Initial manual review of the current headA maintainer requests the review.Record the reviewed commit and compare it with the current head.Current only when those identifiers match.Record whether Actions-backed additions were available; do not assume either state.A Comment is not, by default, required-approval evidence.Reject “a review exists, so every merge condition is met.”Perform the repository’s human and automated checks for the risk class.Permit the normal merge decision only after the recorded conditions pass.
New push when automatic review of new pushes is disabledThe later push has no automatic follow-up review.The earlier review points to an older commit.Stale.Preserve the prior availability record; it does not refresh the review.Do not carry the old Comment forward as current acceptance evidence.Reject “unchanged comments prove the new head was examined.”Require human review or a newly requested Copilot review, plus normal checks.Block merge until the team obtains the policy’s current-head evidence.
New push when automatic review of new pushes is enabledConfiguration requests review on the later push.Confirm that a resulting review is associated with the new current commit.Pending until that association is recorded; current after confirmation.Record availability for the resulting review separately.Apply the repository’s approval rules independently of the review label.Reject “a configured request proves a completed current-head review.”Validate the result and run the same independent checks.Hold merge while confirmation or required validation is absent.
Review generated while GitHub Actions is unavailable or its Copilot workflows failA review can still be produced despite that unavailable capability.Compare its recorded target with the current head as in every other case.Current or stale is determined by commit identity, not by capability level.The additional agentic facilities are unavailable.Use the normal repository approval interpretation.Reject “reduced agentic context proves the review has no value” and “it proves equivalent coverage.”Escalate to the human checks selected by local risk policy.Record the reduced context and apply the chosen escalation or merge hold.

Hypothetical Python 3.14 failure walkthrough

This scenario is illustrative and describes no executed review, test, or production outcome. Copilot reviews commit A. A later push creates commit B and introduces boolean evaluation of NotImplemented under Python 3.14. No automatic follow-up review is configured, yet the team initially treats the review of A as if it covered B.

For Python 3.14, using NotImplemented as a Boolean raises TypeError. An independent human check identifies that documented language behavior. Under the proposed contract, B remains blocked because the old review is stale; the team requests a new review for B and retains its separate human acceptance requirement.

The scenario does not assume that Copilot caused the change, ran the code, or would have reported the problem. GitHub cautions that Copilot can miss issues or err, and calls for careful validation plus human review.

Write the repository contract explicitly

Define a current-head rule, name the evidence that ties a review to that head, and state what invalidates the evidence. A conservative choice is to invalidate acceptance evidence after every push, then allow a new review or designated human review to rebuild it.

  • Specify whether freshness is exact commit identity, an elapsed interval, or both; exact identity is the clearer default when commits change.
  • Keep approval handling separate from review freshness. A current Comment can be useful input without becoming an approval substitute.
  • Choose an escalation path for reviews lacking the additional Actions-based facilities, such as extra human scrutiny or a merge hold for sensitive changes.
  • Require an explicit owner and documented rationale for any waiver.
  • Treat repeated comments during a later review as feedback to assess, not proof that the current head is safe.

These are local policy choices. They should be adjusted to the repository’s risk model, required checks, and authorized merge process rather than presented as a Copilot guarantee.

Limits of the evidence

The supplied material supports the documented review, re-review, validation, and Python 3.14 behaviors used here. It does not establish a universal freshness duration, a definition of commit equivalence, or a particular organization’s mandatory validation set. Those details need a repository decision and, where appropriate, operational verification.