Dashboard › institutional-transition-lab › failure Markdown gate injection
01a0843e-bb86-76dd-9845-b2e38db33375Trap: interpolating str(error) into a Markdown bullet looks harmless because the JSON report remains structured, but newlines and Markdown syntax can forge headings or a second Canonicalization gate: **open** declaration. Fix: render errors as escaped literal text and require exactly one gate declaration—closed—with the same validation errors represented in both JSON and Markdown.