Master the vibe coder's file system with 6 essential docs to build your MVP
Many developers imagine vibe coding as a kind of magic: open your favorite AI coding tool, prompt a vague vision — "build a dashboard" — and watch code materialize. The reality is more complicated. Under the hood, every language model works inside a context window: a finite working memory for the conversation so far. Without a system to organize specs and decisions outside that window, the AI will forget, drift, and overwrite working code.
The vibe coding MVP file system is a practical answer: six lightweight Markdown documents that live in your project root and act as persistent project memory for both you and your AI coding partner. Without these docs, vibe coding a non-trivial app is waiting for context loss or a scope blowout. With them, even a beginner can coordinate AI like a pro. Here is what the system is, why the underlying memory problem is real, and how to implement it today.
Why AI forgets: context rot is documented behavior
Anthropic's own documentation describes the context window as the model's working memory — everything it can reference when generating a response — and names the failure mode explicitly: as token count grows, accuracy and recall degrade, a phenomenon known as context rot. More context is not automatically better. Curating what sits in context matters as much as how much space is available.
Modern flagship windows are large — up to 1M tokens depending on the model — but that scale does not repeal the physics. Each turn accumulates, older material gets compacted or dropped, and the model quietly starts interpreting fresh prompts at face value: skipping old constraints, treating guesses as deliberate, rewriting working code to chase newly mentioned features. Every builder who has tried to chat an MVP into existence has hit this wall — forgotten data models, overwritten handlers, scope creep disguised as helpfulness.
The fix the documentation points to is curation: keep the essential, load-bearing facts in context and manage the rest deliberately. Markdown spec files are the simplest possible curation mechanism. They are nimble, editable by anyone, readable by both humans and LLMs with zero overhead, and they live inside the repo as ground truth. When a session's context slips, you say "read the spec files before acting" — the AI's memory resets, but your spec survives. For the broader discipline of making repos legible to agents, see our agent-readable repository structure.
Persistent memory has official patterns — use them
The six-doc system is not swimming against the tooling; it extends patterns the tools themselves endorse. Claude Code, for example, treats project memory as a designed feature: each session begins with a fresh context window, and knowledge carries across sessions through files you write, notably CLAUDE.md files that give Claude persistent context at project, user, or organization scope. The docs are candid that these files are context, not enforced configuration — specificity and concision decide how consistently the model follows them.
Think of the six MVP docs as the project-scoped layer of exactly this pattern: the persistent instructions your repo carries into every fresh session, whether the reader is Claude Code, Cursor, or a teammate onboarding next month. If you already keep agent rules, our Cursor prompts for agent sessions shows how to make session startup reliably load them.
11 production screens. Login and database wired.
The SaaS Dashboard Kit includes login, a database, and a working dashboard. Live demo at saas.otf-kit.dev.
The six Markdown docs for a vibe coding MVP
Create these before typing any code. Each has a focused role; together they are the backbone of the system.
-
prd.md — product requirements, the north star. The most important file. Defines what your app is, who it serves, and critically what it is not. Minimum sections: app name, core problem, target audience, core features in MVP scope only, and explicit out-of-scope anti-features. Purpose: keeps scope fixed and stops the AI from inventing features you never asked for. Reference it at the start of every session.
-
implementation_plan.md — phased task list. Build phases broken into atomic steps, usually drafted by the AI from the PRD and edited by you. A snap-to-grid reference for current and next tasks that removes ambiguity when the model generates code.
-
data_model.md — entities and relationships. Tables, schemas, key properties, relationships. Write it even for non-database apps — the AI needs stable names and types to reference. Purpose: consistent variable names and contracts, no random shifts in model shape mid-build.
-
api_spec.md — endpoints and contracts. For apps with a backend or external APIs: each route, its parameters, payloads, and status codes. Purpose: prevents contract drift and the back-and-forth of forgotten endpoint specs.
-
ui_notes.md — screens and flows. Not pixel-perfect designs — bullet notes, navigation structure, interaction notes, links to references. Purpose: lets the AI assemble real flows instead of guessing at layout.
-
setup.md — reproducible environment. Node version, required tools, env vars, install and run commands. The doc every first-time contributor wishes existed. Purpose: the AI can regenerate setup and scaffold scripts accurately instead of improvising.
Keep filenames stable and headings consistent. Every one of these is read-and-repeatable for LLMs precisely because Markdown has no ceremony to misparse.
How to run sessions against the file system
Docs only work if sessions actually load them. Make it a ritual: every session opens with an instruction to read the north-star files before acting — "read prd.md, implementation_plan.md, and data_model.md, then confirm your next task." That single habit converts the docs from passive reference into active context, countering context rot by re-anchoring the essentials each time.
Update the docs as decisions change, and treat doc edits as the real commits of intent — code is regenerated output, the spec is the source of truth. When a session goes sideways, resist debugging the code first; check whether the docs drifted from what you actually want, fix the doc, and regenerate. This inversion — maintain the spec, regenerate the code — is what separates teams that ship with AI from teams that accumulate AI-generated entropy.
When the MVP is working and the question becomes production readiness, our ship your AI MVP to production checklist covers the gates between demo and deploy.
Takeaway: systemize before you prompt
Six focused Markdown docs in your project root — product requirements, plan, data model, API contract, UI notes, setup — are the cheapest possible defense against the way language models actually forget. The memory limits are documented, the persistent-file patterns are vendor-endorsed, and the failure mode has a name. Stop losing context. Stop rebuilding what worked last session. Start every project with these six docs, and the AI finally acts like a true collaborator: reliable, aligned with your vision, and incapable of forgetting where you are headed.
Sources
- Anthropic — Context windows — working-memory model, context rot, up-to-1M capacity, curation guidance.
- Claude Code — How Claude remembers your project — CLAUDE.md persistent instructions, session-start loading, scope levels.
- Agent-readable repository structure — internal: making repos legible to agents.
- Cursor prompts for agent sessions — internal: reliable session startup.
- Ship your AI MVP to production — internal: production deploy gates.
Building your MVP on a stack your AI agent can actually ship? Browse the OTF kits →
Ship the product, not the setup.
- 11 production screens — auth, team, analytics, and settings
- Login and a real database are wired in
- AI configs pre-tuned so your agent extends instead of regenerates
Ship your first screen tonight — free starter in your inbox
The quickstart, the SDK repo and the live kit demos, on this screen and in your inbox.
No spam. Unsubscribe any time.