ADR-002 — Source of Truth Strategy¶
Status: Accepted
Date: 2026-07-04
Owner: Architecture Board
Decision Type: Foundational
Context¶
UC-BoK is now a model-driven knowledge platform.
The repository contains project identity, architecture decisions, normative specifications, validation schemas, canonical catalogs, executable graph logic, query tooling, documentation, generated output and planning material.
Without an explicit source-of-truth strategy, the repository risks duplicating knowledge across canonical catalogs, normative specifications and generated documentation.
This ADR defines the authoritative source for every major information type and freezes the repository responsibility model.
Decision¶
Every information type SHALL have exactly one authoritative source.
Generated, compatibility and transitional files SHALL NOT become authoritative.
No new top-level directory SHALL be introduced without an ADR.
No existing top-level directory SHALL change responsibility without an ADR.
Source Of Truth Matrix¶
| Information Type | Authoritative Source |
|---|---|
| Project identity, vision, mission and principles | PROJECT.md |
| Architecture decisions | adr/ |
| Normative framework rules | specifications/ |
| Machine-readable validation rules | schemas/ |
| Canonical Unified Commerce knowledge | catalogs/ |
| Executable graph model | graph/ |
| Query runtime | queries/ |
| Automation, generators and validators | scripts/ |
| Validation scenarios | tests/ |
| Human-readable explanation | docs/ |
| Published generated site | site/ |
| AI working memory and reports | .context/ |
| GitHub and agent configuration | .github/, .skills/ |
Project Constitution¶
PROJECT.md is the Project Constitution.
It defines:
- project identity
- vision
- mission
- scope
- non-goals
- principles
- lifecycle
PROJECT.md is not business documentation, generated documentation or
architecture specification. It is the constitutional reference for why the
project exists and how it behaves.
Repository Classes¶
| Class | Paths |
|---|---|
| Project Constitution | PROJECT.md |
| Normative | adr/, specifications/ |
| Validation | schemas/, tests/ |
| Canonical | catalogs/ |
| Executable | graph/, queries/, scripts/ |
| Documentation | docs/ |
| Generated | site/, docs/generated/ |
| Configuration | .github/, .skills/, root configuration files |
| Temporary | .context/, caches, local exports |
Planning¶
The former planning/ directory is not part of the frozen canonical repository
layout.
Backlog and roadmap management SHOULD move to the issue tracker or another external planning system.
Planning files MUST NOT contain canonical business knowledge, normative architecture or generated documentation.
Removed in: v0.4.
Models Directory¶
The former models/ directory is removed.
Its content was migrated to catalogs/ and catalogs/legacy/.
The canonical business source of truth is catalogs/.
New business knowledge SHALL NOT be added outside catalogs/.
Generators, validators and query tooling SHALL read from catalogs/.
Removed in: v0.4.
Specifications Documentation¶
specifications/ is the only authoritative location for normative
specifications.
The former docs/specifications/ directory is removed.
The repository SHALL resolve this ambiguity by removing docs/specifications/
or replacing it with generated documentation derived from specifications/.
Decision: remove docs/specifications/.
Removed in: v0.4.
Knowledge Pipeline¶
The canonical repository pipeline is:
PROJECT.md
↓
adr/
↓
specifications/
↓
schemas/
↓
catalogs/
↓
validation
↓
graph/
↓
queries/
↓
docs/
↓
site/
Documentation MUST NOT bypass this lifecycle.
Generated artifacts are never authoritative.
Repository Layout Freeze¶
The repository layout is frozen after this ADR.
Allowed changes:
- adding content under existing directories according to their responsibility
- adding generated output through approved generators
- adding validation scenarios under
tests/ - adding ADRs under
adr/
Disallowed without a new ADR:
- new top-level directories
- responsibility changes for top-level directories
- new canonical source locations
- new generated output locations
- manual edits to generated output
Consequences¶
- Future work should focus on canonical catalogs and the executable knowledge model.
- Repository engineering issues should become rare.
planning/,docs/specifications/and the former model directory were removed inv0.4.- Validators and generators must progressively depend on
catalogs/,schemas/andspecifications/, not on legacy model files.