GOD Docs
Developer-facing, template-enforced, dependency-tracked, deterministically verifiable architecture documentation.
Core Concept
GOD Docs treat documentation as a build artifact. Staleness is computed, not guessed. Three-level hierarchy (System → Domain → Component), template-enforced structure, declared inter-doc dependencies, and enforcement via git hooks + CI.
Full specification: references/spec.md
Pre-Requisite: Domain Decomposition
Before any GOD Docs, the repo MUST be split into non-overlapping domains. Every source file maps to exactly ONE domain. This is what makes dirty-checking deterministic.
Hierarchy
docs/GOD.md # Level 0: System
docs/domains/{domain}/GOD.md # Level 1: Domain
{component}/GOD.md # Level 2: Component
Quick Start
Initialize in a Repo
-
Create template directory and templates:
mkdir -p docs/templates docs/domains docs/sync -
Copy templates from
assets/COMPONENT-GOD-TEMPLATE.mdandassets/DOMAIN-GOD-TEMPLATE.md -
Create system-level
docs/GOD.md— seereferences/spec.md§3 for required sections -
Install git hook from
assets/pre-commit→.githooks/pre-commit -
Run
git config core.hooksPath .githooks
Create a Component GOD Doc
- Copy template:
cp docs/templates/COMPONENT-GOD-TEMPLATE.md {component}/GOD.md - Fill ALL
{{PLACEHOLDER}}tokens — zero unfilled placeholders allowed - Add
<!-- GOD-DEPS: ... -->declaring upstream GOD Docs this component depends on - Register in parent domain GOD Doc (component map + link)
- Register in system GOD Doc (component registry table)
- Verify:
grep -c "{{" {component}/GOD.mdmust return 0
Create a Domain GOD Doc
- Copy template:
cp docs/templates/DOMAIN-GOD-TEMPLATE.md docs/domains/{domain}/GOD.md - Fill all placeholders
- List all components in this domain with links to their Level 2 GOD Docs
- Document domain-internal and cross-domain event contracts
Inter-GOD Dependencies
Each GOD Doc declares dependencies via HTML comment:
<!-- GOD-DEPS:
- event-bus
- schema-registry
-->
Meaning: this component consumes events/schemas/APIs from those components. When a dependency's GOD Doc changes, this doc is transitively flagged stale.
Dirty-Check Algorithm
1. Collect changed files (git diff)
2. Map files → owning component
3. If source changed but GOD.md didn't → DIRTY
4. Walk GOD-DEPS graph: dependents of DIRTY docs → TRANSITIVELY DIRTY
5. Output: all DIRTY ∪ TRANSITIVELY DIRTY
Two enforcement layers:
- Git hook (pre-commit): interactive prompt, local
- CI action: blocks merge on stale docs — see
references/spec.md§6.3
Template Required Sections
Component GOD Doc (Level 2)
- Overview (non-technical)
- Component-Centric Architecture (Mermaid component-level diagram)
- Interfaces (CLI commands, API endpoints)
- Technical Deep-Dive (patterns, implementation)
- Development & Deployment
Domain GOD Doc (Level 1)
- Domain Overview
- Domain-centric Architecture/Topology (Mermaid diagram)
- Component Summaries (with links to Level 2 docs)
- Cross-Component Interactions and/or Messaging
- Shared Infrastructure
System GOD Doc (Level 0)
- System Topology (Mermaid diagram)
- Domain Reference Table
- Component Registry (name, domain, status, GOD Doc link)
- Cross-Domain Dependency Graph
- System-Wide Data Flows
- Infrastructure Requirements
Key Principle
If you can't cleanly decompose your repo into non-overlapping domains, GOD Docs aren't ready for you yet. Fix that first.
