AI Agent Workflow

Busy All Day With AI Agents, but Nothing Shipped? Here's Why

You prompted, reviewed and re-ran agents from morning to night, yet nothing moved. Why AI busywork feels like progress, and how to see what actually shipped.

By Tu Nguyen · · 3 min read.md

A tired developer leans back at sunset in front of three screens full of code and a desk of unchecked lists.

It’s 7 p.m. You’ve had Claude open since breakfast. You read diffs, pasted errors, approved plans, restarted a session that went sideways, and ran the build more times than you can count. You’re exhausted.

Then someone asks: “So what did you ship today?” — and you honestly don’t know.

This is the most common pain of building with AI agents, and it has nothing to do with how smart the agent is. It’s the first post in a short series called Busy, Not Shipping about why a full day of AI work can end with nothing to show for it.

Activity got cheap, progress didn’t

Before agents, activity and progress were tied together. If you typed code for eight hours, something moved.

Agents cut that link. They produce activity for free: plans, diffs, test runs, explanations, “one more approach”. Every one of those asks for a few seconds of your attention. None of them, on its own, is progress.

Progress is a task changing state. Phase 3 became phase 4. “In review” became “done”. Version 1.2 went to the store. If none of those happened, the day was busy, not productive — no matter how many sessions you ran.

Three loops that eat the day

Most lost days come from the same three loops.

1. The retry loop. The agent fails, you ask it to try again, it fails differently. Each round feels close. After the fifth round you have spent an hour on something that needed a decision, not another attempt.

2. The switching loop. You start task A, wait for the agent, peek at project B, answer something in C, come back to A and re-read everything. Running many projects is possible — but only if switching is cheap, and for most people it isn’t.

3. The polish loop. The feature works, but the agent suggests a refactor, then a test, then a rename. It’s all reasonable. None of it was the task. A clear “won’t do” list is the cure.

Make progress visible before you start

You can’t compare the evening to the morning if the morning was never written down. The fix is boring and it works: one line per task, with its phase and next step, kept in a file in the repo.

Tip Split     store listing        Phase 4/6   next: write 3 screenshot captions
Dino Buddies  ads boost            Phase 8/14  next: test rewarded ad on device
Dog Training  chapter 7            Phase 5/9   next: draft section 2

At the end of the day, look at the same list. Which lines changed phase? Which got a new next step because the old one is done? That delta is your real output. If it’s empty, you’ll know — and you’ll know which loop ate the day.

The idea of phases instead of to-do lists matters here: “Phase 4/6” tells you where a task is; “fix stuff” tells you nothing.

A two-attempt rule

The single habit that saves the most days: two attempts, then stop.

If the agent fails a task twice, don’t ask for a third try. Instead:

  1. Write down what was tried and what failed — in the task’s notes, not the chat.
  2. Mark the task as stuck, with the reason.
  3. Switch to a task that can actually finish today.

Coming back tomorrow with a clear head and a written record beats the sixth “try again” every time.

Finish small things on purpose

A day with one finished small thing beats a day with five half-finished big things. This is why shipping small versions works so well with agents: each version is small enough to cross the finish line in a day or two, so the state change actually happens.

Before you start, pick one task that must change state today. Do that first. Everything else is a bonus.

Where ShotMatic fits

ShotMatic reads the progress.json your agents already keep in each repo and shows one line per task — name, phase, next step — on one screen, with stuck work floating to the top. At the end of the day you can see exactly which lines moved, without keeping a separate board up to date by hand.

FAQ

Why do I feel busy but unproductive when working with AI agents?

Because the agent generates a steady stream of things to read, approve and re-run. That stream feels like work, but unless a task changes state by the end of the day, nothing has moved.

How do I measure progress when an AI writes most of the code?

Count state changes, not sessions: tasks that moved to the next phase, tasks marked done, versions released. Keep that state in a file in the repo so you can compare morning and evening.

What should I do when an agent keeps failing the same task?

Stop after two attempts. Write what was tried and why it failed into the task's notes, mark it stuck, and pick a task that can finish today.