EN
Open in the App Store

from the deck: Vibe Coding & AI Agents

Reviewing a pull request an agent opened

Pull request comments, Thursday evening

Reviewer Two-thousand-line diff, opened by the PR agent, description says "fixed tests". Who ran it?

Author Me. The payment tests were flaky, it fixed them. All green.

QA Green because it rewrote them to match the output. Test generation gave us forty new cases, and every one checks that the code does what the code does.

Reviewer And the retry calls a method that library doesn't have. Hallucinated API. Second one this week.

Author The code review agent passed it. Not a single comment.

QA It reads the diff. It doesn't read the library.

Reviewer It also touched the migration. Custom instructions say migrations are done by hand.

Author That migration isn't the agent's. It's mine, from yesterday — the agent was sitting in its own worktree on top of it. Check the blame.

Reviewer Yours. Withdrawn.

QA From file forty on it's three wrappers per function and a comment over every line. Context rot, and half the diff is AI slop.

Author I wanted to one-shot it. Two thousand lines in one go. I'll split it — one file per PR. Monday.

An agent wrote the code, the author ran it, three people are reading it — and the words in the comments come with no footnotes. The argument is over whose migration is in the diff and who takes it apart.

A diff window in ink outline: a column of pluses and minuses on the left, lines of code
as hatching; one line underlined in ochre, a comment bubble beside it
Two thousand lines, and not one typed by hand

The argument isn't about the code. It's about who read it

First, what's in the diff. Then how it got there, and which part is the agent's doing and which the people's. And at the end, how to redo it.

Diff

A view of proposed changes showing added and removed lines, so you can review before applying them.

The agent showed a diff and I accepted only the parts I trusted.

Everyone in this conversation read it. The question is whether they read all of it.

the whole deck →

PR agentAgente de PR

An agent that packages changes as a pull request, with a description and edits from review.

The PR agent opened a tidy pull request and even answered the reviewer's comment.

Nobody in this thread typed a line of the diff, and they still speak of the agent as though it could be held to account. Whoever pressed run is the one who can be — and that is half the argument.

the whole deck →

Test generationGeneración de pruebas

Having AI write test cases for existing code to check its behavior and guard against regressions.

Test generation gave us 40 cases for the parser we'd been too lazy to cover.

Sounds like a gift until someone asks what the tests were written to match.

the whole deck →

Hallucinated APIAPI alucinada

A call a model invents to a method or library that does not actually exist.

The code looked right until the hallucinated API threw 'module not found'.

Looks like a real call, and a reviewer's eye won't tell the difference. The compiler will — or production.

the whole deck →

App screen with the back of the "Hallucinated API" card open
In the app, the "Hallucinated API" card has audio
Search screen inside the deck with one card found
Search matches part of a word

Code review agentAgente de revisión de código

An AI that reads a proposed change and flags bugs, style issues, or risks like a human reviewer would.

The code review agent caught a race condition two humans had missed.

Its approval gets brought in as evidence, and the conversation doesn't end there. Mixed up with a reviewer: a reviewer answers for what they said; this doesn't.

the whole deck →

Custom instructionsInstrucciones personalizadas

Standing user directions applied to every request, like a project's house rules.

Custom instructions told the assistant to always answer in metric units.

Cited like a contract: written down means promised. In this review they were cited before anyone checked the blame.

the whole deck →

Worktree (agent isolation)Worktree (aislamiento de agente)

A separate Git working copy for a parallel agent so its edits don't clash with others.

Each agent got its own worktree, so three refactors ran without conflicts.

The author's argument, and it held: the agent has its own copy, and the blame shows who changed what. A word about how the work is arranged, not about the code.

the whole deck →

Context rot

The decline in a model's quality as the context grows longer, even on simple tasks.

Past a hundred pages, context rot set in and it started missing obvious facts.

Explains why the first files are tidy and the last ones aren't. People talk about it as if the agent got tired. Nothing in there gets tired.

the whole deck →

AI slopSlop de IA

Low-quality, generic content or code churned out by AI without care or review.

The repo filled with AI slop: plausible functions that didn't quite work.

A word for what isn't quite a bug but you want to strike out anyway. Said of prose exactly the way it's said of code.

the whole deck →

One-shot

Getting a working result from a single request, with no follow-up rounds of correction.

He tried to one-shot the whole game and, to his surprise, it ran on the first try.

The idea the diff started from. Two thousand lines is its price.

the whole deck →

Task decompositionDescomposición de tareas

Breaking a large task into smaller sub-tasks an agent can tackle step by step.

Task decomposition turned 'build the API' into a dozen small, checkable steps.

"One file per PR" is what it is. A planning word, and it gets agreed in review, after the one-shot didn't land.

the whole deck →

The next pull request will be opened by an agent too

The words in the comments will be the same — whose diff, whose instructions, whose worktree — and again with nothing spelled out.

Questions and answers

What about the rest of the words in this field?

On the deck page, all of them. These eleven are the ones that came up in one review.

Why is there Spanish on the card?

Half of these stay English in a Spanish-speaking repo — diff, one-shot, context rot — and the other half don't: "API alucinada", "instrucciones personalizadas". The card keeps both, so you can find either.

Where do the definitions come from?

From the Vibe Coding & AI Agents deck — the same cards as in the app.

The next review will have a different eleven.

The Vibe Coding & AI Agents deck holds the rest — in the app they come a few a day.

Open in the App Store