Skip to content

Stop pr_review.py Requesting Copilot on Feature Pull Requests into Develop #3758

Open

Description

@ptr727

scripts/pr_review.py still requests a Copilot review on every feature pull request into develop, while the rule text says the hosted review runs once per change, at the promotion.

The rule: .agents/skills/pr-review-conduct/SKILL.md:42-45 and .agents/skills/drive-pr/SKILL.md:111-112 say Copilot's hosted review runs "once per change, at the promotion". A pull request into a non-default branch is covered by an attested local strict pass instead (#3403). The develop ruleset no longer carries a copilot_code_review rule.

The code: run_wait in scripts/pr_review.py (around lines 1637-1651) auto-requests Copilot on any pull request unless an attested local pass is already held when the wait starts. A drive that waits before recording its local pass therefore requests a Copilot round anyway.

Evidence: each of the last ten hub pull requests merged into develop (#3707 through #3737) carries a Copilot review, with the request coming from the agent's account. The weekly scripts/backlog_metrics.py count of Copilot review runs is unchanged from the #3391 baseline (418 for the week to 2026-11-01, against a target of about half).

Done when: run_wait does not request Copilot on a pull request into a non-default branch, whether or not a local pass is held yet. A test covers the case where the local pass is recorded after the wait begins. One week of backlog_metrics.py output shows Copilot review runs falling toward the promotion-only rate.

Filed from the decision triage on #3391, which closed with this gap split out as a bug.

Activity

  1. added
    bugSomething isn't working
    scriptA defect in hub tooling
    on Nov 1, 2026
  2. ptr727 commented on Nov 1, 2026

    @ptr727
    OwnerAuthor

    Released (2026-11-01): worktree and branch removed, so this claim holds no files. PR #3775 merged without fixing this issue. The repeated Copilot request comes from outside pr_review.py (see the evidence comment above), so this issue needs the maintainer.

    Backlog burndown claim (round 1, group G1). Branch: feature/burn-3758. Issues: #3758, #3571, #2180, #3732, #3713, #3726.

    Predicted file set:

    • scripts/pr_review.py, scripts/pr_review_rounds.py, scripts/pr_review_copilot.py, scripts/reviewers/copilot.json
    • tests/test_pr_review.py, tests/test_pr_review_copilot.py
    • .agents/skills/pr-review-conduct/SKILL.md and its generated trees (.github/skills/pr-review-conduct/, .claude-plugin/fleet-skills/skills/pr-review-conduct/, .claude-plugin/fleet-skills/.source-digests/pr-review-conduct)
    • drive-pr generated trees (included section), GOVERNANCE.md "PR Review Etiquette", .github/copilot-instructions.md
  3. ptr727 commented on Nov 1, 2026

    @ptr727
    OwnerAuthor

    Finding from the burndown worker on feature/burn-3758: the request does not come from pr_review.py, so no change to run_wait closes this.

    So the request comes from GitHub when the pull request is created. The likely source is the account-level Copilot setting that automatically requests a review on every pull request the account opens. That setting is not visible through the API, and changing it is the maintainer's call. Turning it off would leave promotions covered by the main ruleset's own Copilot rule. This issue stays open for that decision rather than closing on a code change.

  4. ptr727 commented on Nov 2, 2026

    @ptr727
    OwnerAuthor

    Decision triage: researched question

    A Copilot review request lands on every feature pull request into develop one to two seconds after creation, before any pr_review.py command runs. Should the maintainer turn off the GitHub-side setting that sends it, or should this issue close with the code as it is?

    Options, recommended first:

    1. (Recommended) Turn off the account-level automatic Copilot review, then close Stop pr_review.py Requesting Copilot on Feature Pull Requests into Develop #3758 once a feature PR shows no Copilot request. run_wait on main already requests nothing on a PR into a non-default branch, and the develop ruleset has no copilot_code_review rule. The main ruleset's rule (review_on_push: false) still gives one review per promotion, which is the "once per change, at the promotion" rule. The setting cannot be read through the API, so the check is that the next feature PR shows no review_requested event. It also stops auto-review on PRs this account opens outside the fleet. No code work in flight.
    2. Keep the setting, close Stop pr_review.py Requesting Copilot on Feature Pull Requests into Develop #3758 as not a code defect, and change the rule text to accept a Copilot round on feature PRs. No settings change. It gives up the cost cut Run Copilot Review Once per Change at the Promotion #3403 was for, and the pr-review-conduct and drive-pr text saying "once per change, at the promotion" stays false in practice.
    3. Keep the setting and have tooling remove Copilot's pending request right after each PR is created. Adds a write to every PR, races a review that may already have started, and fights the platform rather than fixing the source.

    Evidence: #3758 (comment) (seven PRs, request 1-2s after createdAt); #3792, #3793, #3796, #3798, #3799 each show a Copilot review_requested event 1-2s after creation, base develop; develop ruleset has no copilot_code_review rule, main ruleset carries it with review_on_push: false; scripts/pr_review.py:1551 (run_wait) and tests/test_pr_review.py:4939 on main; #3403 (96d1396); #3775; #3391 (comment). The account-level source is inferred from timing and actor, since the API cannot show that setting.

    Blocks: none. Option 1 is a settings change only the maintainer can make.

  5. added
    decisionA question waiting on the maintainer, alone or beside whatever else the issue carries
    on Nov 2, 2026
  6. ptr727 commented on Nov 2, 2026

    @ptr727
    OwnerAuthor

    Maintainer answer (2026-11-02, via decision triage): the maintainer turns off the account-level automatic Copilot review.

    No code change. With that setting off, a feature PR into develop gets no Copilot request unless pr_review.py runs with --request, and a promotion PR into main gets one review from the main ruleset at open, with pr_review.py wait requesting the follow-up rounds on new heads. Remaining work: confirm the next feature PR into develop shows no Copilot review_requested event, then close this issue.

  7. removed
    decisionA question waiting on the maintainer, alone or beside whatever else the issue carries
    on Nov 2, 2026
  8. ptr727 commented on Nov 2, 2026

    @ptr727
    OwnerAuthor

    Maintainer answer (2026-11-02, given in the backlog-burndown session, recorded by the orchestrator):

    copilot on auto review is still in use by otehr agents using the existing workflow, if i turn it off now that work will break, copilot's auto review being disabled should be scheduled along with possibly the auto review disabled for coderabbit and quodo at the same time so that the nbehavior to require explicit bot reivews is consistent and can be gated across the fleet and otehr running agents.

    What this means for the work:

    • Do not turn off the account-level Copilot automatic review on its own. Other agents still depend on the existing workflow.
    • Schedule the cutover instead: one moment at which automatic review is turned off and explicit bot review requests become the required behaviour. A gate makes that behaviour consistent across the fleet and across running agents.
    • Turning off automatic review for CodeRabbit and Qodo at the same time is possibly part of the same cutover. That part is not decided yet.

    So this issue is not waiting on a single setting toggle. It needs a coordinated cutover plan, and the settings change comes last. The next backlog-burndown planner decides which in-repo preparation can be worked now and files the open CodeRabbit/Qodo question as a decision.

  9. ptr727 commented on Nov 2, 2026

    @ptr727
    OwnerAuthor

    Maintainer answer, follow-up (2026-11-02, given in the backlog-burndown session, recorded by the orchestrator). This settles the part the previous comment left open:

    the auto review for bots should be consistent, be that for copilot or quodo or coderabbit, i am using the free for open source versions of coderabbit and quodo so there is no cost factor, while i do pay for copilot, the bot review workflow should be consistent, so scratch that "possibly" and make that "consistncy required"

    What this settles:

    • Consistency is required, not optional. Copilot, CodeRabbit and Qodo follow the same review workflow.
    • One scheduled cutover turns off automatic review for all three. From then on, explicit review requests are the required behaviour, gated the same way across the fleet and across running agents.
    • Cost is not a reason to treat them differently. CodeRabbit and Qodo are on their free open-source plans, and the maintainer pays for Copilot, but the workflow is the same for all three.

    There is no open CodeRabbit/Qodo question left to file as a decision.

  10. ptr727 commented on Nov 2, 2026

    @ptr727
    OwnerAuthor

    Held back by the backlog-burndown away run (2026-11-02, round 3), re-judged against the maintainer's answers above.

  11. ptr727 commented on Nov 3, 2026

    @ptr727
    OwnerAuthor

    Maintainer answer on #3826 (decision triage via the windows handoff #3853, 2026-11-03): Option 1: land behaviour-neutral preparation behind one hub-hosted switch and release it, then flip everything in one maintainer-chosen window when no session is mid-drive. The preparation can be dispatched as its own group. The settings changes and the switch flip stay with the maintainer, and this issue stays held until the cutover.

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

    bugSomething isn't workingscriptA defect in hub tooling

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions