Architecture Docs Always Outdated? Let Code "Grow" Them Automatically
DEV Community

Architecture Docs Always Outdated? Let Code "Grow" Them Automatically

Terrain - Prepares the Ground So Agents Don't Have to Guess Where to Stand

๐Ÿ”— GitHub: https://github.com/sopaco/terrain

The Tech Lead's Pain: Documentation as Technical Debt

As a Tech Lead, you've definitely experienced:

  • Architecture docs that took two weeks to write become unrecognizable after one iteration
  • Every code review requires explaining "that's not how it's actually designed anymore"
  • When newcomers ask "how is this system organized?" you can only answer verbally because the Wiki is long outdated
  • When you ask a new AI assistant to explain the system architecture, it can only guess from the code

Once architecture docs drift from code, they become liabilities-worse than having no docs at all. Terrain's solution: let documentation emerge from code automatically, instead of being manually written from memory.

Knowledge Factory: Code as the Source of Documentation

Terrain's core is a "knowledge factory"-starting from a Git repository, it auto-generates three layers of documentation:

Git Code Repository
โ”‚
โ”œโ”€โ”€ scan โ”€โ”€โ–บ index.md (Project Index)
โ”œโ”€โ”€ pack โ”€โ”€โ–บ repomix.md (Source Index)
โ”œโ”€โ”€ context (LLM) โ”€โ”€โ–บ agent/context.md (Agent Macro Architecture Context)
โ”œโ”€โ”€ docs (ACP) โ”€โ”€โ–บ human/ (Five C4 Architecture Docs + Mermaid Diagrams)
โ””โ”€โ”€ track โ”€โ”€โ–บ freshness.json (Freshness Score)

Five C4 architecture documents are auto-generated, covering all levels from containers to code, with Mermaid diagrams.

Why Can It Stay "Always in Sync"?

Incremental Updates Instead of Full Regeneration

Traditional documentation tools regenerate everything each time. Terrain doesn't:

  • Tracks Git HEAD - Precisely knows which files changed since the last scan.
  • Only regenerates changed portions - Changes involve a module โ†’ update corresponding C4 doc; unrelated modules โ†’ reuse existing artifacts.
  • Baseline ledger - Records the Git HEAD for each scan; subsequent refreshes do incremental diffs only.

This means refreshing knowledge for a large project might take seconds instead of minutes.

Freshness Scoring System

Every knowledge asset carries a freshness score, based on:

  • Git code change volume vs. documentation's last generation time
  • CodeGraph symbol graph drift detection results

When the score drops below 50, Agents automatically reduce the weight of that knowledge asset-ensuring incorrect suggestions are never made based on outdated architectural information. The project list interface clearly displays each project's freshness score. Stale assets are instantly visible.

Dual-Track Output: Human-Readable, AI-Consumable

Audience Document Path Format
Human Developers / Tech Leads .terrain/human/ Narrative C4 docs + Mermaid diagrams
AI Coding Assistants .terrain/agent/context.md Structured architecture overview (โ‰ค 14 KiB)
AI Source Retrieval .terrain/agent/repomix.md Repomix source packs
Business Knowledge .terrain/knowledge/ Glossary and internal conventions

C4 docs cover four levels: Container โ†’ Component โ†’ Code โ†’ Dynamic, paired with Mermaid diagrams, unfolding layer by layer from macro architecture to micro implementation.

Source-First Trust Model

When documentation conflicts with code, Terrain follows clear priority:

repomix source code > CodeGraph symbol graph > context.md > human docs

This isn't empty talk-repomix packages real source code, CodeGraph indexes real symbol relationships. Architecture docs are just "visual interpretations" of source code. When interpretation conflicts with source, source code is always right.

Four-Phase SDD: Making Design Reviewable

Terrain's SDD (Specification-Driven Development) workflow divides development into four phases, each producing reviewable Markdown artifacts:

Phase Output Execution Engine
Requirements Analysis 1.requirements.md Native LLM
Technical Design 2.tech-design.md Native LLM
Code Generation 3.implementation.md + repo changes ACP Agent
Code Review 4.code-review.md Native LLM

SDD four-phase workflow. Each phase produces reviewable Markdown artifacts that Tech Leads can examine step by step. This means Tech Leads can:

  • Review whether requirements specifications are accurate
  • Examine whether technical design is reasonable
  • Confirm whether code generation matches the design
  • Verify whether code review is thorough

Every step is documented and traceable. Every step is reviewable.

Quick Start

# Initialize a project (auto-generate C4 docs and Agent context)
terrain init ./my-repo

# View architecture overview
terrain project overview --project my-repo

# Run SDD requirements analysis phase
terrain sdd run --project my-repo --phase requirements

# Refresh knowledge (incremental, only update changed parts)
terrain refresh ./my-repo

Who Is This For?

  • Tech Leads - Architecture docs never go stale, always in sync with code.
  • Architects - C4 docs auto-generated from code, eliminating massive maintenance overhead.
  • Team Managers - New member onboarding compressed from days to minutes.
  • Code Reviewers - SDD workflow makes every design step traceable and reviewable.

"Great architecture isn't written-it grows from code."

Read on DEV Community ↗ ← Back to News

Comments

No comments yet. Start the discussion.