Vibe Coding
How to Vibe Code Best
The playbook: one goal, tight context, a plan, a review, tests, and a commit after every working slice.
The playbook
- Be the director. You choose the goal. The model drafts.
- One goal per prompt. Split features into slices you can review in minutes.
- Constraints over adjectives. "No new deps, typed Python, pytest must pass" beats "clean and simple."
- Plan anything that spans files. Approve steps and open questions first.
- Attach the files that matter. Two or three, plus the test.
- Show the API. Signatures and example I/O steer better than vibes.
- Read every diff. Reject extra files, extra packages, and weakened tests.
- Run the done command yourself. Trust the terminal.
- Commit the green slice. Then start the next loop.
- Explain or reject. If you cannot teach the change, do not ship it.
- Keep a short rules file. Standing instructions live there, not in every chat.
- Never paste secrets. Fake data only.
- Debug, do not thrash. After two failed rewrites, isolate with a test.
- Write the hard parts yourself when the model is guessing architecture.
- Stay in a language you can read. Speed without literacy is a trap.
- Stay in one tool for the slice. Do not hop from ChatGPT to Cursor to Claude on the same dirty tree.
A daily checklist
| Before you prompt | After it generates |
|---|---|
| Git is clean or committed | Diff matches the ask |
| Goal fits in one sentence | Tests still exist and make sense |
| Files attached | pytest (or equivalent) run by you |
| Done command named | Commit or revert |
What "best" feels like
You are calm. The agent is busy. You spend your time on product decisions, tricky logic, and review. You are not copy-pasting 400 lines you have not read. You are not fighting a 40-file surprise refactor.
If a session feels chaotic, shrink the slice. Best vibe coding is boring on purpose.
How you work at your best
A strong session is short prompts, a named slice, a read diff, a terminal you ran, and a commit message you wrote. You are not racing the model. You are using it as a typist with a review gate.
Keep How You Work as the session script and this page as the habit list. When a day goes chaotic, shrink the slice before you change tools. If you still have no editor that can apply a diff, go back to Tools and pick one stack.
When to type it yourself
- A 10-line function you already know.
- A security-sensitive branch.
- A design choice the model keeps getting wrong.
Using your hands is not a failure of vibe coding. It is taste.
Key takeaways
- Best practice is a loop, not a magic prompt.
- Small, tested, reviewed commits are the whole method.
- You remain the engineer. The model is a fast intern with no memory of production.
- Pick one tool that can apply a diff. Stay with it for the slice. See Tools if you still only have a chatbot.
- If a session feels chaotic, shrink the slice. Best vibe coding is boring on purpose.