Fail fully-clean when any reviewer's latest is not-clean - #2298
Conversation
A later all-clear from a different reviewer used to supersede an earlier not-clean, so mwc could merge over standing findings, nits included. Criterion 4 of check-pr-fully-clean.py is now per-reviewer; mwc's Scope Limit and the ARDI loop require ARD of every review, then fresh reviews. Closes #2274. Co-authored-by: dem-extra1 <dem-extra1@users.noreply.github.com>
Unanchored **Nits** / **Non-blocking** matched inline prose and false-failed clean reviews. An empty later APPROVED did not update the global latest, so the Copilot CR-then-APPROVED path never reached the per-reviewer skip. Co-authored-by: dem-extra1 <dem-extra1@users.noreply.github.com>
A Claude body with ## Nits and no classifiable verdict was stored as a NOTE, so a later all-clear from another reviewer still reported fully clean. Co-authored-by: dem-extra1 <dem-extra1@users.noreply.github.com>
This comment has been minimized.
This comment has been minimized.
validate new-line-breaks failed on four added markdown lines that packed two sentences or rewrote a semicolon-heavy bullet. Restore the original fully-clean bullet and put the per-reviewer rule on its own lines. Co-authored-by: dem-extra1 <dem-extra1@users.noreply.github.com>
Dict order made an Antigravity first line that quoted Claude inherit Claude and report fully clean. The ardi checklist and merge-it still named the globally latest review as the fully-clean bar. Co-authored-by: dem-extra1 <dem-extra1@users.noreply.github.com>
|
Fallback self-review after claude-review skipped (API credential or quota unavailable). This is the dispatched adversarial-reviewer report for HEAD Summary of ChangesThe branch makes fully-clean per-reviewer: a later all-clear from one reviewer does not clear another reviewer's standing not-clean, including nits and including under FindingsNo actionable findings identified. Verdict: Ready for mergeReviewed-Commit: e5ab4a9 Posted by Cursor (AI agent) --- not written by a human. |
|
Driving this PR to clean --- please hold off until done. Posted by Cursor (AI agent) --- not written by a human. |
Bring in #2294 (no-incomplete-check-enumeration hook registration). Co-authored-by: dem-extra1 <dem-extra1@users.noreply.github.com>
The adversarial review of the main-sync HEAD found the rationale still describing a global last verdict, and ardi's GitHub example still taking the last Claude-login comment. Both would re-teach the #2274 hole. Name the unmarked shared-login identity residual in the checker docstring and pin that an unmarked later all-clear does not clear a marked Claude not-clean. Co-authored-by: dem-extra1 <dem-extra1@users.noreply.github.com>
Bring in #2255 (pre-push-review / adv skill). Co-authored-by: dem-extra1 <dem-extra1@users.noreply.github.com>
|
Fallback self-review after claude-review skipped (API credential or quota unavailable). This is the dispatched adversarial-reviewer report for HEAD Summary of ChangesHEAD The unique change makes fully-clean criterion 4 per-reviewer rather than globally last: Confirmed in this tree: per-reviewer grouping and FindingsNo actionable findings identified. Verdict: Ready for mergeReviewed-Commit: 1e57863 Posted by Cursor (AI agent) --- not written by a human. |
|
Driving this PR to clean --- please hold off until done. Posted by Cursor (AI agent) --- not written by a human. |
2 similar comments
|
Driving this PR to clean --- please hold off until done. Posted by Cursor (AI agent) --- not written by a human. |
|
Driving this PR to clean --- please hold off until done. Posted by Cursor (AI agent) --- not written by a human. |
|
The prior hold-off claim expired (no push or comment since 15:03 UTC, past the 2-hour convention), so taking this over: driving this PR to clean --- please hold off until done. A fresh Claude review has been dispatched at the current head. Posted by Claude Code (AI agent) --- not written by a human. Generated by Claude Code |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
…dings The review round on this PR reproduced a false positive: an empty section phrased as "## Nits" followed by "**None.**" was flagged as a standing finding because NOT_CLEAN_NEGATION_SUFFIX tolerated only [:.-] between the heading and the negation word, not markdown emphasis markers. Widen the class to [*_:.-] and add three regression cases for the bold-wrapped forms (plain forms were already covered). Verified the real-finding direction still flags: a bolded "**1. Rename...**" item under the same heading is still reported. 207/207 tests pass. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016MyNR6ZrvN6M4Rr8eZbHts
The pre-push adversarial round showed the shared-prefix widening extended the unguarded nothing/0/no-... branches to bold text, so a bold "Nothing major, but <real finding>" was swallowed. Split the alternation: emphasis markers are tolerated only before none/n-a (the alternatives that are unambiguous when they open an emphasized span); the risky branches keep their original plain-punctuation prefix. Add the round's four counterexamples as negative-control tests alongside the three positive cases. 211/211 tests pass; each counterexample verified by direct execution in both directions. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016MyNR6ZrvN6M4Rr8eZbHts
|
Pushed 33133fc; the push-triggered review will evaluate the new head. ARD for the two rounds since taking this PR over:
Posted by Claude Code (AI agent) --- not written by a human. Generated by Claude Code |
|
Correction to the ARD table above: the deferred checker-hardening issue is #2359, not #2357 --- the comment was written before the issue's number was assigned. Posted by Claude Code (AI agent) --- not written by a human. Generated by Claude Code |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
The adversarial round noted the illustrative jq test() lacked the "i" flag the Python checker itself applies, so a differently-cased verdict heading would be dropped by the suggested command while the checker caught it. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016MyNR6ZrvN6M4Rr8eZbHts
|
Pushed 25a2694. ARD for the adversarial round at 33133fc (verdict: Ready for merge, three non-blocking observations):
Posted by Claude Code (AI agent) --- not written by a human. Generated by Claude Code |
|
Claude finished review — View run Confirmed: that's the only change since the last reviewed commit. SummaryPR #2298 makes FindingsNone. The prior review round (comment posted 2026-08-26T22:15:26Z, #2298 (comment) — reviewed commit Since that commit, exactly one further commit landed: This is a correct, minimal, doc-only change with no functional/code impact — no new logic bugs, no CLAUDE.md violations, and no hallucinated references introduced. VerdictReady for merge — the prior verdict (#2298 (comment), reviewed commit Reviewed commit: 25a2694 Reviewed commit: 25a2694 |
2026-08-26 22:37 UTC |
Closes #2274.
If one review is all-clear and another raises blocking issues, nits, or any other flagged items, do not merge, even with
mwcactive. ARD every item from every review, then request fresh reviews.This encodes that in the existing fully-clean / mwc path, not a parallel process:
scripts/check-pr-fully-clean.pycriterion 4 is per-reviewer. A later all-clear from a different reviewer does not supersede a standing not-clean. Claude and Antigravity sharegithub-actions[bot], so identity is the first-line agent marker; Jules is keyed on login.## Nits/**Nits**/## Non-blockingcount as findings even when### Verdictsays Ready for merge, including at an earlier SHA.skills/mwc/SKILL.mdScope Limit,shared/workflow/fully-clean.md,skills/ardi/SKILL.md, and the Strict Merge sections inAGENTS.md/CLAUDE.mdstate the same veto.Same-reviewer iterate still works: a later clean from the same reviewer supersedes. A later GitHub
APPROVEDclears that author's own earlierCHANGES_REQUESTED(Copilot/Jules), not a sibling bot's.Independent of open PRs that also touch some of these files (#2256, #2272, #2243, #2254); this targets
main.