From e53b0f7f76295ce00aece47eb8631ec48bc64e1e Mon Sep 17 00:00:00 2001 From: Sean Whalen <44679+seanthegeek@users.noreply.github.com> Date: Tue, 10 Nov 2026 17:13:21 -0500 Subject: [PATCH] CLAUDE.md: require a second reviewer on every PR (#956) Public PRs get a Copilot review of their final head. Copilot cannot review a temporary private advisory fork (the request is accepted, then the review fails), so those get a second fresh-context review by a different model. Co-authored-by: Claude Fable 5.2 --- CLAUDE.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index 40ba66cd..49e97891 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -12,4 +12,11 @@ Any new feature or modification to an existing feature must follow this model sp **PR reviews** must also use Fable, with Opus as the fallback if Fable is unavailable. +## Every PR gets a second reviewer before it merges + +The Fable review above is the author's side. Before a PR merges, a second, independent reviewer must also have read its final head, and every finding must be fixed or declined with a reason on its thread. + +- **Public PRs: request a Copilot review** when the PR is opened, and re-request it after every push that answers a finding (the `address-copilot-review` skill covers the loop). A review of an earlier commit does not count for a later head. +- **Temporary private advisory forks (`domainaware/parsedmarc-ghsa-*`): Copilot cannot review there.** The request is accepted and Copilot is listed as a reviewer, but the review fails with "Copilot encountered an error and was unable to review this pull request", on a retry too (tried twice on 2026-11-10). Do not open the diff as a public PR to get a review: that discloses the fix before the advisory is published. Instead run a second fresh-context review with a different model than the first one (Opus if the first was Fable), given only the diff, and make sure it covers commits added after the first review, such as review fixes. + @AGENTS.md