{"id":"pattern.source-of-truth-before-automation","slug":"source-of-truth-before-automation","type":"pattern","version":"0.1.0","maturity":"hypothesis","status":"published","title":"A source of truth must precede meaningful automation","summary":"Establish one authoritative representation of intent before automating projections, decisions, or execution from it.","audiences":["architect","operator","agent-builder"],"relationships":{"supports":["pattern.intent-survives-execution","pattern.versioned-decisions"],"contradicts":[],"depends_on":[]},"disclosure":"green","approved_by":["chrisleeddotcom"],"license":"CC-BY-4.0","created":"2026-08-21","updated":"2026-08-21","canonical_url":"https://intentarium.com/patterns/source-of-truth-before-automation/","source":{"repository":"https://github.com/Intentarium/canon","commit":"a8b303818e72c20505bd9ef56f5fb2d0448aa6f3","path":"patterns/source-of-truth-before-automation.md"},"body_markdown":"## Context\n\nAn organization wants automation across records, interfaces, tools, or teams whose versions of reality disagree.\n\n## Problem\n\nAutomation does not remove ambiguity; it executes ambiguity faster. When inputs have no declared authority, every integration embeds an undocumented reconciliation rule and every output becomes another competing source.\n\n## Forces\n\n- Existing systems contain valuable but inconsistent data.\n- Declaring authority can expose unresolved ownership conflicts.\n- Teams want immediate automation gains.\n- Centralizing everything can create a new bottleneck.\n\n## Pattern\n\nDeclare the canonical representation for each class of intent or fact. Treat indexes, caches, dashboards, embeddings, rendered pages, and downstream databases as projections with known provenance and rebuild paths. Resolve conflicts at the authority boundary rather than independently in every consumer.\n\n## Apply it\n\nInventory representations and name the owner, update path, freshness expectation, and recovery method for each. Mark exactly one canonical source per field or decision class. Where authority is legitimately distributed, define an explicit composition rule and preserve its inputs.\n\n## Failure modes\n\n- “Source of truth” means the most convenient database, not the authorized record.\n- Generated output overwrites its source.\n- A cache becomes canonical because rebuilding it is difficult.\n- Conflict resolution remains hidden in integration code.\n\n## Evidence needed\n\nMeasurements of reconciliation work, divergent records, failed rebuilds, and time required to explain why a downstream value exists."}