What is vibecoding
Directing, not typing Vibecoding is building software by describing what you want in natural language and letting an AI model write the code, while you guide, test, and steer. The term was coined by Andrej Karpathy in early 2025 to describe leaning into the AI and "forgetting that the code even exists." In its purest form you barely look at the code at all — which is great for demos and throwaways, riskier for anything you need to maintain. Most people land on a spectrum: more vibes for prototypes, more rigor for production. Knowing where you are on that spectrum is the whole skill.
Prompt-driven development
Intent is the new source code Your prompt is the highest-leverage artifact in the loop — it’s where you express intent, constraints, and what "done" looks like. Specific, well-scoped prompts produce focused changes; vague ones produce sprawling guesses you’ll have to unwind. State the goal, the constraints, and the acceptance criteria, and point the agent at the files and examples it should follow. Treat prompting as a craft you improve, not a magic incantation. Saving and reusing prompts that work is one of the fastest ways to level up.
Working with coding agents
A teammate that needs direction Modern coding agents don’t just autocomplete — they read your files, run commands, and work through a task across many steps. The most reliable pattern is to start from a clean git state, let the agent take a first pass, then review and refine the roughly-80%-done result. Keep changes small and checkpoint often so you can revert cleanly when it wanders. Agents are strongest on the edges of a codebase and weakest deep inside core, subtle business logic — aim them accordingly.
Reviewing & trusting AI-generated code
Trust is earned per diff The line many practitioners draw is simple: if you shipped code you never read, that’s vibe coding; if you read it, tested it, and can explain it, that’s software development. For throwaways, skipping review is fine. For anything real, read every diff, run the code, and write or keep tests so regressions surface fast. A useful trick is to review with fresh context — a new session, or a second agent — so the reviewer isn’t biased toward the code it just wrote.
Managing context & memory
Garbage context, garbage code An agent is only as good as what it can see. Give it the relevant files, examples, and constraints — and just as importantly, keep irrelevant noise out so the signal isn’t buried. Long sessions drift as the context fills up; starting fresh for a new task often beats dragging along a bloated history. Think of context as infrastructure you design, not something that just happens. The better you curate what the model knows, the more its performance compounds.
Rules files
CLAUDE.md · AGENTS.md · .cursor rules Rules files are persistent, version-controlled instructions the agent loads on every run — your stack, conventions, and "always / never" guardrails. They mean you stop re-explaining the same context in every prompt. AGENTS.md has emerged as a tool-agnostic open standard (now stewarded under the Linux Foundation), while Claude Code reads CLAUDE.md and Cursor reads files under .cursor/rules. Keep them short and specific: a few sharp, concrete statements beat a long wishlist the agent will ignore.
Spec-first workflows
Plan a plan, then build Instead of one big "build me an app" prompt, spec-first development moves through spec → plan → tasks → implement. You brainstorm and write a short specification, have the model turn it into a step-by-step plan, then implement one reviewable chunk at a time. This front-loads the thinking, so the agent has a map instead of improvising — which sharply reduces the rework that pure vibe coding generates. Tools like GitHub’s Spec Kit and AWS Kiro formalize this loop, but you can run it by hand in any agent.
When to take the wheel
Know the agent’s edges Vibecoding well includes knowing when to stop vibing. Take over when the agent loops on the same failure, when a change touches security, auth, money, or data integrity, or when you can’t explain what the code does. These are signals to slow down, read carefully, and steer by hand. The skill isn’t doing everything yourself or nothing yourself — it’s fluidly handing control back and forth based on stakes and the model’s confidence.