The uncomfortable part of vibe coding is the moment the agent hands you fifty lines and waits. You cannot read them. Accepting blindly is how people end up with software they cannot fix.
Here is the thing: most agent mistakes are visible without understanding the language. They are structural, and structure is legible.
1. Does the diff match what you asked for?
Read your own request, then read the summary of what changed. You asked for a search box. The diff also re-sorts the list, renames a function, and touches a config file.
Extra changes are not a bonus. Every one of them is something you did not ask for and did not evaluate. Ask why each is there. Sometimes the answer is good. Sometimes it is “I felt like it.”
2. Is anything loaded and then never used?
const links = load();
save([]);
You do not need JavaScript to see this. Something was fetched into a name, and no later line uses that name. A value that is retrieved and ignored is almost always a bug — in any language, in any framework.
3. Did anything get deleted that you did not agree to delete?
Scan the red lines. Removed lines are where the damage lives: a check that was in the way, a fallback that looked redundant, a whole function the agent decided was dead.
If a red line’s purpose is not obvious, ask what it did before you accept its removal.
4. Does a secret appear anywhere in the diff?
Look for anything that looks like a long random string, a key, a token, or a password. Then look for it again in files that get committed.
This is the single most expensive class of mistake in this whole activity, and it is caught by looking.
5. Did you run it?
Not “does it look right.” Run it. Click the thing. Then break it on purpose: empty input, a huge input, the same action twice in a row.
An agent will tell you a change works. It is often right. “Often” is not a review.
The two-minute version
Match the request. Look for loaded-and-unused. Read the red lines. Search for secrets. Run it and try to break it.
None of that requires reading the language. All of it catches real problems — and it takes less time than the argument you would have had with yourself about whether to bother.
The review checklist lesson walks through this on a real diff, and Claude Code from Zero puts it into a working session.