Iter 9 revealed two quality bugs in the extractor:
1. Kimi wraps the Flag column in backticks (\`DeadCode\`), so the flag
name itself was captured as a code token. Result: pattern_keys like
"DeadCode:DeadCode" that match nothing and add noise to the index.
Fix: filter FLAG_VARIANTS out of token candidates.
2. Complex backtick content like \`Foo::bar(&self) -> u64\` was rejected
wholesale by the identifier regex. Fallback now scans for identifier
substrings and ranks by ::-qualified paths first, then length.
Bonus: filter Rust keywords (self, mut, async, etc) since they're
grammar, not bug-shape signal.
Dry-run on iter 9 delta.rs output produces semantically meaningful keys:
DeadCode:DeltaStats::tombstones_applied
NullableConfusion:DeltaError-DeltaStats-apply_delta
BoundaryViolation:apply_delta-journald::emit-rows_dropped_by_tombstones
PseudoImpl:apply_delta-delta_ops-validate_schema
These are stable under reviewer prose variation (canonical sort + top-3
slice) and precise enough to separate different bugs within the same
Flag category.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>