antipattern

Use when

You are filling the resonance table and a row's arrow-to-the-spine cell comes up empty.

What it is. A system, mechanic, or feature that has no arrow back to the spine — you can’t say how it expresses the core tension, only that it’s there. In a process-the-spine resonance table it’s the row you can’t fill. It isn’t wrong, exactly; it’s inert. Depth would couple to the tension; decoration just sits beside it.

Why it hurts. Nothing is free. Every inert element costs build time, UI space, a tutorial line, and — worst — a share of the player’s attention that should be on the spine. A game reads as one thing only when every part points the same way; decoration blurs that focus and makes the real tension harder to feel. Ten inert features don’t add up to depth — they add up to noise around a signal.

The smell

The “and also” feature: you describe the game as “it’s about [spine] — and also there’s crafting, and also a day/night cycle, and also a reputation meter.” Every “and also” with no “because it sharpens the tension by…” is a decoration. Contrast a coupled element, which you describe as “and the flare burns fuel because looking has to cost life.

How it happens

OriginWhat you did
Genre checklist”Survival games have crafting, so I added crafting” — a convention imported without asking if this spine wants it.
Corpus mimicryYou surveyed similar games and copied their feature list instead of deriving from the mechanic — exactly what AGENTS.md warns against.
Sunk costYou built it early, before the spine was clear, and kept it because it exists.
Fear of thinnessA tight, coupled game looks small on a feature list, so you padded it to seem substantial — the antipattern-false-depth reflex.
Feature soupEach addition was individually defensible; the sum has no center — see antipattern-feature-soup.

The tell (check YOUR OWN design)

The fix

Cut it, or couple it. Two honest moves, no third:

Twist seams

Seen in…

SymptomThe inert element
”It has a fishing minigame” (in a game not about fishing)A mode with its own systems that touches the spine nowhere.
A reputation meter that never changes what you doA number that displays but doesn’t feed a decision — cousin of antipattern-false-depth.
A skill tree of passive +% nodesGrowth that doesn’t change how you play, only the magnitudes — drifts toward antipattern-boring-optimal.
A crafting tree in a combat game where you just buy the same gearA parallel economy that resolves to the shop anyway.

Composition notes

Verify / guard

Before handoff, complete the resonance table: every element gets a row, every row names its arrow. Any unfillable row is a decoration — cut it or couple it, don’t ship it. scripts/build-design-index.mjs enforces that a recipe declaring a spine carries the table at all; you enforce that the table has no empty cells.

Once the game runs, decoration is mechanically detectable: the ablation proof ([[design/FUN.md]] law 8, assertLoadBearing from @hayao) neutralizes the suspect coupling and checks whether the skilled-vs-lazy gap collapses. A coupling you can ablate without flattening the skill-gap is carrying no tension — that is decoration, proven, not argued. A feature that appears in no fun-claim is a feature the game doesn’t need to prove, which usually means one it doesn’t need.

This module rendersthe repo's markdowndirectly — edit it there, it changes here.