“Sure, AI helps you output more code, but won’t the quality suffer?” Iouri Khramtsov’s answer is that it will if you blindly merge the PRs — and that with a layered approach he has kept bugs flat, and sometimes reduced them, while increasing output 2-2x. Quality, in his telling, is a management property rather than a tooling property.
The layers, in the order code passes through them:
- Requirements. Spec-driven development, with the AI reviewing the spec or tech design for gaps, edge cases, and unexpected interactions with existing code. He credits this one step for most of his bug drop.
- Unit tests at >95% coverage. Agents make TDD cheap, so there is no excuse to skip it. Order matters: settle the scenarios from the requirements, write the tests, then the implementation.
- Manual testing. Still no substitute for a human exercising the feature — and the reason his gains are 2-3x rather than 10x.
- End-to-end tests. The most important tests in the codebase, run on PRs, in staging, and in production after every deploy.
- Targeted AI quality passes. Security, duplicated or overcomplicated code, naming, logic review, AI-ese comments. Agents follow a complex
AGENTS.mdpoorly but handle one narrow pass well, for 5-15 minutes each. - Review, human and AI. Two different AI reviewers find different problems, so he runs both — plus a pruning pass, because AI review comments are frequently noise.
- Production monitoring. Error tracking that deduplicates, dashboards, session recordings; best case an agent diagnosing the error and opening the fix PR.
Two things worth stealing. The AI is better at hunting problems than at following instructions, which argues for pipelines of small targeted checks over one large configuration file. And every one of these layers is cheaper to run than it was before agents, which is what makes “double the speed, keep the bugs” a tooling decision instead of a headcount one.