Back to Writing
Mastering Vibe Coding: A Practical Guide to Using Specs 🚀
July 3, 2026

Mastering Vibe Coding: A Practical Guide to Using Specs 🚀

Discover how to streamline your development process by using 'Specs' in vibe coding. Learn how structured prompts and project constitutions can help you build better software with AI agents.


Since high school, and now as a Computer Science master's student, I’ve believed that the best way to master a new skill is by applying it to a real-world project. To learn 'Specs' a powerful technique in vibe coding that I built TTE Tracker. It helps users pin, view, and discuss Travelling Ticket Examiner locations through a map-first interface. You can check it out at chivala.it.

Applying Specs to vibe coding has been a fantastic experience. Following my previous post about DeepLearning.AI course, I’ve found that using specific prompts is incredibly effective—whether you're retrofitting Specs into an existing project or building something entirely new from the ground up. ✨

The first essential prompt every software engineer should use is this one to establish your project's foundation:

<-DESCRIBE THE IDEA OF PROJECT->


Let's create a "constitution" in a specs directory:
- `mission.md`
- `tech-stack.md`
- `roadmap.md` for high-level implementation order, in very small phases of work.


Important: You *must* use your AskUserQuestion tool, grouped on these 3, before writing to disk.

Using this prompt helps your AI agent establish a project 'constitution' clearly outlining your goals and vision. This is a game-changer when collaborating with other developers (and other AI agents!). It eliminates the inconsistencies in decision-making and scope creep that often plague long-term projects.

Once the constitution is set, you can break down each phase from your roadmap.md into actionable details using this prompt:

Find the next phase on specs/roadmap.md and make a branch, ask me about the feature spec.
Create:
 - A new directory YYYY-MM-DD-feature-name under specs for this feature work
 - In there:
  - `plan.md` as a series of numbered task groups.
  - `requirements.md` for the scope, decisions, context
  - `validation.md` for how to know the implementation succeeded and can be merged

Refer to specs/mission.md and specs/tech-stack.md for guidance.

Important: You *must* use your AskUserQuestion tool, grouped on these 3, before writing to disk.

In my view, software engineering is shifting away from pure coding toward architecture and product design. Our job is to review the definitions our agents generate, ensuring every piece of the puzzle aligns with the product vision and follows industry best practices.

From here, you can iterate step-by-step through your roadmap. If a change is needed, simply ask the agent to update the relevant Specs. Pro tip: you can even teach your agent a custom skill to automate the definition of roadmap steps, saving you time and keeping your workflow consistent.

There is a more advanced (and slightly riskier) technique. Only use this if your constitution and roadmap are rock-solid, otherwise you risk wasting tokens. Instead of manual iteration, you can ask the agent to define all steps upfront:

Go through all the features on specs/roadmap.md, make a mvp branch, and ask me about the feature specs needed to complete an MVP.
Create:
 - A new directory under specs for this feature work
 - In there:
  - `plan.md` for the task list
  - `requirements.md` for the scope, decisions, context
  - `validation.md` for how to know the implementation succeeded and can be merged

Refer to specs/mission.md and specs/tech-stack.md plus the existing feature specs for guidance.

Important: You *must* use your AskUserQuestion tool, grouped on these 3, before writing to disk.

Using this approach, the agent maps out the entire roadmap before you start implementation, providing a comprehensive blueprint for your MVP.

Finally, before going live, use this prompt to have the agent audit your project for security vulnerabilities or functional gaps:

Do a deep review: Spawn multiple subagents to go through all the changes on this branch from three different perspectives and see if anything doesn't make sense, could be better, etc.

This has been my journey with applying Specs to vibe coding. It’s a powerful way to bring structure to AI-assisted development! Happy coding! 👨‍💻