Nine defects found in one week where the design system chose well and the render layer quietly discarded the choice. The shapes these bugs take, why they never error, and how to find them.
When Jon says the sites look ugly, boring, or samey, the instinct is to re-prompt the model. Do not start there. Across a full week of work in September 2026, every single cause was a narrowing between the decision and the pixels. The muse chose well and the render layer threw the choice away. Nothing errored. Results were just quietly smaller.
Print the decision, then trace what survived to the pixels.
That is the whole method. dz muse do=brief biz=<id> prints the exact brief the generator was given; the muse reading holds what it answered; the live CSS holds what arrived. The bug is always in a gap between two of those three, and it is always silent.
1. A vocabulary narrower than the thing it describes. display_style allowed ten values while the 100 direction families speak about thirty-nine (humanist-warm, letterpress-roman, wood-type-revival). Unmatched values did not fail — they fell back to <family>:modern, so a muse asking for humanist-warm was served Inter. Five typefaces covered 73% of the network; Playfair and Cormorant alone were 37%. Same shape in section_variants, where why-choose-us offered exactly two values, so 742 of 864 muses "chose" the same one.
A stored value is only a decision if the schema offered an alternative. Where it did
not, treat it as a default and let the current default win. reading_version is the
marker for this — see the deferral rule in muse-sections.php.
2. A fallback that lands on the most generic option is worse than a crash. A crash gets fixed. A silent fall-through to Inter looks like a choice, survives review, and teaches everyone that the model has no taste.
3. Positional slots that assume a role. --muse-neutral-2 meant "second after a luminance sort". 91% of palettes carry exactly two neutrals — paper and ink — so slot 2 was the ink, and every rule grounding an element in it painted black-on-black. Dollywood shipped a 271px footer, fully laid out, opacity: 1, every glyph invisible.
Test the property you need, never the index. A surface slot has to be able to carry
the ink; ask it, do not assume it. The same guard is why --muse-fg is now deepened
along its own hue when the darkest neutral cannot carry text (28% of sampled muses).
4. Two correct systems colliding. Hero treatments pair --hero-panel-bg with an AA-computed --hero-panel-text; hero compositions force white for a scrimmed photo. Both applied; the composition selector carried one extra element, so it won — white on a #fafaf6 panel, 1.02:1. Neither system was wrong alone.
When another system has already decided ground and ink together, stand down — for
colour and layout. Sections that paint their own background declare
data-muse-own-ground so the alternating tone wash leaves them alone.
5. Chrome that depends on an optional layer. The hero CTA's colour was pinned inline and its shape delegated to museHeroCtaCss, which only runs when a muse exists. elks-root.php styles it for its own theme. Sites with neither — 1,154 of them — rendered display:inline; padding:0; text-decoration:underline, a 92×22 underlined text link under the 44px tap-target minimum.
If a base element needs chrome, ship the chrome with the element at low specificity.
Optional layers may override; they may not be the only provider.
Hardcoded CSS overriding the palette. 315 bare hex values against 114 var(--muse-*) uses across 50 archetype stylesheets. The muse picks a palette, the archetype paints over it — which is why every editorial_magazine site was the same cream. Wrap as var(--muse-X, <original>): zero visual regression, real variety gained. Dark archetypes must map ground→--muse-fg and ink→--muse-bg or they flip to light.
A suffix must be applied to every selector in a list. "$a, $b, $c" . "::after" binds the pseudo-element to $c only; $a and $b get the declarations applied to the element itself. On the underline hover muses that made .btn, .card and .contact-card into absolutely-positioned full-width strips, which is what tore apart Dollywood's header and Get In Touch. The quiet half of the same bug: $hovers:hover meant only .service-card ever responded to hover, on 373 muses.
A closer must be paired with its opener. NearByMeNow's Filters chrome <div> opened inside the niche-page branch and closed unconditionally. On every free-text search and every empty niche page the closer shut .container instead, and the sort bar, cards and nearby block rendered 60px left of the heading. Nothing errored; the browser repaired the tree and the page merely looked wrong. Same family as ground-and-ink: when a wrapper is conditional, carry a flag ($__chromeOpened) and close on the flag, never on faith.
A ground must be paper. --muse-bg is "the lightest neutral", and everything downstream assumes that means paper. A palette whose lightest neutral is a mid-grey has no paper, and no guard could save it: the ink guard pushed text to black (4.4:1) and the text-on picker read the grey as dark and put cream on it (2.94:1). The paper guard lightens a sub-mid ground toward white, keeping its tint, until it carries the ink at 7:1. Same family as the ink guard: test the property (can this carry text?), never the position (it sorted lightest).
A brand colour is not a text colour. The header printed the business name in --color-primary; a yellow primary on white measured 1.34:1. --muse-primary-text is the primary deepened until it reads on the ground, and it is what every "primary as ink" rule should reach for.
Check your own probe first, again. A contrast scanner that parses color(srgb 0.96 0.98 0.88) as three 0-255 channels reports 1.42:1 on slate over pale green. Two false leads in one session came from the probe, not the page.
javascript_tool (getBoundingClientRect, getComputedStyle,elementFromPoint); look with dz screenshot ... full=1. The in-app browser pane serves stale frames and has caused several false diagnoses.
"257 businesses, 7.0%" — and sometimes into "actually that was my probe".
Related: [[the muse system]](../systems/muse-system.md) · [[design standards]](../systems/design-standards.md) · [[hostile CSS environment]](hostile-css-environment.md) · [[fix the source, not the symptom]](fix-the-source-not-the-symptom.md) · [[spotcheck]](../processes/spotcheck.md)