Visitar URL original
Hold Local Coverage Against File Tables and Count Green Dependabot Bumps on a Promotion by ptr727 · Pull Request #4047 · ptr727/ProjectTemplate · GitHub
Skip to content

Hold Local Coverage Against File Tables and Count Green Dependabot Bumps on a Promotion - #4047

Merged
ptr727 merged 6 commits into
developfrom
feature/merge-gate-coverage-item2
Nov 11, 2026
Merged

ptr727 merged 6 commits into
developfrom
feature/merge-gate-coverage-item2

Conversation

@ptr727

@ptr727 ptr727 commented Nov 11, 2026 •

Copy link
Copy Markdown
Owner

Four changes to Merge Gate item 2's coverage, in one pull request because they edit the same paragraph.

  • An attested local pass holds against a file table. coverage() in scripts/pr_review_rounds.py now keeps coverage=local on a head its review policy hands to a local pass whatever a table-carrying round names. Only a round stating partial coverage withdraws it, as item 2 says.
  • A green Dependabot bump counts on a promotion. A new module, scripts/pr_review_promotion.py, reads a develop -> main promotion's commits back to the pull requests that landed them. A Dependabot pull request that changed only manifests and lockfiles and merged into develop with its head's rollup green counts as covered, and the head reads coverage=dependabot. pr_review.py calls it from full_read, net one line shorter, and the new module has its own ceiling.
  • A byte-identical rename needs no read evidence. RENAMED joins EXCUSED, so a rename with no changed line may go unnamed in a file table. In the promotion case, a path git diff -M100% reports as R100 needs no read evidence. The "may leave out" sentence gains "renamed" in pr-review-conduct, GOVERNANCE.md, and .github/copilot-instructions.md.
  • A direct push to develop can be attested on the promotion. pr-review-conduct item 2 now counts a pr_review.py attest attestation published on the promotion, per file in the attested head's diff, under the same conditions. A Copilot round on the final head is still required, with item 3 closed. This is skill text only.

Decisions worth a reviewer's eye:

  • A Dependabot workflow or Dockerfile bump is deliberately no manifest, since either runs as written.
  • "Green" is the head's whole rollup, because which checks were required when a pull request merged is not on the payload. A failing optional check therefore sends the bump to the maintainer.
  • One commit that cannot be read back to a pull request into develop, a direct push among them, withdraws the whole reading.

Closes on promotion: #3955, #3909, #3901, #3905

🤖 Generated with Claude Code

ptr727 and others added 3 commits November 10, 2026 16:13
…endabot Bumps

Hold an attested local pass at `coverage=local` whatever a round's file
table names, so only a stated-partial round withdraws it.

Let a file table leave out a renamed file with no changed line, and let
the promotion case skip a path `git diff -M100%` reports as `R100`.

Read a promotion's commits back to the pull requests that landed them in
a new `pr_review_promotion.py`, and count a green Dependabot manifest or
lockfile bump as covered, reading `coverage=dependabot`.

Count an attestation published on a promotion for a change pushed
directly to `develop`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Take a bumped path out of a file table as well as the changed-file
list, count the dotnet tools manifest, and name only the pull requests
behind a counted path.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A table row naming only a path a green bump took out leaves the match,
the rollup read reuses the head-commit reader, and the runbook and
GOVERNANCE.md name the promotion cases the Merge Gate states.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings November 11, 2026 00:36
@coderabbitai

coderabbitai Bot commented Nov 11, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 33 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration

Commits

Reviewing files that changed from the base of the PR and between 9b277fc and 47df366.

