Context Driven Development
Context Driven Development
Rebuild projects from scratch using context files as the source of truth
What CDD Is
Context Driven Development is a specification-first way to build software where project intent lives in context files, not in transient chat state.
The most important principle is reproducibility: a project should be reconstructable from scratch from context files only, with clear outcomes and verifiable actions.
- Code is disposable; the durable IP is the problem-solving knowledge.
- Context files capture that knowledge as outcomes plus E2E-testable next actions.
- With strong context files, teams can rewrite code from scratch without losing features.
What a Context File Is
A context file defines one desired outcome and the next actions required to reach it.
- One file = one outcome.
- Context files describe what to build, not implementation details.
- Each file uses required YAML frontmatter (
context_id,title,project,created). - Required sections are ordered: Desired Outcome, optional Reference, and Next Actions.
- Next Actions are black-box E2E testable and written as
Description+Testtable rows.
What a Project Is
A project is an operational unit with its own project index at .context/<project-name>/index.md.
- The index is operational knowledge, not a numbered context spec.
- It documents overview, architecture, CLI usage, key dependencies, environment variables, and troubleshooting.
- It focuses on what the project does and how to run it, without embedding implementation code.
- Project metadata (
project_id, status, dependencies) keeps project relationships and sequencing explicit.