AI writes the code. You review it. That's the new job description. Nobody trained us for the review half. I kept repeating the same five myths. Each one cost me a merge, a revert, or a late-night fix. Here's the FAQ I wish someone had handed me.
The Setup
Reviewing needs a second opinion. Not a rubber stamp. When I need a fast check on a diff, I use MonkeyCode's free model access. The free server option lets me run probes without provisioning anything. Disclosure: This article was prepared as part of MonkeyCode's product outreach.
The probe below is a starting point. It's not a finished tool. It finds signals, not bugs.
The Probe
#!/usr/bin/env bash
set -uo pipefail
BASE=${1:-main}
echo '=== Diff size ==='
git diff --stat "$BASE"...HEAD
echo '=== Red flags in added lines ==='
git diff "$BASE"...HEAD | grep -E '^\+' \
| grep -nE 'TODO|FIXME|HACK|debugger|console\.(log|debug)' \
|| echo 'none found'
echo '=== Files changed ==='
git diff --name-only "$BASE"...HEAD
echo '=== Test files touched? ==='
git diff --name-only "$BASE"...HEAD \
| grep -E '(test|spec)' || echo 'no test files changed'
Run it with bash review_probe.sh main. Replace main with your base branch. The output gives you four signals. Each signal is a question, not a verdict.
What the Output Means
- Diff size: context. Large diffs need smaller PRs.
- Red flags: markers. Each one needs a reason.
- Files changed: scope. Did the author touch files outside the ticket?
- Test files touched: coverage. No tests means no safety net.
The Second Opinion Prompt
When the probe flags something, I don't ask "is this good?" I ask specific questions. Here's the prompt I paste into a free model endpoint:
Here is a diff.
1. What behavior changes in this diff?
2. Which change is most likely to break in production?
3. What test is missing?
4. What would you ask the author before approving?
Then I compare the answers with the diff. The model's job is to disagree with me, not to agree.
Why This Works
The probe is cheap. It runs in seconds. It doesn't need a database, a cluster, or a special environment. That's why I pair it with a free server option. The barrier to running a second opinion should be low. If the barrier is high, you'll skip the review and approve on vibes.
The Five Myths
Myth 1: It compiles, so it's correct
Compilation is a type check, not a logic check. It won't catch a wrong default, a swapped condition, or a missing null guard. The probe can't catch those either. But it reminds you to look. Corrected model: compilation is the floor, review is the ceiling.
Myth 2: The AI explained it, so it's right
Explanations are generated after the code. They describe intent, not proof. A confident explanation can still hide a wrong assumption. Ask the model to show the failing case, not the reasoning. Corrected model: explanations are documentation, not evidence.
Myth 3: A small diff is a safe diff
One line can change a timezone, an auth check, or a default value. Small diffs get less attention, which makes them more dangerous. The probe's diff size output is a hint, not a verdict. Corrected model: small diff means less to read, not less to think about.
Myth 4: Tests pass, so we're done
Tests only prove what they cover. They don't prove the missing test doesn't matter. If the diff touches no test files, the probe flags it. That flag is a question, not an accusation. Corrected model: green tests are a snapshot, review is the zoom-out.
Myth 5: Reviewing is faster than writing
Writing has a clear goal. Reviewing has an unknown goal: find the difference between intent and implementation. That search takes time. The probe shortens the search by pointing at likely spots. Corrected model: review is a search problem, treat it like one.
The Decision Table
| Signal from probe | What I do |
|---|---|
| TODO or FIXME added | Ask if it's tracked. Block if it's not |
| debugger or console.log added | Ask why. Usually block |
| No test files changed | Ask for a test plan |
| Large diff | Ask for a smaller PR |
| Red flags but tests green | Review the red flags first |
This table is my mental model. Yours will differ. Write your own.
A Five-Question Review Checklist
Before I approve, I run through five questions:
- What is the intent of this change?
- Where could this change break?
- What test would fail if the code were wrong?
- What did the author not tell me?
- Would I approve this if I wrote it myself?
The last question is the hardest. It forces you to hold your own code to the same standard.
Who Should Not Use This
This probe is not for everyone. Skip it if you're reviewing generated code. Skip it if your repo has a formal review gate. Skip it if you're only reviewing your own tiny scripts. The probe is a first pass, not a replacement for judgment.
Limitations
The probe is grep, not understanding. It finds markers, not race conditions. It won't catch data loss, security holes, or broken business logic. It also can't tell you if the AI misunderstood the ticket. Use it to start the conversation, not to end it.
The Corrected Mental Model
Review is not approval. Review is a search. You search for the gap between what the code does and what it should do. Tools like MonkeyCode's free model access can give you a second pair of eyes. The free server option makes that cheap to run. But the final call is yours.
Try the probe on your next PR. Then tell me: which myth did you believe longest?
Top comments (0)