The Agent Rewrote the Shell Script in Python and Dropped the Exit Code
A shell script that exits on first failure gets ported to Python line by line. The happy path runs identically. The bad path silently succeeds.
Read articleTopic
A shell script that exits on first failure gets ported to Python line by line. The happy path runs identically. The bad path silently succeeds.
Read articleThe function looked ugly on purpose. The comment said why. The agent "cleaned it up" and now the next engineer has to rediscover the workaround the hard way.
Read articleThe test file passed. The function it was supposed to cover was broken. The mock was the giveaway.
Read articleA clean-looking diff passed every test. The function was called 40k times per request. We didn't notice until p95 spiked.
Read articleA refactor that looks like a cleanup — until callers that matched on your specific error type start silently falling through to a different branch.
Read articleYou asked the agent to add a validation helper. It added one. It also added a new file called `validation-helpers.ts`. The existing `utils/validators.ts` has been sitting there for two years. Now there are two validators.
Read articleCI goes red on your agent's PR. It says "that test was already failing, not related to my change." Sometimes it's right. Sometimes it just never ran that test on its own branch.
Read articleI told an agent to fix the failing import and ship it. CI went green, it self-merged, and by morning three services were logging 500s. The fix was deleting the guard rail. Here's the one boundary I moved.
Read articleWhen an agent answers "yes, that returns 409" in under two seconds, it traced the code on paper. It did not execute anything. Reading is not verification.
Read articleWhen a test flakes because two async operations race, the agent reaches for the easiest fix: wait a bit. The test goes green. The race is still there. It just costs ten seconds and a false sense of safety.
Read articleAgents can't tell a throwaway TODO from a blocking one. They build subsystems around comments you left for next quarter. Prefix your TODOs with intent and watch the noise drop.
Read articleAI agents add deprecated aliases 'for backwards compatibility' because breaking changes feel risky in training data. Without a cutover date, those aliases become permanent debt nobody will ever delete. The fix: force the removal PR in the same ticket.
Read article