diff --git a/CLAUDE.md b/CLAUDE.md index a42be3f9dd..d635d991af 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -37,7 +37,7 @@ After opening a PR, the work is **not** complete. Stay with the PR until both th 1. **Watch the pipeline.** Poll `gh pr checks ` (and Cloud Build for triggered deploys) until every required check has finished. Use a background bash poll so other work can continue. Default: poll every 20 s, up to ~10 min per check. 2. **Fix CI failures.** If any check fails, read the relevant log (`gh run view --log-failed`, `gcloud builds log `), push a fix commit to the same branch, then keep watching. Repeat until green. -3. **Wait for the Copilot PR Reviewer bot** (and any other auto-review bots active on this repo). Typically lands within ~2 min of PR open. Fetch with `gh pr view --comments`, plus the three GitHub APIs that surface different comment types — `gh api` resolves `{owner}/{repo}` from the current git remote so these are copy/paste-portable: +3. **Wait for the Copilot PR Reviewer bot — ONE review per PR, not one per push.** Review-on-push is off in the "Automated Copilot Code Review" ruleset (owner, 2026-09-03): the bot runs once when the PR opens or leaves draft, and a push triggers nothing. Don't re-request a review after every push. Each request is a full re-read of the whole diff, and the bot then surfaces "previously missed" findings in files the push never touched — which draws another push, which draws another request (the sibling repo's [kurrentschrift#406](https://github.com/MarkusNeusinger/kurrentschrift/pull/406) collected ~15 requests in a day over a one-line docstring fix). Request a fresh review explicitly only after a SUBSTANTIVE rework (new behaviour, a reworked mechanism), and stop once a round yields no new inline comments but only carried-over items: the field is grazed. A PR that is green with no open threads needs no further round — say so and let the owner merge. The first review typically lands within ~2 min of PR open. Fetch with `gh pr view --comments`, plus the three GitHub APIs that surface different comment types — `gh api` resolves `{owner}/{repo}` from the current git remote so these are copy/paste-portable: - `gh api repos/{owner}/{repo}/pulls//reviews` — top-level review summaries (Copilot's overall comment lives here) - `gh api repos/{owner}/{repo}/pulls//comments` — inline review comments tied to file/line - `gh api repos/{owner}/{repo}/issues//comments` — generic PR conversation comments (codecov, deployment bots, humans) diff --git a/agentic/commands/pull_request.md b/agentic/commands/pull_request.md index 8b1a0a8e70..073bf15119 100644 --- a/agentic/commands/pull_request.md +++ b/agentic/commands/pull_request.md @@ -58,6 +58,10 @@ EOF 7. If step 4 added changelog entries without a PR reference, append the new PR number to those bullets (e.g. `(#1234)`) and push the follow-up commit. +8. **The Copilot review runs ONCE**, when the PR opens (or leaves draft) — review-on-push is off in + the "Automated Copilot Code Review" ruleset (owner, 2026-09-03), so step 7's follow-up commit and + every later push trigger nothing. Do not re-request a review per push; the rule and its one + exception (a substantive rework) are in `CLAUDE.md` § "PR Follow-Through", step 3. ## Report diff --git a/changelog.d/copilot-review-cadence.md b/changelog.d/copilot-review-cadence.md new file mode 100644 index 0000000000..a444707668 --- /dev/null +++ b/changelog.d/copilot-review-cadence.md @@ -0,0 +1,12 @@ +### Changed + +- **The agent instructions say what the Copilot review ruleset now does: one review per PR, not + one per push** — review-on-push was turned off in the "Automated Copilot Code Review" ruleset of + both repositories on 2026-09-03, so the bot runs once when a PR opens or leaves draft and a push + triggers nothing. `CLAUDE.md`'s PR follow-through and `agentic/commands/pull_request.md` now say + so, and say not to re-request one per push: each request is a full re-read of the whole diff, and + the bot then surfaces "previously missed" findings in files the push never touched — which draws + another push, and another request (the sibling repo's + [kurrentschrift#406](https://github.com/MarkusNeusinger/kurrentschrift/pull/406) collected ~15 in + a day over a one-line docstring fix). A fresh review is requested only after a substantive + rework, and a PR that is green with no open threads needs no further round. (#11216)