Skill / Architecture
Single source of truth
Prevent shared facts from drifting by assigning each one a canonical owner.
Goal
Give every fact one authoritative definition and derive, generate, or validate every other representation from it.
Ownership and derivation rules for canonical facts, generated projections, and system boundaries.
Checks
1Name the canonical owner for each fact, such as a schema, manifest, config definition, or state owner, and keep dependency direction downstream from it.
2Derive types, ids, registries, routes, navigation, docs metadata, defaults, view values, and structural test fixtures instead of restating the same fields or allowed values.
3Treat generated manifests, mirrored fixtures, public mirrors, and serialized projections as read-only outputs; regenerate them reproducibly and fail validation when they drift.
4When direct derivation is impossible, isolate one adapter or synchronization boundary with an explicit owner, lifecycle, and invalidation rule.
Avoid
1Parallel hand-maintained enums, lists, defaults, route maps, docs tables, config values, fixtures, or UI state for the same fact.
2Two writable peers kept aligned by effects, listeners, copy steps, or bidirectional synchronization without an authoritative owner.
3Editing generated output or copied fixtures directly instead of changing the canonical source and regenerating.
4A god manifest that owns unrelated concepts; single source of truth means one owner per fact, not one file for the whole system.