top of page

Doc‑Driven Development: Building AI Projects That Don’t Forget What You Said Two Prompts Ago

A concept art-style illustration of an AI assistant made of glowing blue light, sitting at a desk surrounded by floating digital documents in a dark modern workspace.
A concept art-style illustration of an AI assistant made of glowing blue light, sitting at a desk surrounded by floating digital documents in a dark modern workspace.

In the trenches of software delivery, context is king — and yet it’s the first casualty of any long, branching prompt session.


You begin bright‑eyed with a crisp project summary, but hours later, you’re begging the AI to “remember what we talked about three prompts ago.” I’ve been there — scrabbling through chat history like a detective sifting through case notes.


So I built Doc‑Driven Development. It's not a framework—it’s a set of prompt‑driven conventions using MDC files and Cursor’s rules system to provide persistent context and structure.


Instead of dumping everything in docs/, we’ll nest MDC files inside .cursor/rules/ so Cursor automatically loads them as project rules — your permanent context guardrails.


Layer 1 – The Minimal Setup (Prompt‑Driven, MDC‑and‑Cursor‑Rules-First)


This is your basecamp: lean, clean, and AI‑powered.


Step 1: Create your .cursor/rules/ folder

In your repo, create a folder:.cursor/rules/


This is where all future MDC files live, and where Cursor will pick them up as persistent context.


MDC files without this setup wouldn’t be automatically included in subsequent prompts forum.cursor.com+11docs.cursor.com+11forum.cursor.com+11.


Step 2: Populate project-spec.mdc via prompt

Use this prompt in your LLM (Cursor, ChatGPT, Claude, etc.):


[Master‑Prompt: Project‑Spec]
Please create or overwrite `.cursor/rules/project-spec.mdc` with:
1. A one‑paragraph overview of the project.
2. 5–8 bulleted high‑level requirements.
3. A numbered list of milestones (titles only).
4. Any domain constraints or compliance notes.
Output only the raw MDC content.

Example summary:“A mobile app for async daily stand-ups with AI summaries and action‑item extraction.”


Once your LLM responds, Cursor will commit .cursor/rules/project-spec.mdc, making it a persistent project rule.


Step 3: Launch the Project Manager persona

Now we use a tail-known rule to drive task decomposition:


[Master‑Prompt: Persona‑Launcher]
Persona: Project Manager  
Input file: `.cursor/rules/project-spec.mdc`
Please:
1. Read the high‑level requirements and milestones.
2. Break each milestone into 3–5 specific tasks (no time estimate).
3. Create `.cursor/rules/pm-strategy.mdc` structured as:

# PM Strategy

## Tasks for Milestone 1: <Milestone Title>
- Task 1
…

Cursor records the result as another persistent project rule.


Step 4: Validate your work

Prompt your AI to self‑review:


[Master‑Prompt: Validator]
Please read:
- `.cursor/rules/project-spec.mdc`
- `.cursor/rules/pm-strategy.mdc`

Then:
1. Confirm each milestone has at least one task.
2. Flag any unclear or missing items.
Output a brief report or “All clear!”

Apply fixes via prompts—Cursor will commit updated MDCs.


🎉 What you’ve achieved in four prompts:

  • Created .cursor/rules/project-spec.mdc — your AI‑authored spec

  • Created .cursor/rules/pm-strategy.mdc — AI‑crafted breakdown

  • Got a validation report ensuring completeness


And because both reside in .cursor/rules/, Cursor will include them in LLM context forever — no more context leaks, no repeated summary prompts, evergreen domain memory.


What’s next?

Up next: Layer 2 — spinning up a full AI dream team, each with their own strategy files, followed by simulated roundtable reviews. You’ll see how this scales from simple prompts to a powerful collaboration engine.


 
 
 

Comentários


bottom of page