Files ignored due to path filters: 3

  • .claude-plugin/fleet-skills/.source-digests/pr-review-conduct is excluded by !.claude-plugin/fleet-skills/**
  • .claude-plugin/fleet-skills/skills/pr-review-conduct/SKILL.md is excluded by !.claude-plugin/fleet-skills/**
  • .github/skills/pr-review-conduct/SKILL.md is excluded by !.github/skills/**
Files selected for processing: 14

  • .agents/skills/pr-review-conduct/SKILL.md
  • .github/copilot-instructions.md
  • GOVERNANCE.md
  • scripts/README.md
  • scripts/pr_review.py
  • scripts/pr_review_answers.py
  • scripts/pr_review_copilot.py
  • scripts/pr_review_digest.py
  • scripts/pr_review_promotion.py
  • scripts/pr_review_rounds.py
  • tests/test_pr_review.py
  • tests/test_pr_review_copilot.py
  • tests/test_pr_review_promotion.py
  • tests/test_pr_review_size.py
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@ptr727

ptr727 commented Nov 11, 2026

Copy link
Copy Markdown
Owner Author

A recorded local strict-review pass covers head 19474b20ec0119e9397f31e860622f2f024fda8e, the content this pull request carries at that commit against develop, and it recorded 2 findings.

…hain

A failed read of a promotion's commits now costs only the Dependabot
reading rather than ending the run, and the page is smaller. The runbook
sentence naming the promotion cases moves past the merge-block chain.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Active findings include a critical Dependabot login mismatch and unescaped manifest patterns that break promotion coverage, plus an uncaught enrichment failure and several clarity issues.

7 open issues
What changed in this PR

This pull request extends Merge Gate item 2 coverage for promotion reviews by preserving valid local attestations, recognizing eligible green Dependabot changes, and handling byte-identical renames.

Changes:

  • Adds promotion analysis for green Dependabot manifest and lockfile bumps.
  • Updates coverage precedence and lineless rename handling.
  • Synchronizes review guidance, generated skills, and regression tests.
File Description
tests/​test_pr_review.py Updates coverage, local-attestation, import, and rename behavior tests.
tests/​test_pr_review_size.py Adds the promotion reader's size ceiling.
tests/​test_pr_review_promotion.py Adds promotion constituent and Dependabot coverage tests.
tests/​test_pr_review_copilot.py Updates file-table tests for lineless renames.
scripts/​README.md Documents promotion coverage and rename handling.
scripts/​pr_review.py Loads promotion data during full reads and updates coverage documentation.
scripts/​pr_review_rounds.py Preserves local coverage and filters omitted rename rows from table matching.
scripts/​pr_review_promotion.py Reads promotion commits and classifies eligible Dependabot bumps.
scripts/​pr_review_digest.py Renders Dependabot coverage in the review digest.
scripts/​pr_review_copilot.py Allows lineless renames to be omitted from file-table matching.
scripts/​pr_review_answers.py Treats Dependabot coverage as satisfying item 2.
GOVERNANCE.md Updates the provider-agnostic review-loop guidance for promotions and renames.
.github/​skills/​pr-review-conduct/​SKILL.md Updates the generated review-conduct skill with promotion and rename rules.
.github/​copilot-instructions.md Updates Copilot review coverage guidance.
.claude-plugin/​fleet-skills/​skills/​pr-review-conduct/​SKILL.md Updates the generated Claude skill content.
.claude-plugin/​fleet-skills/​.source-digests/​pr-review-conduct Refreshes the generated review-conduct skill digest.
.agents/​skills/​pr-review-conduct/​SKILL.md Updates the canonical promotion merge-gate guidance.

Review effort: Lite

Comment thread scripts/pr_review_promotion.py Resolved
Comment thread scripts/pr_review_promotion.py Resolved
Comment thread scripts/pr_review_promotion.py Resolved
Comment thread .github/copilot-instructions.md Resolved
Comment thread scripts/README.md Resolved
Comment thread scripts/pr_review.py Resolved
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@codecov

codecov Bot commented Nov 11, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 79.19%. Comparing base (9b277fc) to head (47df366).
⚠️ Report is 2 commits behind head on develop.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #4047      +/-   ##
===========================================
+ Coverage    79.03%   79.19%   +0.16%     
===========================================
  Files           37       38       +1     
  Lines        12676    12769      +93     
===========================================
+ Hits         10019    10113      +94     
+ Misses        2657     2656       -1     
Flag Coverage Δ
python-3.13 79.19% <100.00%> (+0.16%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ptr727

ptr727 commented Nov 11, 2026

Copy link
Copy Markdown
Owner Author

A recorded local strict-review pass covers head 2bb78053b8c27cc07b88894f285a887474cdb02c, the content this pull request carries at that commit against develop, and it recorded 0 findings.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ptr727

ptr727 commented Nov 11, 2026

Copy link
Copy Markdown
Owner Author

A recorded local strict-review pass covers head 47df3662f5fb2cad90e1996e46964408dfba9adc, the content this pull request carries at that commit against develop, and it recorded 0 findings.

@ptr727

ptr727 commented Nov 11, 2026

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@ptr727

ptr727 commented Nov 11, 2026

Copy link
Copy Markdown
Owner Author

/review

@coderabbitai

coderabbitai Bot commented Nov 11, 2026 •

Copy link
Copy Markdown
Action not completed

Review rate limited.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@ptr727
ptr727 merged commit 440cdac into develop Nov 11, 2026
13 checks passed
@ptr727
ptr727 deleted the feature/merge-gate-coverage-item2 branch November 11, 2026 01:13
ptr727 added a commit that referenced this pull request Nov 11, 2026
…ry Short Names, Stub Read Grant (#4054)

## Summary

Promotes burndown round 1 of the attended run of 2026-11-10 from
`develop` to `main`.

- #4047: an attested local pass keeps `coverage=local` against a round
that only carries a file table. A promotion now reads green Dependabot
manifest bumps as covered, through the new `pr_review_promotion.py`. The
promotion case also counts an attestation over direct-to-`develop`
changes and excuses byte-identical renames.
- #4045: the loop skills resume a parked group on a recorded answer,
present each question once, accept a clone tip at or behind head, and
re-check `deferred` issues whose condition is checkable. An away run's
endings that cannot dispatch a promotion worker now report that.
- #4046: every registry entry carries a required, gated `shortName`. A
changed short name fails the spec gate as a migration.
- #4044: `pull-requests: read` on each caller stub's `validate` job, the
hub half of #2354. It takes effect once the lint job declares the scope.
- #4052, #4053, #4055, from other sessions: registry and rollout-tracker
updates. They declare Python for Vantage-Config, register the Employment
repository with its short name and pin, and reconcile the HolidayLights
entry.

Fixes #3955
Fixes #3909
Fixes #3901
Fixes #3905
Fixes #4012
Fixes #3830
Fixes #2669
Fixes #4023
Fixes #4028

#2354 stays open for the lint job's grant and the downstream rollout.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
ptr727 added a commit that referenced this pull request Nov 13, 2026
…al Homes (#4169)

Disposes of both findings the per-unit tracker for
`.github/copilot-instructions.md` "GitHub Copilot Review Runbook" lists.

Closes on promotion: #4099

## Tracked Findings

- **Point to the canonical file-table coverage rules instead of
restating them.** Fixed. The runbook's completion paragraph restated,
sentence for sentence, the file-table coverage rules that
`GOVERNANCE.md` "PR Review Etiquette" holds. That breaks the file's own
rule, "Do not duplicate rules from `AGENTS.md`, `GOVERNANCE.md`,
`CODESTYLE.md`, or `WORKFLOW.md` here." Class sweep: the local review
pass found that the rest of that paragraph also restated "PR Review
Etiquette" and the `pr-review-conduct` Merge Gate (head and full-diff
coverage, the merge-blocking cases, the local-pass reading, the default
review policy, re-running the loop, and not trusting `mergeStateStatus:
CLEAN`). So the paragraph now points to those two homes, which between
them state every rule it held. It keeps its two sentences naming partial
coverage, a refusal, and an uncovered head as merge blockers.
`test_the_runbook_names_partial_coverage_as_a_state_that_blocks_a_merge`
in `tests/test_pr_review.py` pins those on purpose, and they state the
Merge Gate's blockers rather than a `GOVERNANCE.md` rule. A
sentence-level comparison of the runbook section against `GOVERNANCE.md`
found 7 verbatim sentences before this change and none after it. The
review-effort paragraph after it is left alone, since `GOVERNANCE.md`
does not state its rules.
- **A file table should not omit a renamed file with no changed line.**
Declined, since it asks to reverse a tested design rather than correct a
misdescription. #4047 added `RENAMED` to the set a file table may leave
out on purpose, and `tests/test_pr_review.py` pins it:
`test_a_lineless_rename_is_left_out` expects `coverage=table` for a
round whose table leaves out a `RENAMED` file with 0 additions and 0
deletions, and `test_a_rename_with_a_changed_line_is_not_left_out`
expects `coverage=none` once the rename changes a line. The text
describes that behavior accurately. After the first fix, the sentence
lives in `GOVERNANCE.md` "PR Review Etiquette" and the
`pr-review-conduct` Merge Gate, both of which match the tested behavior,
so no text changes for it.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants