FULL-Tier Detectors (auto-precise)
Goal
Implement the 6 high-precision detectors as composed queries in seam_scan.py: cross-crate clone-DRY (extend skeleton), crate-rank layering back-edge (consuming §01 calibration), dead-code (is_dead_code_candidate), file-bloat (max(end_line) > 500), param-sprawl (param_count >= 5), and 3+-caller fan-in (cascading-fix / three-strike). Each emits Candidates with file:line + evidence.
Implementation Sketch
One composed-query function per detector returning Candidate[], registered in a category-keyed registry, all routed through the verification gate. Apply the noise filters proven this session (non-test, body-span thresholds, cross-crate) — the raw signals are dominated by trivial/test bodies without them.
Spec References
impl-hygiene.md LEAK:algorithmic-duplication / WASTE:dead-code / BLOAT:file-size / PARAM_SPRAWL / Cascading-Fix three-strike; canon.md §1 (crate rank).
Work Items
- Implement the 6 FULL detectors (clone-DRY, layering-back-edge, dead-code, file-bloat, param-sprawl, fan-in) as composed queries
- Add a category-keyed detector registry consumed by
seam_scan.py - pytest per detector asserting the noise-filter behavior (cross-crate, span, non-test)