Вчера писал про то, как мои прекрасные гейты пропустили God-файлы, проблемы с security и инфраструктурой. Сегодня — что я с этим сделал.
Первая мысль была довольно очевидной: хорошо, будем регулярно отправлять агентов на рефакторинг.
А потом я поймал себя на той же ошибке, против которой постоянно выступаю в работе с AI.
«Проведи рефакторинг» — это не постановка задачи.
Что значит хороший код? Насколько большой файл уже считается God File? Можно ли использовать any? Что должен делать catch? Какие security-проверки обязательны? Что именно агент имеет право менять, не ломая обратную совместимость?
Если этого явно не определить, агент просто применит собственное представление о «хорошем коде».
Поэтому теперь у рефакторинга тоже появился контракт.
⚙️ Zero-Any — полный запрет any и явные паттерны замены.
⚙️ Anti-God-File — пороги 400/600/1000 строк и декомпозиция через Facade Pattern.
🔐 Security — CORS, timing-safe comparisons, Helmet, rate limiting, Zod-валидация.
👀 Observability — никаких пустых catch, ошибки должны оставлять контекст в логах.
🌐 Environment — появился новый process.env, значит соответствующая переменная должна появиться в .env.example.
🏗 Infrastructure — pool error handlers, scheduler guards, graceful shutdown.
🧪 Testing — TDD/Test-Alongside и сохранение обратной совместимости при рефакторинге.
📚 Documentation — JSDoc на все exports.
И вот здесь я внезапно увидел более интересный эффект agentic development.
Раньше coding standards в значительной степени писались для людей. Что-то лежало в Confluence, что-то проверялось линтером, а огромная часть вообще существовала в голове техлида и проявлялась только на code review.
С агентами этого недостаточно.
Если правило действительно важно, его приходится превращать в явный контракт, который машина может проверить и выполнить.
Получается забавный парадокс: AI вроде бы позволяет писать код менее формально, но одновременно заставляет гораздо формальнее описывать, какой код мы вообще считаем хорошим.
И, кажется, это одна из вещей, которые мне сейчас больше всего нравятся в agentic development: он довольно быстро обнаруживает все инженерные правила, которые команда якобы соблюдала, но никогда нормально не формулировала.


Дискуссия