Tracks deferred work from #431 (fork B). Design ref: docs/superpowers/specs/active/2026-07-12-hybrid-bm25-rrf-design.md.
Why
absence_diagnosis today uses vocabulary q-gram similarity + difflib did-you-mean. LadybugDB BM25 — now available on every search as a first-class signal after #431 — beats both for exact-identifier / typo cases (DistributionChunkService, processClientMessage).
Scope
Why deferred from #431
Kept rank-only in #431 so the ranking eval (recall/precision @k) stays cleanly attributable. Did-you-mean quality is a different metric needing its own harness.
🤖 Generated with Claude Code
Tracks deferred work from #431 (fork B). Design ref:
docs/superpowers/specs/active/2026-07-12-hybrid-bm25-rrf-design.md.Why
absence_diagnosistoday uses vocabulary q-gram similarity +difflibdid-you-mean. LadybugDB BM25 — now available on every search as a first-class signal after #431 — beats both for exact-identifier / typo cases (DistributionChunkService,processClientMessage).Scope
absence/absence_diagnosis.py:diagnose.Why deferred from #431
Kept rank-only in #431 so the ranking eval (recall/precision @k) stays cleanly attributable. Did-you-mean quality is a different metric needing its own harness.
🤖 Generated with Claude Code