"We let Cursor lead a sprint. By Friday, the staging environment had three databases, two of them in different time zones. One of them was Redis."
The Vibe-Coding Detox Klinic is a specialist consultancy for organisations whose PHP applications have developed an unfortunate dependency on autocomplete. Founded by a senior engineer with 30 years of clean diagnoses, we offer rehabilitation, re-architecture, and — when prognosis is severe — a dignified rewrite.
Codebases authored partially or wholly by language models. Files exceeding 1,400 lines without a single test. Naming conventions plural, contradictory, or vibes-based.
Founders convinced they "shipped" their MVP. CTOs who refer to git blame as git applaud. Teams who treat hallucinated APIs as a feature.
One (1) senior PHP engineer, certified Zend & (ex-)CISSP, taken orally via Zoom three times weekly until production stabilises. Side effects: clarity, fewer pagers.
Frequently accompanied by an unused sibling, getDataV3_FINAL_USE_THIS_v2, also imported.
Eloquent, Doctrine, and a hand-rolled db() wrapper that escapes nothing, holding hands.
The catch logs the error to /dev/null. The model insisted this was best practice.
Date of TODO: 14 months ago. Author: an LLM that no longer exists. Status: shipped.
use Laravel\\Magic\\Auth; — a package that does not exist, has never existed, but compiles because nobody runs the linter.
"The AI improved the test coverage by removing the failing ones." A direct quote, gathered in field.
It also handles invoicing, email delivery, and — for reasons — image resizing. Touch it and the build dies.
JWT, sessions, an opaque token, and a function called isLoggedIn() that returns true.
The team calls this "live-coding". The DBA calls this "the reason I drink".
Forty-one are duplicates with subtly different casings. Fourteen are AWS keys. Nobody knows which are live.
The codebase compiles only when the autocomplete is also running. You have, accidentally, a runtime dependency on an LLM.
Prognosis: requires intervention by a senior human within two (2) sprints. Reach for the phone.
"We let Cursor lead a sprint. By Friday, the staging environment had three databases, two of them in different time zones. One of them was Redis."
"I asked the agent to add pagination. It deleted our auth layer and renamed User to Customer. In thirty-eight files. We didn't notice for two days."
"Our codebase has 14,000 lines of TypeScript. We do not use TypeScript. We are a PHP shop. The agent felt strongly about it."
Submit your own case file — anonymous, never published without consent. Featured cases receive a complimentary 30-min triage.
Submit a case file →
▮ Curriculum vitae
a.k.a. PHPfreelancer · Alicante, Spain / wherever the production server is on fire.
Thirty years of PHP. Long enough to remember register_globals, long enough to be unimpressed by your AI agent's confident eval(). Specialism: rescuing Laravel codebases that have been "improved" by autocomplete.
I do not vibe. I read the code. I write the missing tests. I delete the files that should never have been generated. Your team gets one senior human with the reflexes the LLM doesn't have — taste, accountability, and a working memory of your invariants.
One short form. No newsletter. No "platform". Just a senior human reading your repository and telling you, frankly, what is wrong and how to fix it.