Indexed PRD and Design Doc Strategy

James Phoenix
James Phoenix

A documentation-driven development pattern where a single index.md links all PRDs and design documents, creating navigable context for both humans and AI agents.

The Problem

Product requirements and design documents scatter across folders. Finding the right doc requires folder diving. AI agents lack a single entry point to understand system scope.

The Solution

Create a docs/index.md that serves as the single source of truth:

docs/
├── index.md           ← Central navigation hub
├── prd/
│   ├── PRD-001-core-feature.md
│   ├── PRD-002-secondary-feature.md
│   └── ...
└── design/
    ├── DD-001-data-model.md
    ├── DD-002-service-layer.md
    └── ...

Index Structure

The index.md contains:

1. PRD Table

PRD Title Status
PRD-001 Core Feature Phase 1
PRD-002 Authentication Phase 2

2. Design Doc Table

DD Title Implements
DD-001 Data Model PRD-001
DD-002 Auth Flow PRD-002

The “Implements” column creates explicit traceability between design and requirements.

3. Implementation Phases

Group PRDs by release phase:

  • Phase 1 (MVP): Core functionality
  • Phase 2: Integrations
  • Phase 3: Advanced features

4. Key Technical Decisions Table

Decision Choice Reference
Database SQLite DD-001
Framework Effect-TS DD-002

One-line rationale with pointer to the design doc that expands on it.

5. Dependency Graph (ASCII)

PRD-001 (Core) ──────► DD-001 (Data Model)
       │
PRD-002 (Auth) ──────► DD-002 (Auth Flow)

Shows how requirements flow into design decisions.

Naming Convention

  • PRDs: PRD-NNN-kebab-title.md (e.g., PRD-001-core-task-management.md)
  • Design Docs: DD-NNN-kebab-title.md (e.g., DD-001-data-model-storage.md)

Sequential numbering makes ordering clear. Kebab-case titles make files greppable.

Why This Works

  1. Single entry point: Point an AI agent at docs/index.md and it understands the entire system scope
  2. Traceability: Design docs reference PRDs they implement. No orphaned specs.
  3. Phase awareness: Anyone can see what’s MVP vs. future
  4. Decision log: Technical decisions are captured with references, not buried in Slack
  5. Greppable: git grep PRD-003 finds all references instantly

AI Agent Benefits

When you give Claude (or any LLM) access to index.md:

  • It sees all PRDs and DDs in one glance
  • It can navigate to specific docs via links
  • It understands implementation phases and priorities
  • It can trace requirements to implementations
  • It has context without reading every file

Template

# [Project] Documentation Index

Brief project description.

## Product Requirements Documents (PRDs)

| PRD | Title | Status |
|-----|-------|--------|
| [PRD-001](prd/PRD-001-xxx.md) | Title | Phase N |

## Design Documents (DDs)

| DD | Title | Implements |
|----|-------|------------|
| [DD-001](design/DD-001-xxx.md) | Title | PRD-001 |

## Implementation Phases

### Phase 1 (vX.X.X) - MVP
- Core functionality

### Phase 2 (vX.X.X) - Expansion
- Additional features

## Key Technical Decisions

| Decision | Choice | Reference |
|----------|--------|-----------|
| Database | X | DD-001 |

## Dependency Graph

[ASCII diagram showing PRD → DD relationships]

Real Example

See: tx Documentation Index

Leanpub Book

Read The Meta-Engineer

A practical book on building autonomous AI systems with Claude Code, context engineering, verification loops, and production harnesses.

Continuously updated
Claude Code + agentic systems
View Book

Related:

Topics
Ai AgentsData EngineeringDeveloper ExperienceDocumentation

Newsletter

Become a better AI engineer

Weekly deep dives on production AI systems, context engineering, and the patterns that compound. No fluff, no tutorials. Just what works.

Join 306K+ developers. No spam. Unsubscribe anytime.


More Insights

Cover Image for Verified Spec-Driven Development (VSDD)

Verified Spec-Driven Development (VSDD)

Three methodologies that usually get argued about as rivals turn out to compose. Spec-driven development defines what, test-driven development enforces how, and adversarial verification checks that nothing was missed. Run them as sequential gates instead of competing philosophies and you get a pipeline where every line of code can be traced back to the requirement that demanded it.

James Phoenix
James Phoenix
Cover Image for “We Can’t Run Locally” Is a Concurrency Problem Now

“We Can’t Run Locally” Is a Concurrency Problem Now

The excuse survived a decade because one engineer’s feedback loop fitted inside one shared environment. Point twenty agents at that same environment and it stops being a slow loop and starts being a broken one.

James Phoenix
James Phoenix