fix(#1046): key review verdict on finding actionability, not just severity - #1049
fix(#1046): key review verdict on finding actionability, not just severity#1049fullsend-ai-coder[bot] wants to merge 1 commit into
Conversation
|
🤖 Finished Review · ✅ Success · Started 5:36 PM UTC · Completed 5:57 PM UTC Commit: Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $6.12 |
|
Risk Assessment: moderate (2/5) DetailsModerate risk confirmed via re-review anchoring. Prior score (2) preserved: PROTECTED_PATH_COUNT decreased from 5 to 3 and PR shrank from 188 to 104 lines, while high file churn and multi-author contention are offset by trusted bot author, strong issue alignment, and easy rollback safety. Previous runRisk Assessment: moderate (2/5) DetailsModerate risk confirmed via re-review anchoring. PROTECTED_PATH_COUNT=5 elevates metadata risk, but narrow scope (188 lines, 6 files), trusted bot author, high issue alignment, and well-maintained codebase offset this. Prior assessment (score: 2) remains valid. Previous run (2)Risk Assessment: moderate (2/5) DetailsSmall, focused bug fix (165 lines, 6 files) by a trusted bot addressing review verdict logic; high protected path count (5) is offset by narrow scope, trusted author, and clear issue alignment with test coverage. Previous run (3)Risk Assessment: moderate (2/5) DetailsSmall, focused bug fix (122 lines, 5 files) by a trusted bot with clear issue alignment and test coverage; high file churn and protected paths are offset by narrow scope and matching acceptance criteria. |
ReviewFindingsMedium
Low
Previous runReviewFindingsMedium
Previous run (2)ReviewFindingsMedium
Low
Next steps:
Previous run (3)ReviewFindingsHigh
Medium
Low
Next steps:
|
|
🤖 Finished Fix · ✅ Success · Started 5:59 PM UTC · Completed 6:06 PM UTC Commit: Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $1.57 |
- SKILL.md outcome mapping table: remove stale actionable-findings clause from approve row, add note to request-changes row - agents/review.md: update severity filtering, Outcome section, actionable field description, and jq example to reflect actionable low/info → request-changes routing - Rename PREFILTER_RESULT_FILE → PRE_FILTER_RESULT_FILE in both post-review.src.sh and post-review.sh for naming consistency Addresses review feedback on #1049
🔧 Fix agent — iteration 1 (bot-triggered)Addressed 3 of 6 review findings with code fixes: updated SKILL.md outcome mapping table, updated 5 stale sections in agents/review.md, and renamed PREFILTER_RESULT_FILE for naming consistency. Disagreed with 3 findings: protected-path observation (informational), scope-creep observation (reviewer acknowledged as defensible), and code-review SKILL.md staleness (intentionally different verdict rules for local vs PR context). Fixed (3):
Disagreed (3):
Tests: passedNext steps:
|
|
🤖 Finished Review · ✅ Success · Started 6:09 PM UTC · Completed 6:31 PM UTC Commit: Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $5.60 |
|
🤖 Finished Fix · ✅ Success · Started 6:33 PM UTC · Completed 6:40 PM UTC Commit: Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $2.21 |
…t preservation Update the actionable-findings jq filter in both post-review.src.sh and post-review-test.sh to check for both `actionable == true` AND a non-empty `remediation` field, matching the documented two-part condition in agents/review.md and SKILL.md. When actionable findings preserve the verdict, retain those findings in the result instead of deleting the entire findings array, so the fix agent receives concrete structured data to act on. Add two new test cases for actionable-without-remediation and actionable-with-empty-remediation edge cases. Regenerated post-review.sh via make script-build. Addresses review feedback on #1049
🔧 Fix agent — iteration 2 (bot-triggered)Addressed 2 of 4 review findings with code fixes: (1) updated jq filter to require both actionable==true and non-empty remediation, matching docs; (2) retained actionable findings in the result instead of deleting them, so the fix agent has structured data. Disagreed with 2 findings: protected-path (informational) and stale verdict rules (intentional design difference between local and PR review contexts). Fixed (2):
Disagreed (2):
Tests: passedNext steps:
|
|
🤖 Finished Review · ✅ Success · Started 6:42 PM UTC · Completed 6:59 PM UTC Commit: Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $4.44 |
Superseded by updated review
84ac7a3 to
f1b8cc7
Compare
|
🤖 Finished Review · ❌ Failure (validation failed after 2 iteration(s)) · Started 10:18 PM UTC · Completed 11:00 PM UTC Commit: Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high |
|
/fs-review |
|
🤖 Finished Review · ✅ Success · Started 12:09 AM UTC · Completed 12:51 AM UTC Commit: Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high |
There was a problem hiding this comment.
Note: The following review comments could not be posted on the diff (GitHub returned 422) and are included here instead:
agents/review.md(file-level): Line 204 · [medium] internal-inconsistency
The approve outcome bullet reads 'no medium+ findings; the change is safe' without mentioning the new exclusion for actionable+remediation findings. Lines 223-225 correctly state the exclusion, creating an internal contradiction.
Suggested fix: Update the approve bullet to include the actionable+remediation exclusion.
f1b8cc7 to
6ba8355
Compare
|
🤖 Review · Commit: |
…erity Decouple actionable from severity — any finding with actionable: true and non-empty remediation routes to request-changes regardless of severity level. The severity threshold is absolute: findings filtered by REVIEW_FINDING_SEVERITY_THRESHOLD are excluded even if actionable, respecting the user's configured threshold throughout. Signed-off-by: Claude <noreply@anthropic.com> Signed-off-by: Greg Allen <gallen@redhat.com>
6ba8355 to
486e155
Compare
|
🤖 Review · Started 1:27 AM UTC Commit: |
Summary
actionable: trueand a non-emptyremediationnow producerequest-changesregardless of severity level, so the fix agent triggers automatically on findings with concrete remediations.REVIEW_FINDING_SEVERITY_THRESHOLDsetting is respected throughout — findings filtered by the threshold are excluded even if actionable, composing correctly with the new verdict logic.agents/review.md,skills/pr-review/SKILL.md,skills/code-review/SKILL.md,docs/review.md, andschemas/review-result.schema.jsonto decoupleactionablefrom severity.Testing
filter_and_downgrade()to verify actionable findings below threshold are filtered and the verdict is downgraded.post-review-test.shtests continue to pass.Closes #1046
Post-script verification
agent/1046-actionable-verdict-logic)