Blog22 September 20263 min read

Bug reports your agent fixes on the first try

Most "the AI changed the wrong thing" moments are not the model's fault. They are a bug report with one piece missing. Here is the four-part brief that makes agents land it first time, and how to produce it without typing an essay.

shop.example/products1results close when I scrollCodex

The four parts every brief needs

  1. Which element. Point at one thing. Name it the way it appears on screen, and attach a crop of just that element.
  2. What it did. The behaviour you saw, in one line.
  3. What it should do. The behaviour you want. This is the part everyone skips, and the reason agents "fix" the wrong way.
  4. Where it probably lives. A file, a component, a store. A guess is fine; it saves the agent a search.
"[1] The search results close as soon as I scroll them. They should stay open until I pick one. Probably the scroll listener in SearchBox."

That is 25 words and one crop. Agents love it.

Same bug, four styles

Different people want the same information shaped differently. The facts do not change, the format does.

As a QA ticket

Title  Search results close while scrolling
Where  /products, the search dropdown [1]
Steps  Type "mug", scroll the results
Seen   Dropdown closes on the first scroll
Want   Results stay open until you pick one

As a code change

In components/SearchBox.tsx, the results list [1] closes
from the window scroll listener. Ignore scrolls that start
inside the list; close only on an outside click or Escape.

As an analysis

The dropdown closes on any scroll, so scrolling its own results counts. People lose their place halfway through choosing. Scope the listener to the page, not the list.

As a bug report

Expected: results stay open. Actual: closes on the first scroll [1]. Severity: medium, blocks choosing.

Number everything

When there is more than one issue, number them and match each number to a crop: [1] the dropdown, [2] the price label, [3] the empty state. Agents handle numbered lists far better than a paragraph that says "also" four times.

Getting the brief without typing it

You know all four parts the instant you see the bug. Typing them is the dull part. With Deiko you double-tap Right Option, point at the dropdown and say the sentence. It crops the element, reads its label, transcribes you, numbers everything and writes the brief in your chosen style. Drop it into Claude Code, Cursor or Codex, or paste it into ChatGPT.

tl;dr Which element, what it did, what it should do, where it lives. Crop it, number it, send it.

Questions people ask

How do I prompt Claude Code to fix a UI bug?

Give it one cropped screenshot of the element, what it does now, what it should do, and where you think the code lives. Four short parts beat a long paragraph.

Why does my AI agent fix the wrong thing?

Usually because the report says what is wrong but not which element or what right looks like. Add a crop and the expected behaviour.

Is there a bug report template for AI coding agents?

Use: [n] element, what it did, what it should do, likely location, plus a crop per item. It works in Claude Code, Cursor, Codex and chat tools alike.