# The third one-branch template miss — this repo's recurring blind spot _2026-09-22 · booth_ **All four arms of the U4 code-review panel found the same drift, independently.** That is the strongest convergence either panel has produced here. The booth header's sub-line forks on `{% if board %}`, and the U4 lifetime macro had been added only to the `{% else %}`. So **a booth carrying `links.md` rendered a link count and nothing at all about its lifetime** — no countdown, no hold — while INV-4 said the templates have no path that renders neither. The standing board being kept by construction (`booth link` drops `.forever` on first use) is what hid it; a **released** board or a hand-made `links.md` booth is a live non-kept booth on that path, and both are reachable from the UI. **This is the third of the same shape in this repo's short history:** 1. `blurtoggle` — the blur only patched the image/video `
`; inline docs render through their OWN branch and shipped unblurred. Suite green; a live look caught it. 2. verbatim chrome — a verbatim booth's own `index.html` is served untouched, so the inline marks panel never renders there. Found by looking at the live service during U4, not by the suite. 3. the board branch — this one. **The pattern: the suite renders the surface the author was thinking about.** Every one of these was a second branch of a conditional the author had already satisfied once and stopped reading. A cold reader with no idea which branch was "the real one" finds them; the author does not, and neither does a test the author wrote. **Practical consequence for this repo.** When a template gains a fact, grep the template for `{% if %}` in the block you edited and render EVERY branch in a test — one test per branch, each rendering only its own surface, or the passing test on branch A will mask the omission on branch B. U4 now has one per surface (index card, booth header, board header, marks page) for exactly this reason. Declined, and worth recording: Regin and Kimi both recommended amending INV-4 to carve the board header out, on the grounds that board layout belongs to U7. **Cutting an invariant down to fit an implementation gap is the wrong direction when the fix is one template edit**, and U7 owns navigation and section layout — not whether a header states a lifetime.