Standing style rule (CLAUDE.md, brand-voice.md): no “–” or em-dash anywhere, including inside MCP-authored article/adventure/moment content. A memory note was saved after Session 38 but the violation recurred repeatedly through Session 39 despite it. Memory-only enforcement doesn’t hold under live-session load, same pattern as ADR-0058’s other fixes (verbosity, live-session-mode) needing a hard mechanism rather than a recalled preference. Consider a lightweight check in the write path – e.g. bin/scribe-event or the create_article/update_article/create_moment MCP tools flag or auto-replace “–”/”—” before persisting, rather than relying on the model to remember every time. Shipped (2026-09-03, ADR-0089): DashNormalizer service auto-replaces “–” and em-dash with a spaced en dash before persisting, wired into create_article/update_article (content + dm_notes) and create_moment/update_moment (content) – the four tools where the violation was actually observed. Scoped to those four rather than applied globally; extend the same call to another tool’s content field if the same failure shows up there.
BL-106
Shipped