fix(pr-review): treat LOW-only findings as ready to merge (#455)

LOW severity findings are explicitly non-blocking suggestions, but the
verdict logic was returning MERGE_WITH_CHANGES instead of READY_TO_MERGE.
This was inconsistent with the documented behavior and the rationale
text which stated these items were "safe to merge" and "non-blocking".

Updated verdict determination in followup_reviewer, orchestrator, and
parallel_orchestrator_reviewer to return READY_TO_MERGE when only LOW
severity findings remain.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Andy
2025-12-31 19:51:07 +01:00
committed by GitHub
parent 5d8ede2331
commit 0f9c5b8403
3 changed files with 13 additions and 9 deletions
+5 -3
View File
@@ -799,9 +799,11 @@ class GitHubOrchestrator:
if low:
reasoning += f", {len(low)} suggestions"
elif low:
# Only Low severity suggestions - can merge but consider addressing
verdict = MergeVerdict.MERGE_WITH_CHANGES
reasoning = f"{len(low)} suggestion(s) to consider"
# Only Low severity suggestions - safe to merge (non-blocking)
verdict = MergeVerdict.READY_TO_MERGE
reasoning = (
f"No blocking issues. {len(low)} non-blocking suggestion(s) to consider"
)
else:
verdict = MergeVerdict.READY_TO_MERGE
reasoning = "No blocking issues found"
@@ -485,11 +485,11 @@ class FollowupReviewer:
f"({high_unresolved + medium_unresolved} unresolved, {high_new + medium_new} new)"
)
elif low_unresolved > 0 or low_new > 0:
# Only Low severity suggestions remaining - can merge but consider addressing
verdict = MergeVerdict.MERGE_WITH_CHANGES
# Only Low severity suggestions remaining - safe to merge (non-blocking)
verdict = MergeVerdict.READY_TO_MERGE
reasoning = (
f"{resolved_count} issues resolved. "
f"{low_unresolved + low_new} suggestion(s) to consider."
f"{low_unresolved + low_new} non-blocking suggestion(s) to consider."
)
else:
verdict = MergeVerdict.READY_TO_MERGE
@@ -743,9 +743,11 @@ The SDK will run invoked agents in parallel automatically.
if low:
reasoning += f", {len(low)} suggestions"
elif low:
# Only Low severity suggestions - can merge but consider addressing
verdict = MergeVerdict.MERGE_WITH_CHANGES
reasoning = f"{len(low)} suggestion(s) to consider"
# Only Low severity suggestions - safe to merge (non-blocking)
verdict = MergeVerdict.READY_TO_MERGE
reasoning = (
f"No blocking issues. {len(low)} non-blocking suggestion(s) to consider"
)
else:
verdict = MergeVerdict.READY_TO_MERGE
reasoning = "No blocking issues found"