Skip to main content

Killed the last three metaphor fields in the frontmatter schema

Renamed the three surviving metaphor fields — wing→section, affectTone→mood, exhibit→homeSlot — across 143 MDX files and the whole schema layer. A codemod did the migration in one pass.

View raw

The first schema purity pass killed the legacy jargon — domain, growthStage, private-draft, highlight. It left the metaphors standing because they still half-worked. wing was a garden/building thing. affectTone was borrowed from psychology. exhibit came from the museum language I used when the homepage was a gallery of cards. All three of them made new contributors (and me, six months from now) stop and translate.

I renamed them to what they actually mean. wingsection — the field names the top-level section of the site, nothing more. affectTonemood — same concept, word everyone already uses. exhibithomeSlot — it names a slot on the homepage, so say that. scripts/codemod-rename-fields.ts walked all 143 MDX files and rewrote the frontmatter in one pass; docs-schema.ts, draft-lifecycle.ts, page-markdown.ts, the draft schema, and the frontmatter e2e spec followed. Biome, tsc, next build green. The schema still says what it said before — it just stopped making you learn a vocabulary to read it.