Максим Никитин, фаундер студии ITSalt, с начала 2025 года строит агентскую разработку вокруг собственного фреймворка NaCl. Фреймворк закрывает полный цикл: бизнес-анализ, системное проектирование, TDD, код-ревью, QA и релиз. Внутри — набор скиллов, граф Neo4j как источник истины по требованиям и решениям, пайплайн ролей с человеческими гейтами на принципиальных решениях. Когда в Claude Code появились Dynamic Workflows, Никитин решил проверить их не на учебном примере, а на продуктовом проекте Family Cinema — сервисе генерации семейных фильмов с backend/frontend и пайплайнами генерации видео и музыки через внешние сервисы.

Dynamic Workflows в Claude Code — это механизм, при котором сам Claude Code выступает оркестратором: скрипт описывает фазы, запускает несколько агентов параллельно, ждёт завершения всех веток и собирает результат. Это принципиально отличается от обычного скилла NaCl, где агент ведётся через задачу последовательно с остановками для участия человека. Никитин сформулировал рабочее правило: workflow оправдан только там, где нужно суждение от нескольких независимых точек зрения одновременно — ревьюер безопасности видит одно, ревьюер корректности другое. Если задача механическая (линтер, типы, тесты, git-операции) — её должен делать детерминированный код, а не LLM.

ПодходГде живёт логикаКогда подходит
Скилл NaClВ инструкции, которую исполняет Claude CodeПоследовательные задачи, диалог, гейты, участие человека
Одиночный сильный агентВ одном контексте и одном проходеРевью, анализ, задачи, которые помещаются в контекст
Многоагентный workflowВ скрипте, который оркестрирует агентовПараллельный анализ, независимые роли, состязательная проверка
Детерминированный кодВ обычном скриптеGit, Cypher, файлы, линтеры, тесты, механические проверки

Для эксперимента выбрали код-ревью: задача частая, зрелый скилл уже есть, можно честно сравнить три варианта в лоб — обычный скилл, одиночный агент и многоагентный workflow. Workflow был устроен так: механические проверки (линтер, типы, тесты) отданы скрипту или дешёвой быстрой модели, на LLM-агентов оставлено только то, что требует смысловой оценки — безопасность, корректность, API-контракты, работа с данными, frontend/backend-специфика. Каждую область разбирал отдельный агент. На серьёзные находки дополнительно запускался агент-скептик, который пытался их опровергнуть.

SQL-инъекция в тестовой фикстуре была найдена и пережила перепроверку агентом-скептиком; ложная проблема с авторизацией — отброшена.

Первый заход — искусственный NestJS-бэкенд с заранее размеченной истиной: одна реальная SQL-инъекция через интерполяцию пользовательских данных и одна ловушка — якобы отсутствующая авторизация на deleteOrder, которая на самом деле стоит выше на контроллере. Без настройки workflow отработал за 345 секунд, потратил 592 743 токена и выдал 26 находок. SQL-инъекция найдена и пережила перепроверку скептиком. Ложная проблема с авторизацией отброшена. Бонусом обнаружен незаложенный баг: сервис реализует GET /orders, но маршрут не подключён — снаружи метод недостижим. Это именно тот класс проблем, где независимые углы анализа дают реальную пользу: один агент смотрит на метод, другой — на маршрутизацию, третий — на контракт.

Однако две трети из 26 находок оказались шумом — придирками, которые в реальном ревью никто бы не стал обсуждать. После трёх настроек — сужения фокуса ревьюеров, расширения перепроверки и дедупликации на этапе синтеза — количество находок сократилось до 12, расход токенов упал до 521 836, время выросло до 419 секунд. Шум срезан примерно вдвое.

Первый инструментальный сюрприз оказался не про качество ревью, а про запуск. При передаче кастомных параметров — какие файлы проверять, какой чеклист использовать — параметры молча терялись, и workflow запускался с настройками по умолчанию. На актуальной версии Claude Code это воспроизводилось стабильно. Обход: вместо передачи параметров генерировать отдельную версию скрипта с зашитыми значениями. Если workflow запускается не на том входе, качество отчёта не имеет значения.

Итоговая картина, которую описывает Никитин, прагматична: Dynamic Workflows — не замена скиллам и не универсальный инструмент. Это инструмент для конкретного класса задач, где параллельный взгляд нескольких независимых агентов даёт находки, недоступные одному. Код-ревью с агентом-скептиком — рабочий сценарий. Аудит проекта после инцидента и диагностика незнакомой кодовой базы названы перспективными кандидатами. Последовательные задачи с человеческими гейтами, механические проверки и задачи, где агенты всё равно стоят в очереди друг за другом, — не его территория.