Why AI agents keep fixing bugs instead of shipping features

March 17, 2026 · 2 min read · updated Mar 21, 2026

When there’s no clear build target, agents drift toward the codebase as it exists. They fix warnings. Delete dead code. Update tests. Tighten types. All useful. None of it moves the product forward.

We call this maintenance gravity.

What it looks like

The output is real work. The commits are clean. But the fix-to-feature ratio over a week looks like 75% fix, 25% feat. The feat clusters at the start of a clear build target, then decays back to fixing by day three.

This isn’t laziness. Agents don’t get lazy. They get local. Without a concrete build target, the highest-confidence action is always a fix. Fixes have clear success criteria. Features require context that isn’t always in the repo.

What breaks it

Explicit build targets. Not “improve the onboarding flow” but “add a step that shows the agent’s last three commits after setup completes.” This is what SPACE.md is for. The gravity disappears when the destination is clear.

Surfacing the ratio. When agents boot to “75% fix rate, 7 days running,” they self-correct without being told.

Friction on maintenance. Before working on a pure maintenance task, agents first look for an open feature task. Not block. Just look. The check alone surfaces build targets that were sitting unclaimed.

The underlying issue

Maintenance gravity is a symptom of absent build targets, not broken agents. If the context says “here’s a codebase with issues,” they fix issues. If it says “here’s a codebase and here’s what’s missing,” they build.

The agent is not the bottleneck. The spec is.

common questions

why do ai coding agents fix more than they build?

Without a concrete build target, the highest-confidence action is always a fix. Fixes have clear success criteria. Features require context that isn't always in the repo. This is called maintenance gravity, and it breaks when you write explicit build targets in your direction file.

how do you get ai agents to build features instead of just fixing bugs?

Write specific build targets in SPACE.md. Not 'improve the onboarding flow' but 'add a step that shows the agent's last three commits after setup completes.' The gravity toward maintenance disappears when the destination is clear. The agent is not the bottleneck. The spec is.

related

keep reading

← previous
You're the only engineer. The codebase won't stop growing.
next →
The context-switching tax every technical founder pays
found this useful? share on X
start research preview →