Knowledge-Driven
Development

The code is a cache of the specification. The specification is the truth.

A methodology for product teams building complex systems — where structured specifications are the source of truth and code is derivable.

Your knowledge is fragmented

You invest enormous effort writing code, but the knowledge justifying it lives scattered and decaying.

🔍

Fragmented knowledge

Critical decisions live in Jira tickets, Slack threads, wikis nobody reads, and engineers' heads. There is no single place to understand why the system works the way it does.

📉

Documentation that rots

Docs are written once and forgotten. Within weeks, they diverge from reality. Nobody trusts them, so nobody reads them, so nobody updates them.

🚪

Knowledge walks out the door

When people leave, they take the why with them. Onboarding becomes oral tradition. Each departure is an institutional memory loss.

What is KDD?

A practice where domain knowledge is more valuable and durable than any implementation. Technologies change, frameworks die, architectures evolve — but specifications endure.

Principle 01

Documentation as Source of Truth

Each concept, rule, and decision has one canonical place. The specification defines what the system should do; code implements the specification. If they diverge, one is wrong.

"The code is a cache of the specification."

Principle 02

Documentation as Knowledge

Documentation is not dead text. It's a living, navigable knowledge graph — consultable by humans for onboarding and by AI agents for reasoning, search, and code generation.

"Living knowledge for humans and machines."

Principle 03

Documentation as Code

Specifications follow the same rigor as code: versioned in Git, linted, tested, and deployed. A full pipeline — edit, lint, test, deploy — ensures they stay accurate.

"Same rigor as code: version, lint, test, deploy."

Six Layers of Specification

Each layer answers a fundamental question about your system, building progressively from business context to technical implementation.

01
Problem
"Why does this exist?"
Business context, user pain, measurable objectives, and key decisions. The anchor for all priorities.
PRD Business Context ADRs
02
Domain
"What concepts exist?"
Pure domain model — entities, value objects, aggregates, events, and business rules. Technology-free.
Entities Value Objects Events Rules
03
Capabilities
"What can the system do?"
Abstract operations the system supports — decoupled from any interface. Commands write, queries read.
Commands Queries Processes
04
Interaction
"How do users interact?"
Use cases, UI views, components, and navigation flows. The interface is a client of capabilities, not their definition.
Use Cases Views Components Flows
05
Verification
"How do we verify it works?"
Executable acceptance criteria (Gherkin), formal requirements (EARS), and full traceability from test to business rule.
Requirements Acceptance Criteria Traceability
06
Architecture
"How is it technically built?"
Technical stack, repository topology, and artifact-to-code mappings. Change the charter, regenerate scaffolds — specs stay untouched.
Implementation Charter Technical ADRs

Dependency rule: each layer only references layers below it. Domain stays pure, capabilities stay generic, UI is replaceable.

Who is KDD for?

KDD is designed for teams where the cost of losing knowledge exceeds the cost of capturing it.

Complex domain teams

Product teams building systems where business rules, entities, and processes are too intricate to live only in code.

🏛
Regulated industries

Organizations needing traceability from every feature back to a business requirement — healthcare, finance, legal.

🔄
Long-lived systems

Teams where the knowledge must outlive any specific technology choice, framework version, or team composition.

👥
Scaling organizations

Cross-functional teams that need a shared language and shared source of truth to stay aligned as they grow.

What you get

📍

Single Source of Truth

Every concept has one canonical place. Code, tests, and docs all derive from the same specification. No more conflicting versions.

Executable Specifications

Gherkin acceptance criteria become automated tests. Your documentation can't go out of sync because it is the test suite.

🔎

Impact Analysis

Bidirectional links form a knowledge graph. Ask "if we change Rule X, what breaks?" and get a precise answer.

🔧

Technology-Agnostic

Layers 1–5 are technology-free. Swap frameworks, rewrite the backend, redesign the UI — your specifications survive.

🚀

Onboarding Acceleration

New developers read the domain, not tribal lore. Self-service onboarding replaces weeks of "ask the senior engineer."

🤖

AI-Ready Knowledge

Atomic Markdown files with semantic metadata are ideal for RAG, embeddings, and AI agents that reason about your system.

Start building with KDD

The methodology, templates, and full documentation are open source. Clone the repo and start structuring your domain today.

Get started on GitHub