The canon includes two multi-word shift verbs: `enter-mode` and
`exit-mode`. `validateEventName` was splitting at the first dash and
checking the canon for `enter` / `exit` alone — those aren't canon,
so legitimately canonical events like `shift-enter-mode` were being
flagged as drift.
Fixed by matching the longest canonical verb prefix against the tail
(family-verb shape) or against the name (bare verb shape). Handles
trailing variants too — `shift-enter-mode-edit` recognises
`enter-mode` as the verb and `edit` as the variant.
Verification:
- 1 new test covering multi-word verb shapes; 19/19 pass
- `npm run morfo:vocabulary`: 58 → 57 warns (editable.shift-enter-mode
no longer falsely flagged), EXIT 0
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>