Meta · a map that can't drift from its territory

A pattern from the gf.cx specimen book

The map the library draws of itself

A human sitemap page for the pattern library — but one whose structure and counts are generated from the library itself, so the map can never quietly disagree with the territory.

The pattern

"A sitemap hand-maintained beside a growing corpus is a drift source waiting to happen. Generate the map from the corpus's own meta.json, and make the generator refuse to ship until every pattern is categorised."

See it live → /sitemap/ The generator → patterns_sitemap_render.py

The problem

The library wanted a front-page ledger — a dare.co.uk/sitemap-style three-column picture of what's held, grouped into playbooks with per-family counts. The obvious way to build it is to hand-write the columns and type the numbers. That is a second source of truth. The day a new pattern ships, the hand-typed map is silently wrong: it still says "9" where the family now holds 10, and nobody notices because nothing failed.

The shape

The self-reference

This pattern is itself in the taxonomy — it sits in Foundation → Meta. So adding this page's meta.json moved the library from 27 to 28 patterns, and the generator counted it into its own Meta family automatically. The sitemap documents the library, and the library contains the sitemap: the map is part of the territory it maps.

When it breaks

Where it applies

Reusable elements

Reference

Live page
patterns.gf.cx/sitemap/ — "The shape of the archive".
Generator
tools/patterns_sitemap_render.py — run from the repo root; writes sitemap/index.html.
Sibling
Surface assembled from patterns — the same single-source discipline applied to a whole surface rather than an index.
Form
Mirrors dare.co.uk/sitemap's three-column ledger.