## 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 --strict`) ## Documentation - [ ] CHANGELOG entry: automated — release-please builds it from the Conventional Commit subjects, so check those read well; do not edit CHANGELOG.md by hand - [ ] README updated (rules table / precision numbers / flags and output) ## AI usage - [ ] No AI used - [ ] AI used — what was delegated, and what was verified independently