Skip to content

Let a Copilot File Table Carry Forward on an Identical File Set #2272

Description

@ptr727

The Merge Gate in pr-review-conduct carries an earlier round's coverage statement forward when the pull request changes the same set of files at both commits. It does not carry an earlier round's file table forward. A table counts only on the round covering the head. Copilot's lite rounds keep producing exactly that case, so a merge that every other gate item clears goes to the maintainer as a coverage question.

Measured

Three feature PRs into develop in one session, 2026-10-01. Each had the same shape:

PR Round 1 Re-review on the next head File set between the two heads Outcome
#2265 lite, coverage=table, 12 files lite, two rounds, no table, no marker identical, 12 files maintainer accepted round 1's table
#2269 lite, coverage=table, 1 file lite, no table, no marker, "Approval recommended" identical, 1 file maintainer accepted round 1's table
#2271 lite, coverage=table, 4 files lite, no table, no marker, no findings identical, 4 files maintainer accepted round 1's table

On #2265, one explicit requestReviews re-request produced another round with no table, the same result #1692 recorded for the marker. In each case pr_review.py status exited 45 with NO FILE TABLE STANDS IN, while the digest's own change-set comparison could have shown the file set unchanged.

The question

Should a round's file table carry forward under the same bound a statement does, meaning the pull request changes exactly the set of files the table names, at both commits? The alternative is to keep the current rule, where every such PR needs the maintainer's reading.

  • Option 1: carry the table on an identical file set. It uses the bound the statement carry already uses. pr_review.py already computes the change set at both commits for the statement carry (carry_holds). It removes a maintainer prompt that has been answered the same way every time it was asked.
  • Option 2: keep the rule. A table says which files a round read. It is weaker than a marker that states a count, and a re-review on new content may have read less than the earlier round did. The maintainer's reading stays the safeguard.

A partial table, or a round that states partial coverage, would still go to the maintainer either way.

🤖 Generated with 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

    Labels

    gateA rule with no mechanical check, or a check that misses a shape

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions