Repository navigation
Print a Clean Verdict's Headline as an Advisory Line in pr_review.py - #3221
Conversation
A clean-verdict Copilot round that counts no finding, opens no thread, and collapses no suppressed block can still name a remaining nit in its headline sentence. The digest now prints that headline under CLEAN VERDICT HEADLINE, through the same reader the flagging verdict's exit 50 uses, and the exit stays 0. Nothing in the body says whether the nit is new or an answered thread, so the line is advisory and adds no exit code. Closes #2567 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The usage text, the README, and pr-review-conduct said a clean verdict on those terms exits 0, while status still returns 42, 43, or 45 ahead of it. Each now says the line changes no exit code, as the digest does. The test reads status and wait output separately. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
"counts none" bound to `verdicts`, the only plural before it. The summary now says the round counts no finding. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
A recorded local strict-review pass covers head |
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configuration
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
🟢 Approval recommended
No unresolved review findings remain, and the behavior is covered by tests and documentation.
No open issues 🎉
What changed in this PR
Adds advisory output for clean Copilot verdict headlines without changing exit codes.
Changes:
- Generalizes verdict detection for clean and flagging results.
- Adds advisory headline output and focused tests.
- Updates documentation and generated skill distributions.
| File | Description |
|---|---|
tests/test_pr_review.py |
Tests advisory output and exit behavior. |
scripts/README.md |
Documents advisory behavior. |
scripts/pr_review.py |
Implements clean-verdict headline reporting. |
.github/skills/pr-review-conduct/SKILL.md |
Updates generated review guidance. |
.claude-plugin/fleet-skills/skills/pr-review-conduct/SKILL.md |
Updates generated Claude guidance. |
.claude-plugin/fleet-skills/.source-digests/pr-review-conduct |
Updates the generated source digest. |
.agents/skills/pr-review-conduct/SKILL.md |
Updates canonical review guidance. |
Review effort: Lite
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #3221 +/- ##
==========================================
Coverage ? 65.52%
==========================================
Files ? 17
Lines ? 9771
Branches ? 0
==========================================
Hits ? 6402
Misses ? 3369
Partials ? 0
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
…in (#3222) - #3221 makes `pr_review.py` print a clean-verdict Copilot round's headline under `CLEAN VERDICT HEADLINE` when the round counts no finding, opens no thread, and collapses no block. The line is advisory and changes no exit code. It shares one guard with the flagging reading behind exit `50`, through a verdict-set parameter on `uncounted_verdict`. This implements the maintainer's "print it, do not gate" decision on #2567. - #3219 renames the carried hook helper `catalog/snippets/hub-fetch-run.py` to `hub_fetch_run.py`. It updates every reference and keeps accepting the former name wherever a carrier that copied it earlier would otherwise misclassify. #3221 edits `pr-review-conduct`, so this machine's installed Skills change at release. Closes #2567 Closes #3143 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Summary
Implements the maintainer's decision on #2567, "print it, do not gate".
A clean-verdict Copilot round can state no open finding, open no thread, and collapse no suppressed or previously-missed block while its headline sentence still names a remaining nit.
pr_review.pyread every such round as a clean pass and printed nothing.uncounted_verdicttakes the verdict set as a parameter, so the flagging reading behind exit50and the new clean reading share one guard.CLEAN VERDICT HEADLINE. The line is advisory and changes no exit code. It does not try to tell a new nit from one already answered, per the decision.scripts/README.md, andpr-review-conductdescribe the advisory line, with the skill distributions regenerated.Tests
statusandwaiteach exit0. Each command's output is read on its own.0.50.Run against the base
pr_review.py, the two positive tests fail and the two negative tests pass. The fulltests.test_pr_reviewsuite passes, as do ruff, mypy, prose_lint (including--check sentence-length), the eol gate,spec/validate.py,build_dist.py --check, markdownlint, cspell, and editorconfig-checker.Local strict review
There were three recorded passes. Round 1 found an overstated exit-code claim on three surfaces, a docstring summary made false by the new parameter, a test docstring with a false causal claim, a merged output buffer, and two long sentences. Round 2 found a pronoun that bound to the wrong noun. Each was fixed. Round 3 found nothing, so no
introducedfinding remains open.Refs #2567
🤖 Generated with Claude Code