From c62455bc66bf66407cd7c7b8b3508ed4d70e4035 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20S=C3=A4nger?= <20968534+dsnger@users.noreply.github.com> Date: Mon, 27 Jul 2026 14:12:54 +0200 Subject: [PATCH] =?UTF-8?q?docs(bots):=20the=20message=20is=20noise,=20the?= =?UTF-8?q?=20count=20is=20signal=20=E2=80=94=20in=20both=20directions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fifth occurrence, and #16 supplied the case that settles the wording: the same "Review rate limited" message appeared on an unreviewed head (count 0) and on a reviewed one (count 1) within a single PR. So the message is not a tell to watch for; it carries no information either way, and the row now says so without hedging — one integer per head, 0 means do not merge. Also records that verification is per head rather than per PR: every push moves the target and expires the previous answer. #16 needed three, and its last head never got a review, which is why this refinement is landing as its own PR rather than riding along in that one. Docs-only (docs/**.md), so Gate B is N/A per CLAUDE.md §5's prose exemption. --- docs/pr-review-bots.md | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/docs/pr-review-bots.md b/docs/pr-review-bots.md index a3e96e0..d6439ca 100644 --- a/docs/pr-review-bots.md +++ b/docs/pr-review-bots.md @@ -39,11 +39,22 @@ you can block on it. **Two different things, and conflating them merges unreview - **#15** — green check, "Review rate limited", and the count returned `0` for the live head. Merging there would have shipped an unreviewed head; waiting until the count reached `1` cost about three minutes. - - **#16** — the same, observed while writing this row: green check, "Review rate - limited", count `0`. - - The check and the review are independent facts, and the check is the one that lies. - What the green tick establishes is that CodeRabbit's *check* finished — nothing more. + - **#16** — twice in one PR, and the occurrence that settled the rule's final form: on + head `c6c1850` the check was green, the comment read "Review rate limited", and the + count was `0` — unreviewed. Two heads later the comment read "Review rate limited" + again while the count was `1` — reviewed. + + **The message is noise. The count is signal. In both directions.** "Review rate + limited" appears on heads that were never reviewed and on heads that were, so it tells + you nothing either way; there is no interpretation left to do, and nothing to weigh — + one integer per head decides it. `0` means do not merge. Anything else means the head + was reviewed. What the green tick establishes is that CodeRabbit's *check* finished, + which is a different fact about a different thing. + + **Verification is per head, not per PR.** Every push moves the head and the previous + answer expires with it; a PR that takes three pushes takes three verifications. #16 + took exactly that, and its final push had to be dropped and re-landed separately + because the new head went unreviewed past the point of waiting. Verify the second before merging — a deterministic boolean, so it can gate rather than be eyeballed. Run it on every merge, including the ones where the check looks unambiguous: