build-mvp — Claude Code skill: build your MVP from the roadmap
Walks every roadmap task in order, implementing, testing and checking each one off, then makes the initial commit.
npx skills add BuildGreatProducts/builder-os --skill build-mvp -a claude-codeWhat build-mvp does
The skill reads docs/product-roadmap.md and works top to bottom without skipping ahead. Each task is its own loop: find the first unchecked item, read its Files and Notes lines, implement exactly what they say, then run the verification step and the tests. A failing task gets fixed before the next one starts.
Specs are not loaded wholesale. Every phase names the Reference sections to read, so context stays small. The stack in docs/prd.md is final, and styling comes from the tokens in docs/design.md. When a task conflicts with the PRD, the skill checks the referenced section first and asks one specific question instead of guessing.
You need docs/prd.md and docs/product-roadmap.md in place. Without them the skill stops and points you to the **Product Planner** skill from BuilderOS. No git or GitHub actions happen during the build: git init, a .gitignore for the stack and the initial commit come only after every phase is verified and the magic moment works end to end. Then it asks whether to connect a remote repo and pushes nothing on its own.
What it helps with
- work through a full MVP roadmap without switching tasks by hand
- verify each task before starting the next one
- keep the stack and design tokens inside the specs
- check off finished items and update the status line
- make the first commit once all phases are done
Example prompts for the agent
- build my MVP from the roadmap
- execute the whole roadmap in docs/product-roadmap.md
- start the build from my BuilderOS specs
How to install build-mvp
1Skills CLI (Vercel)
npx skills add BuildGreatProducts/builder-os --skill build-mvp -a claude-code2Manually: put the files in place
~/.claude/skills/build-mvp/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/build-mvp/
1Skills CLI (Vercel)
npx skills add BuildGreatProducts/builder-os --skill build-mvp -a codex2Manually: put the files in place
.agents/skills/build-mvp/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add BuildGreatProducts/builder-os --skill build-mvp -a cursor2Manually: put the files in place
.cursor/skills/build-mvp/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install BuildGreatProducts/builder-os build-mvp2Manually: put the files in place
.github/skills/build-mvp/SKILL.md1Skills CLI (Vercel)
npx skills add BuildGreatProducts/builder-os --skill build-mvp -a gemini-cli2Platform CLI
gemini skills install https://github.com/BuildGreatProducts/builder-os --path skills/build-mvpManually: put the files in place
.devin/skills/build-mvp/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add BuildGreatProducts/builder-os --skill build-mvp -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about build-mvp
How do I install build-mvp in Claude?
Run npx skills add BuildGreatProducts/builder-os --skill build-mvp -a claude-code. The skill lands in ~/.claude/skills/build-mvp/SKILL.md.
What does build-mvp do?
It works through every task in docs/product-roadmap.md in order, implementing, testing and verifying each one, marking checkboxes and updating the status line. At the end it initializes git and offers to connect a remote repo.
What do I need before running it?
The files docs/prd.md and docs/product-roadmap.md. If they are missing, the skill stops and tells you to run the Product Planner skill from BuilderOS first.
Source text
SKILL.md · MIT
--- name: build-mvp description: Use inside a product repository when the user wants the full MVP built from their BuilderOS spec documents. Triggers on phrases like "build my MVP", "build the app", "execute the roadmap", "start the build", "work through the whole roadmap", "build everything", or any request to implement the entire plan rather than a single task or phase. Requires `docs/prd.md` and `docs/product-roadmap.md` (plus `docs/product-vision.md` and `docs/design.md` for context). Works through every roadmap task in order — implementing, testing, and verifying each before moving on, marking checkboxes and updating the status line — and runs until all tasks are complete and the magic moment works end to end, then initializes git with an initial commit and offers to connect a remote repo. license: MIT metadata: author: BuilderOS version: "1.0" --- # Build MVP Build the complete app by executing every task in `docs/product-roadmap.md`, in order, until all tasks are checked off. ## Setup Read `docs/product-roadmap.md` first — it is the source of truth for what to build and in what order. `docs/prd.md` is the technical spec behind it; `docs/design.md` holds the visual design tokens; `docs/product-vision.md` holds the product strategy. Do not load these documents wholesale — each phase lists the specific Reference sections to read, plus whatever a task's Notes line points to. If `docs/product-roadmap.md` or `docs/prd.md` is missing, stop and tell the user to run the **Product Planner** skill first (part of BuilderOS: https://github.com/BuildGreatProducts/builder-os). ## Work loop Repeat until every task in the roadmap is complete: 1. **Find the first unchecked task** (`- [ ]`). Tasks are ordered intentionally — never skip ahead. 2. **Read what the task needs** — its Files and Notes lines, plus the current phase's Reference sections if not yet read this session. 3. **Implement the task** exactly as specified — file paths, package names, and config values are deliberate. Follow the repo's `CLAUDE.md`/`AGENTS.md` guidelines: simplest implementation that satisfies the task, no speculative features, surgical changes only. 4. **Test and verify before moving on.** Run the verification step at the end of the task's Notes, run the app, run existing tests, and add tests for new logic. If verification fails, fix it first — never mark a failing task complete or start the next task with the app broken. 5. **Mark the task complete** — change `- [ ]` to `- [x]` and update the header status line (`**Status:** X/Y tasks complete`, `**Current Phase:** ...`). 6. **At each phase boundary:** run the app end to end and confirm the phase's Goal is true and demoable before starting the next phase. No git or GitHub actions here — version control happens once at the end, after every phase is complete. ## Rules - The PRD's stack choices are final — implement them, never substitute alternatives. - Visual styling comes from `docs/design.md` tokens — never invent colors, type, or spacing. If `docs/design.md` doesn't exist, follow the roadmap's foundation-phase guidance: prompt the user to run the **Design System** skill before styling work begins. - If a task is ambiguous or conflicts with the PRD, check the PRD section it references; if still unclear, ask one specific question rather than guessing. - If necessary work isn't covered by any task, surface it and propose adding a task — don't silently expand scope. - Keep going until `**Status:** Y/Y tasks complete`: every task checked, every phase verified, the magic moment working end to end. - No git or GitHub actions (init, commits, branches, pushes, PRs) until every phase is complete — version control is the wrap-up step, not part of the work loop. ## Wrap up When every task is checked off and the magic moment has been verified end to end: 1. **Initialize git and create the initial commit.** If the project isn't a git repository yet, run `git init`, add a sensible `.gitignore` for the stack (dependencies, build output, `.env` files — never commit secrets), and commit everything with an initial commit message naming the product and noting the MVP build is complete. If the project is already a git repository, commit the build on the current branch instead. 2. **Ask the user if they want to connect a remote repo.** Don't create or push anything on your own — ask: "Want me to connect this to a remote repo? I can create one on GitHub (public or private) or connect an existing URL." If yes, set it up as `origin`, push, and confirm the push succeeded. If no, leave it local and tell them the commit is ready to push whenever they are.
© BuilderOS · MIT · BuildGreatProducts/builder-os