## Problem ## Solution ## Rule changes - [ ] No rule behaviour change - New or changed rules (name + what now fires / no longer fires): - [ ] Precision measured for any new rule (fixture contract at minimum, real-code adjudication where possible — see `tool/adjudicate.py`) ## Release Note - [ ] Internal only (no user-facing release note) - User-facing summary (1-2 bullets, outcome-focused): - Migration or operator note (if needed): ## Breaking Changes - [ ] None - [ ] Yes — details: ## Tests - [ ] Unit - [ ] Rule contract (positive **and** negative control) - [ ] Recall manifest still passes (`pipe recall --root