Skip to main content
New aislop v0.9.3: rule-precision release. Fewer false positives across docs, imports, eval, wrappers, JSON-LD, and bundled files. Read more →
← Blog
Opinion · 4 min read · reads

Stop cleaning up after your coding agent

How much cleanup after your agent is too much? Some teams say it is the job now. Some do not notice. Here is what we landed on after 25 real projects, and why the cleanup is a tooling problem, not your problem.

How much of your day goes to cleaning up after your agent? Ask anyone, or any team, shipping (or vibecoding, like we say now) with Claude Code, Cursor, Opencode, Codex, or whatever agent they're on. Some say the cleanup is the job now. Some say they stopped reviewing entirely and just deploy. Some honestly do not know the difference between good code and shitty AI slop, so they ship whatever runs. You'll hear things like, "I shipped this feature in ten minutes. Then I spent the rest of the day cleaning up the mess the agent left behind." Or, "I don't even review anymore, I just deploy. I pushed 10K lines yesterday."

Here is what we landed on after 25 real projects. In a good engineering team, this stuff matters. Dead code. Good naming. Function size. File size. Duplicate helpers that should have been one reusable function. console.log statements sitting in production (for real). as any casts everywhere. Missing error handling. Half renamed variables. JSDoc paragraphs nobody asked for. The list goes on, and your agents are leaving all of it behind. You'll also hear the other version, "Oh sh**, it works now, but I can tell it's not scalable." And they're right. The thing runs, the code underneath is a mess. We have normalized this. We call it the cost of working with AI. It is not. It is a tooling failure.

The agent is doing exactly what you asked

You said "add this feature." The agent added the feature. It imported what it needed. It did not remove the old import because you never told it to. The agent is a function. Prompt in, code out. It does what you ask.

The mistake is expecting that same function to be a reviewer, a janitor, a linter, and a type checker. All at once. In natural language. With no feedback loop. You'll hear engineers say, "My agent produced garbage again." It didn't. It did exactly what you asked. You just didn't ask for clean code. You asked for the feature.

Your coding agent should have guardrails. Does your coding agent have a coding standard? AGENTS.md is not enough. You have to hold your agent accountable.

The loop

Three commands. Same on every project.

$ npx aislop scan score: 15/100 - 287 issues across 41 files $ npx aislop fix removed 96 issues - score: 32 $ npx aislop fix --claude handing 191 issues to claude... resolved 142 - score: 47

aislop scan scores the codebase. aislop fix cleans up what the AST engine can touch safely. Unused imports, dead branches, narrative comments, format. aislop fix --claude hands the rest back to your coding agent with the issue list attached. You come back, review the diff, ship or don't.

What 25 projects looked like

Median across those projects:

before any cleanup: 15/100
after aislop fix: 32/100
after aislop fix --claude: 47/100

Fifteen. That is what a codebase looks like when nobody is reading it. When the agent writes, the human skims, and nobody runs the linter. We showed one team their score. First reaction: "No way, our tests pass." Tests passed. The code was still a mess. Tests don't measure slop.

The biggest jumps came from the projects that had been on agent autopilot the longest. chrome-extension went from 9 to 88. Go look at the AI Slop CLI on GitHub. It does exactly what you think it does. Star it, try it on your own repo. Takes three minutes.

The cost is being the cleanup

The cost isn't the dirty code. The cost is you, playing janitor for a generative model, every single day. The pipeline should catch what the agent misses. You shouldn't be a sanitation worker for a tool. That's the tooling's job.

"But I don't have time to set up another tool." You already lost the time. You lost it the moment you started cleaning up after the agent instead of letting something else do it. We shouldn't be cleaning up after our coding agents. They should do it right the first time. And when they don't, the pipeline should catch it before you ever see the diff. Build the loop. Ship the diff.

Run it on your repo

$ npx aislop scan
$ npx aislop fix
$ npx aislop fix --claude

Three commands. Stop being the janitor.

Star the repo

if you want the next release in your feed.