semantic-szz-analyzer
Installation
SKILL.md
Semantic SZZ Analyzer
This skill is a delta over → szz-bug-identifier. Run classic SZZ first; this skill filters and re-ranks its candidates using semantic understanding instead of line-level blame.
Classic SZZ's precision problem: git blame is textual. It tells you who last touched a line, not who last changed its meaning. A variable rename, an indent, a refactor that moves a line unchanged — all of these become false-positive bug-introducers.
Semantic filters — applied on top of classic SZZ output
| Filter | What it checks | Effect |
|---|---|---|
| AST-diff meaningfulness | Did the blamed commit change the line's AST, or only its text? | Drops rename/reformat FPs |
| Def-use chain relevance | Does the blamed line define/use a variable that the fix reads/writes? | Drops incidental adjacent-line hits |
| Semantic-preserving refactor | Is the blamed commit a known-safe refactor (extract method, inline, rename)? | Reroutes blame to the commit before the refactor |
| Bug-pattern match | Does the blamed commit's diff look like it introduces the kind of bug the fix addresses? (null check added → look for the commit that removed a guard or added the deref) | Boosts confidence when matched |
Re-ranking
When multiple candidates survive filtering, rank by: