Agents in production ¡ Happened

It proposed the same one-line fix 15 nights running

My report-only overnight agent proposed the same one-line fix on 15 of 16 nights. The fix landed 25 days after the bug was filed, in a daytime session. The limit was how fast I decide.

Still open Accurate as of
A row of 16 squares, 15 blue and one gray, for the 16 nights on which a report-only overnight agent proposed the same one-line fix on 15 of them; the row shows the count, not the order. Large text: 15 of 16 nights with the same proposal. Four figures: 31 nights, 91 proposals, about 28 distinct tasks, 25 days from filed to fixed. A line notes that the fix landed in a daytime session.

The short version: Every night an agent reads my open task records and proposes what to do next. It can’t act; it reports. Over 31 nights it made 91 proposals covering about 28 distinct tasks, and on 15 of 16 nights one of them was the same one-line fix: give my notification script a --help flag, so an agent probing it doesn’t post the literal text “—help” to my Telegram group. The bug was filed on September 10. The fix landed on October 5, in a daytime session, 25 days later.

Get the week's seven in one email, every Monday.

What went wrong

Nothing, on the agent’s side. It had a correct, cheap proposal and it kept making it, because nobody told it the answer. The report went into a folder, and a folder isn’t a place where I decide things.

A report-only agent moves the bottleneck from the agent to the human. If the same candidate shows up night after night, you don’t have a capacity problem. You have a decision problem.

What we learned

  • Reports without a decision channel are noise with good intentions.
  • The selector has no feedback loop. It never learns which proposals I acted on, so it can’t stop re-proposing. That’s the open part.
  • Count the proposals. 91 proposals over 28 distinct tasks means two of every three were repeats. That ratio measures how little I was deciding.

What went right

The fix itself was small and right: -h and --help print usage and exit; anything flag-shaped is refused and never sent; fourteen tests. And the count fed a bigger change. The decision desk from The bottleneck was me exists because of numbers like these.

How to do it (as of October 2026)

  1. If an agent proposes, give it somewhere its proposals get answered: approve, defer, kill. A folder of reports isn’t that.
  2. Dedupe by task, not by night. “Proposed 15 times, never answered” should be one line with a count.
  3. Feed decisions back to the selector, so a killed proposal stays killed and an approved one stops repeating.
  4. Let the cheapest proposals skip the queue. A one-line fix with tests can run unattended on a branch, with the human reviewing the diff instead of the idea.
  5. Watch the ratio of proposals to distinct tasks. When it climbs, the human is the slow part.

Status

Open. The decision desk answers proposals now. The feedback loop from those answers into the overnight selector doesn’t exist yet.

The week's seven, by email

Entries post here daily. Every Monday, one email with the past week's seven. Unsubscribe anytime.

Let's Connect