---
title: MOC-anti-patterns
summary: What "AI default" looks like, and what to do instead.
tags: [moc, anti-patterns]
---

# MOC — Anti-Patterns

The frame: *could this have been generated in 30 seconds with a prompt?* If yes, fix it.

This MOC is short on purpose — most anti-patterns are subtle enough to live as one consolidated reference. When in doubt, load this one.

## Nodes

- [[ai-default-tells]] — Purple gradients, Inter/SF Pro, bootstrap card layouts, lorem ipsum, pure black dark mode, default Lucide icons, gradient buttons without reason, hero + 3-cards + FAQ marketing pages, stock UI sounds. The full list.
- [[unslop-pass]] — The procedure: squint, subtract first, sweep color → type → layout → decoration → icons → copy → motion, put a point of view back, audit for survivors.
- [[content-authenticity]] — Real data not lorem. Specific odd numbers ("127 customers", not "100+"). Written copy that sounds like a person. Real photos. Dates with context.
- [[copy-tells]] — The statistical habits of generated prose (model vocabulary, not-just-X, rule of three, em dashes, puffery, chatbot residue) and the two tests every product sentence must pass.
- [[code-tells]] — Narrated comments, catch theater, silent fallbacks, casts, V2 names, dead scaffolding; the default fix is deletion.
- [[screenshot-critique]] — Critique the render, not the code: single-purpose passes at three widths, a fixed write-up per round, fix idea → hierarchy → composition → … → motion, stop at three rounds.

- [[leftovers-and-leaks]] — What must not ship: dev panels behind a dynamic import, scaffolding routes, logged sessions, secret-shaped public env vars, TODOs on money and auth paths.

## Cross-cluster

- Specific defaults are addressed in their own MOC: [[color-monochromatic]] for color, [[typography-humanity]] for fonts, [[dark-mode]] for `#000`, [[icon-systems]] for Lucide, [[sound-palette]] for stock-pack sounds.
