1b9b33fa3f
Adds a rules-based device category router that classifies a signal by frequency band + timing ratio + pulse count BEFORE the per-protocol scoring loop, restricting the candidate set. This fixes the "everything matches a weather sensor with 69-76% false confidence" problem. - src/matcher/category_router.py: frequency-band + timing routing - pattern_decoder.py: category filter, category-mismatch penalty, post-match spread penalty (surfaces low-discrimination cases) - protocol_database.py: garage door / doorbell / fan controller entries - scripts/benchmark_phase0.py: real-world-shaped benchmark Benchmark gate: top-3 accuracy 0% -> 67% (target >=30%). 52/52 unit tests pass. NOTE: benchmark .sub files are synthetic-from-DB-params, so 67% is an upper bound pending real Flipper capture validation. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>