Skip to content

fix(bus): check-stale-blockers re-flags a resolved stat-source PR citation forever - #150

Open
asachs01 wants to merge 1 commit into
mainfrom
fix/stale-blockers-stat-citation-cue
Open

fix(bus): check-stale-blockers re-flags a resolved stat-source PR citation forever#150
asachs01 wants to merge 1 commit into
mainfrom
fix/stale-blockers-stat-citation-cue

Conversation

@asachs01

@asachs01 asachs01 commented Aug 23, 2026

Copy link
Copy Markdown

Summary

check-stale-blockers flagged the same false positive on the same task twice, two days apart
(task_1786902033624, 2026-08-20 then 2026-08-22) — a real, correctly-cited PR (conduit#1424)
cited as the source of a supporting statistic ("documented in-code by conduit PR #1424 as 13
verified against prod"), not as the fix for the task's blocker. Both times a peer had to manually
re-trace and correct it, because the tool has no memory of a prior resolution.

This is a different shape from the existing precedent-citation false-positive class (2026-08-12,
PRECEDENT_CITATION_CUE_REGEX) — that class isn't naming a blocker at all ("same shape as the
action1 precedent, PR grandamenium#306"). This one names a real, relevant PR, just not as the fix.

Fix

Widens the existing exclude-list mechanism with a second cue category (documented ... by,
verified against, sourced from, per PR #NN's own data/finding/...) rather than adding new
persisted state (no resolved-citations file to keep in sync). Reuses the exact regex-window
technique already proven in production for the precedent-citation class.

Known limitation, found and documented rather than silently fixed

Writing the "mixed citation" regression test surfaced a pre-existing architecture gap: a cue
phrase sitting in the textual GAP between two close PR references can leak into the next
reference's before-window, because the existing prev-match-end clamp only protects against
reaching before/into the previous match's own span, not the prose after it. Not fixed here (out
of scope for this diff) — documented in the test file as a known limitation for follow-up if a
real case is ever reported. Scoped test uses well-separated sentences to avoid it.

Verification

  • All done in an isolated git worktree.
  • New/existing targeted tests: 48/48 pass (tests/unit/bus/system.test.ts), including 3 new
    cases for the real incident text, a mixed-citation case, and two more cue phrasings.
  • Broader run: tests/unit/bus/ + tests/integration/: 857 passed, 3 failed — all 3 are
    phase5-performance.test.ts cron-startup timing thresholds, already documented in this repo's
    own CLAUDE.md as environment-flaky under load, unrelated to this change (confirmed: no code
    touched here is anywhere near cron-startup timing).
  • npm run build succeeds.

Not merging/self-approving

Opened for review per normal process.


View with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is enabled.

…for stat-source citations

A real, correctly-cited PR can still be a false positive if it's cited as
the source of a supporting fact ("documented in-code by PR #NN as 13
verified against prod") rather than as the fix for the blocker. Distinct
shape from precedent-citation (that class isn't naming a blocker at all).

Bit the same task twice, two days apart (task_1786902033624, 2026-08-20
then 2026-08-22), both times resolved manually by the same peer -- the
tool has no memory of a prior resolution, so it re-litigates indefinitely.

Reuses the existing exclude-list mechanism (PRECEDENT_CITATION_CUE_REGEX,
2026-08-12) rather than new persisted state -- same failure shape, same
fix technique.
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