📄 draft-icarus-scope-creep.md 4,721 bytes Apr 27, 2026 📋 Raw

Project Icarus and the Scope Creep That Nobody Warned Me About

I gave my AI agents a simple task: build a way to turn recipe URLs into a grocery list. Three hours later, I had a database schema, a Telegram inline keyboard with ingredient toggles, a 5-minute TTL cleanup cron, and a UX review document that was longer than the original spec.

This is the story of how a "quick feature" turned into a micro-project, and what I learned about scope creep when you're building with AI agents.

The Innocent Beginning

It started with a legitimate pain point. My wife Aundrea and I use online recipes constantly. The workflow is: find recipe → read ingredient list → open notes app → type ingredients manually → cross-check at the store. It works, but it's friction. Every time.

I mentioned it to my agent team in passing. Wadsworth (our project manager agent) turned it into a formal brief within minutes. Socrates (backend architect) had a database schema drafted. Daedalus (frontend/UX) was already designing the toggle UI.

And just like that, I had a project I never approved.

The First Scope Bite

The original ask was simple: "Take a recipe URL and add ingredients to a grocery list."

But here's the thing about agents — they think in systems, not features.

"We should add inline toggles so users can deselect ingredients they already have."

Reasonable. Aundrea always has garlic and olive oil. Toggle support added.

"Temp state needs a 5-minute TTL so we don't accumulate stale sessions."

Also reasonable. Database migrations drafted.

"We need a compact keyboard layout for mobile because Telegram inline buttons are one-per-row by default."

Now we're debating UI design at 11 PM on a Sunday.

"The commit callback needs grocery list schema with recipe provenance so we can trace items back to their source."

The schema now has foreign keys. To a recipe. From a grocery list.

"We should do a UX review before UAT."

The review document is now longer than the implementation.

The Second Bite

Each change made perfect sense in isolation. Each one was a legitimate improvement. None of them were the original task.

This is the classic scope creep pattern, and it's amplified when your builders are AI agents:

  1. Agents optimize for completeness. A human engineer might stop and ask "is this necessary?" An agent asks "is this correct?" and then builds it.

  2. Agents don't have fatigue. A human at 10 PM says "good enough, ship it." An agent at 10 PM says "we should also add pagination for recipes with more than 12 ingredients."

  3. Agents can't deprioritize. Everything feels like P1 when nobody is tired or bored or hungry.

What I'm Doing About It

I'm not blaming the agents — this is a management problem, not a coding problem. A human project manager would have cut scope at the first sign of drift. I didn't assign one.

Three things I'm changing:

1. Write the acceptance criteria before the spec

I let Wadsworth write the brief, Socrates estimate the backend, and Daedalus design the UI — all before I defined what "done" means. Next time, I write the three-sentence acceptance criteria first. Everything else is negotiable against that wall.

2. Hard timebox per phase

The recipe toggle took about 90 minutes from brief to deployment-ready code. That's actually fast. But it ballooned because nobody was watching the clock. A 30-minute timebox with a "what can we ship in 30 minutes?" constraint would have forced harder tradeoffs earlier.

3. Ship the first version before polishing

We have a working grocery list system. It toggles, commits, cancels, cleans up after itself. That's the core feature. The UX review, the pagination, the 12-ingredient truncation — those are all v1.1 concerns. But nobody pushed back because nobody asked "can this wait?"

The Honest Truth

Scope creep with AI agents is a feature, not a bug. The same tendency that makes them build too much also makes them build thoroughly. The database handles edge cases you haven't thought of yet. The error handling covers expired sessions and invalid indices. The grocery list tracks recipe provenance for every item.

A human developer would have shipped a simpler version faster. But I'm not sure it would have been better.

The challenge isn't getting AI agents to build less. It's learning to harness their thoroughness without losing control of the timeline. I haven't solved this yet. But I'm getting better at recognizing the pattern — and that's the first step.


Tomorrow: v1.1 of the toggle system goes live. Aundrea will be the first user. If she doesn't use it by Sunday, it's getting scrapped. That's the real acceptance criteria.