Skip to content

fix(review): filter self-negating findings the model labels not actionable - #84

Merged
aliasunder merged 6 commits into
mainfrom
worktree-filter-self-negating-findings
Sep 4, 2026
Merged

aliasunder merged 6 commits into
mainfrom
worktree-filter-self-negating-findings

Conversation

@aliasunder

Copy link
Copy Markdown
Owner

Summary

  • Filter self-negating findings where the model labels its own output "not actionable", "not a defect", or similar — the non-finding filter now detects these before posting
  • New SELF_NEGATING_TITLE regex catches self-retractions anywhere in the title (word-bounded)
  • Extended CONFIRMATION_SCENARIO_SUFFIX with "not a defect" end-anchor (alongside existing "no bug here" pattern)

Observed on dev-site #63: finding titled "Edge-case navigation race — not actionable" with body "Not a defect." was posted, requiring the author to manually acknowledge the non-issue.

Test plan

  • 5 new drop tests: title "not actionable" / "not a defect" / "not a real issue" / "not a real bug", failure_scenario ending "Not a defect."
  • 3 new passthrough tests: "actionable" without "not", "defect" mid-sentence, "not a" in non-negating context ("Return type is not a promise")
  • All 553 tests pass
  • Lint clean, build clean

…nable

The non-finding filter missed a class where the model self-labels a
finding as "not actionable" or "not a defect" but the selection pipeline
posts it anyway (observed on dev-site #63).

Add SELF_NEGATING_TITLE regex matching "not actionable", "not a defect",
"not a real issue/bug/problem" anywhere in the title, and extend
CONFIRMATION_SCENARIO_SUFFIX with "not a defect" end-anchor.

553 tests (11 new).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Comment thread src/review/filter-non-findings.ts Outdated
Comment thread src/review/filter-non-findings.ts Outdated
@umm-actually

umm-actually Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Document the new self-negating drop patterns in the Non-finding filter section
Medium severity · conventions · high confidence

README.md:140 — beyond the diff's line ranges, in code the changes touch or depend on.

The 'A finding is dropped when:' enumeration documents the exact patterns that drop a finding, but it omits the two additions this PR ships: the title patterns 'not actionable' / 'not a defect' / 'not a real issue/bug/problem' (SELF_NEGATING_TITLE) and the failure_scenario ending 'not a defect'. Per the conventions file, README updates in the same change that alters behavior; an operator reading the doc to understand a dropped finding gets an incomplete picture.

Failure scenario: An operator sees a finding titled '…— not a defect' dropped from a review and reads the Non-finding filter section to confirm why; the documented rules list only the prefix/end-anchor patterns, none of which apply to that title, so the drop is unexplained by the reference doc that claims to enumerate every drop condition.

Suggested fix
Add a bullet to the Non-finding filter section covering the title self-negation patterns and extend the leaked-conclusion bullet to include '…not a defect'. Match the existing backtick-listing style.

umm-actually · deepseek/deepseek-v4-flash-0731

@umm-actually

umm-actually Bot commented Sep 4, 2026 •

Copy link
Copy Markdown
Contributor

umm-actually re-reviewed at 43ad1f6

No new findings (5 tracked finding(s) across all runs).

Context notes
  • Priority docs already in context: README.md

umm-actually · deepseek/deepseek-v4-flash-0731

…tle regex

SELF_NEGATING_TITLE required article 'a' before 'issue', missing the
grammatically correct 'not an issue' — a more natural model output than
'not a issue'. Changed `a` to `an?` so both forms are caught.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Comment thread src/review/__tests__/filter-non-findings.test.ts Outdated
The comment said "start- and end-anchored patterns" but the new
SELF_NEGATING_TITLE regex uses word boundaries, not position anchors.
The individual regex constants already document their anchoring.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Comment thread src/review/filter-non-findings.ts Outdated
aliasunder and others added 2 commits September 4, 2026 14:49
The regex alternation `(?:issue|bug|problem)` had tests for 'issue' and
'bug' but none for 'problem' — removing it from the alternation would
have gone undetected. Adds a drop test for "not a problem" in a title.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Address bot review findings:
- SELF_NEGATING_TITLE now requires a separator or end-of-title after the
  phrase, so qualified retractions survive ("not a bug on X but Y")
- CONFIRMATION_SCENARIO_SUFFIX extended with the full self-negating set
  (not actionable, not a(n) (real) issue/bug/problem) — not just "not a
  defect"
- README Non-finding filter section updated with the new patterns
- Test name cleaned of external PR reference

558 tests (3 new passthrough + scenario suffix tests).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@aliasunder

Copy link
Copy Markdown
Owner Author

Fixed — README Non-finding filter section updated with the new self-negating title patterns and extended failure_scenario suffix entries.


🔍 ship-check · pr-monitor · claude-opus-4-6

…erns

The summary sentence claimed all patterns are "anchored to the start or
end of a field" but SELF_NEGATING_TITLE is separator-delimited mid-field.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@aliasunder
aliasunder merged commit 578c1a5 into main Sep 4, 2026
9 checks passed
@aliasunder
aliasunder deleted the worktree-filter-self-negating-findings branch September 4, 2026 19:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant