The ID graph
Features, decisions, and architecture notes get permanent greppable IDs with typed edges — the index an AI maintainer would otherwise rebuild every session.
Everything is a zod-validated content collection: FEAT-nnnn features,
DEC-nnnn decisions, ARCH-nnnn architecture notes (deferred until build —
during dreaming, architecture pages are the procrastination trap in a new
hat).
IDs are permanent, unique, and greppable. Hierarchy lives in
sub_feature_of edges, never encoded in the ID itself. Typed edges —
depends_on, decisions, affects — make the graph queryable, and the
closed world is validated in CI.
Every feature carries the version it first ships in, its status, and the
decisions it hangs on. The roadmap page is generated from this frontmatter —
there is no second source of truth to drift.