Guides · Bugs and AI coding agents

Bug report template for AI coding agents

Updated Sep 23, 2026

A bug report an agent can act on lists what you did, what the app sent back, and what threw, in the order it happened: timestamped clicks, failed requests with method, status and response body, and console errors with their stack. Copy the template below, or let Roll write it for you as timeline.md.

The template

# <One line: what broke, where>

**URL:** https://app.example.com/checkout
**Env:** production · Chrome 140 · macOS · 1440×900
**Account / state:** free plan, 2 items in cart, coupon applied
**Expected:** order confirmation page
**Actual:** spinner forever, no error shown

## Timeline (in order)
- t+00:00 · navigate /checkout
- t+00:04 · click "Place order"
- t+00:04 · POST /api/orders → 500 (1.8s)
- t+00:06 · console error: TypeError: Cannot read properties of undefined (reading 'id')

## Failed requests
### POST /api/orders → 500
request:  {"cartId":"c_123","coupon":"FALL10"}
response: {"error":"coupon.discount is undefined"}

## Console errors
TypeError: Cannot read properties of undefined (reading 'id')
    at OrderSummary (OrderSummary.tsx:88)
    at renderWithHooks (react-dom.development.js:...)

## Already tried
- Happens without the coupon too? No, only with FALL10.

Why each part is there

Where to get the pieces by hand

Or skip writing it

Roll writes this file for you. Record the tab, reproduce the bug, stop, and every recording includes a timeline.md in the same shape: clicks, requests with bodies and console errors in time order, plus a Failed requests section. Your agent reads it through the local MCP server (Cursor, Claude Code), or you paste it into any chat. See a real one in the demo recording.

Questions

Why timestamps?

Order is most of the diagnosis. A 500 at t+04 followed by a TypeError at t+06 tells the agent the UI crashed on a bad response, not that the component is broken on its own. Without times it has to guess which came first.

Should I include the whole HAR file?

Not in the prompt. A HAR is mostly successful requests and assets. Paste the failed requests with their bodies, and attach or link the full file if the agent can read files.

Is this different from a bug report for a human?

Same facts, stricter shape. People skim a video and fill gaps from context. An agent needs the failed request body and the stack as text, because it can't ask what you meant.