Прогнали Dynamic Workflows Claude Code на реальном проекте поверх NaCl: что сработало, а что нет
Привет! Меня зовут Максим Никитин, я фаундер небольшой, но гордой студии разработки сложных и нетиповых проектов ITSalt. В начале 2025 года мы начали переходить на агентскую разработку и постепенно собрали вокруг этого собственный фреймворк - NaCl. Сейчас он закрывает бизнес-анализ, системное проектирование, TDD, код-ревью, QA и релиз - по сути, весь цикл от требования до продакшна.
NaCl можно посмотреть в публичном репозитории. Внутри - набор скиллов, пайплайн ролей, граф Neo4j как источник истины по требованиям и решениям, плюс набор правил, которые заставляют агента работать не «по вдохновению», а по воспроизводимой методологии.
Когда в Claude Code появилась фича Dynamic Workflows, я решил проверить её не на демке, а на реальном проекте. Не ради хайпа и не ради вывода «хорошая фича / плохая фича». Мой вопрос был чисто практический:
усиливает ли Dynamic Workflows наш текущий стек;
где это имеет смысл применять внутри NaCl;
где это может быть полезно тем, у кого своего фреймворка нет;
и где лучше не тратить на это лимиты, токены и время.
Проверяли на нашем реальном проекте Family Cinema - сервисе для генерации семейных фильмов. Это не учебная песочница и не специально собранный демо-код, а продуктовый проект с backend/frontend, пайплайнами генерации видео и музыки через внешние сервисы и инженерным контекстом, который приходится учитывать при ревью.
Что такое Dynamic Workflows и с чем мы это сравнивали
Dynamic Workflows в Claude Code - это не просто "запусти несколько агентов". Это скрипт, который Claude Code исполняет как оркестратор: внутри можно описывать фазы, запускать агентов, параллелить независимые задачи, строить конвейеры, ждать завершения всех веток и собирать результат.
В NaCl механизм другой. Скиллы - это инструкции, которые ведут Claude Code через задачу последовательно: бизнес-аналитик, системный аналитик, тимлид, ревьюер, QA и так далее. Важная часть подхода - человеческие гейты: агент не должен сам перепрыгивать через принципиальные решения.
Поэтому я не спрашивал себя "заменить ли скиллы на workflow". Я спрашивал другое: "есть ли у нас задачи, где параллельный запуск нескольких агентов даст то, чего обычный скилл дать не может".
Для сравнения я разложил наши задачи на четыре типа.
Подход |
Где живёт логика |
Когда подходит |
|---|---|---|
Скилл NaCl |
В инструкции, которую исполняет Claude Code |
Последовательные задачи, диалог, гейты, участие человека |
Одиночный сильный агент |
В одном контексте и одном проходе |
Ревью, анализ, задачи, которые помещаются в контекст |
Многоагентный workflow |
В скрипте, который оркестрирует агентов |
Параллельный анализ, независимые роли, состязательная проверка |
Детерминированный код |
В обычном скрипте |
Git, Cypher, файлы, линтеры, тесты, механические проверки |
Тут я сразу понял одну вещь. Workflow - это не замена всему подряд. Механику надо отдавать коду, диалог с остановками - скиллу. А workflow нужен там, где тебе нужно несколько независимых точек зрения одновременно.
Когда workflow вообще имеет смысл
Когда я прикинул, куда workflow ложится, а куда нет, вырисовалось простое правило. Workflow имеет смысл только на задачах, где нужно суждение - не «прогони 50 запросов», а «посмотри, нет ли тут дыры в безопасности». При этом агенты не должны стоять в очереди друг за другом, иначе проще запустить одного. И главное - разные углы зрения должны реально давать разные находки. Ревьюер безопасности видит одно, ревьюер корректности - другое. Если этого нет, ты просто жжёшь токены ради красивого отчёта.
Про токены, раз уж зашла речь. Даже на подписке расход никуда не исчезает. Большие прогоны сжигают лимиты и время. Вопрос всегда один: стоит ли результат потраченного лимита.
Какие задачи NaCl мы рассматривали
Я посмотрел на существующие скиллы NaCl и отобрал кандидатов, куда workflow теоретически мог бы лечь.
Кандидат |
Почему мог подойти |
Что решили |
|---|---|---|
Код-ревью |
Частая задача, есть зрелый скилл, можно честно сравнить новое со старым |
Взяли как полигон |
Аудит / пост-мортем проекта |
Редкая задача с высокой ценой ошибки, полезны независимые взгляды - когда система упала в три часа ночи, хочется, чтобы каждый аспект разобрал отдельный агент, а не один перегруженный контекст |
Хороший кандидат, но не для первого замера |
Диагностика проекта |
Широкий анализ с разных сторон - похоже на аудит незнакомого проекта без документации, где каждый слой (инфра, API, бизнес-логика) требует отдельного прохода |
Хороший кандидат на будущее |
Для эксперимента выбрал код-ревью.
Причина простая: мы делаем его постоянно, у нас уже есть привычный скилл, и можно сравнить три вещи в лоб:
как работает обычный скилл / одиночный агент;
что даёт многоагентный workflow;
стоит ли результат кратно большего расхода.
Как был устроен многоагентный workflow для ревью
Я собрал workflow, который повторяет контракт вывода нашего обычного NaCl-скилла ревью, но внутри раскладывает работу на несколько независимых агентов.
Артефакты эксперимента:
Устройство было таким:

Механику я не стал раздавать LLM-агентам. Линтер, типы, тесты, проверки по графу - это не работа, требующая суждения. Её должен делать скрипт или дешёвая быстрая модель.
На LLM я оставил только то, что требует смысловой оценки: безопасность, корректность, API-контракты, работу с данными, требования, frontend/backend-специфику. Каждую область разбирал отдельный агент. На серьёзные находки запускался агент-скептик, который пытался их опровергнуть.
Заход 1. Искусственный пример
Сначала я сделал маленький NestJS-бэкенд с заранее размеченной истиной. Взял NestJS, потому что Family Cinema на нём; один баг и одна ловушка - минимальный набор, чтобы проверить и точность, и устойчивость к ложным срабатываниям.
Что заложено |
Тип |
Ожидание |
|---|---|---|
SQL-инъекция через интерполяцию пользовательских данных в запрос |
Реальная блокирующая ошибка |
Должен найти |
«Нет авторизации на deleteOrder» |
Ложная проблема: защита стоит выше на контроллере |
Должен отбросить |
Первый сырой прогон выглядел так:
Прогон |
Агенты |
Токены |
Время |
Находки |
|---|---|---|---|---|
Без настройки |
16 |
592 743 |
345 c |
26 |
Что получилось:
Проверка |
Результат |
|---|---|
SQL-инъекция |
Найдена и пережила перепроверку |
Ложная проблема с авторизацией |
Отброшена |
Незаложенный баг |
Найден недостижимый метод: сервис реализует GET /orders, но маршрут не подключён |
Шум |
Много замечаний уровня «придраться» |
Дубли |
Одна причина могла всплыть в нескольких категориях |
Самое интересное здесь - незаложенный баг. Workflow нашёл класс проблемы «код есть, но снаружи он недостижим». Это как раз тот случай, где независимые углы анализа могут дать пользу: один агент смотрит на метод, другой - на маршрутизацию, третий - на контракт.
Но 26 находок на маленький кусок кода - это перебор. Я ожидал шума, но не такого: две трети находок были придирками, которые в реальном ревью никто бы не стал обсуждать. Поэтому я сделал три настройки:
сузил фокус ревьюеров;
добавил перепроверку для более широкого набора находок;
добавил удаление дублей на этапе синтеза.
После настройки:
Прогон |
Агенты |
Токены |
Время |
Находки |
|---|---|---|---|---|
Без настройки |
16 |
592 743 |
345 c |
26 |
После настройки |
16 |
521 836 |
419 c |
12 |
Шум удалось срезать примерно вдвое. На этом этапе казалось, что направление перспективное.
Грабли №1. Настройки запуска не дошли до workflow
Первый инструментальный сюрприз был не про качество ревью, а про запуск.
Когда я запускал workflow с кастомными параметрами - какие файлы ревьюить, какой чеклист использовать - эти параметры молча терялись. Workflow запускался с настройками по умолчанию и проверял не то, что я ему передал.
На последней версии Claude Code это воспроизводилось стабильно. Обход был простой: вместо передачи параметров я генерировал отдельную версию скрипта с зашитыми значениями и запускал уже её.
Если workflow запускается не на том входе, красивый отчёт становится бесполезным.
Заход 2. Реальная задача и ложное одобрение
Дальше я взял настоящую задачу из Family Cinema: backend для админского дашборда пайплайнов - список, детали, обновления прогресса в реальном времени, репозиторий, схемы валидации. Изменение было уже не игрушечное: 1484 строки, 7 файлов.
Сравнивал два подхода:
многоагентный workflow после настройки;
наш обычный скилл ревью на модели Opus, со спецификацией и чеклистом.
Но в этом сравнении была важная асимметрия, которую я сначала недооценил:
workflow смотрел только на изменённые файлы;
одиночный агент мог читать весь репозиторий.
Результат:
Метод |
Контекст |
Вердикт |
Токены |
Время |
Агенты |
|---|---|---|---|---|---|
Многоагентный workflow |
Только изменённые файлы |
Одобрен, неверно |
1 072 026 |
~619 c |
22 |
Одиночный агент |
Весь проект |
На доработку, верно |
89 417 |
~170 c |
1 |
Это был главный негативный результат этого захода: дорогой многоагентный workflow разрешил публиковать код с реальным багом, а одиночный агент нашёл проблему и завернул задачу.
22 агента, миллион токенов, десять минут прогона - и на выходе вся эта армада разрешает катить в продакшн код с реальным багом. [TODO: уточни свою реакцию - что ты почувствовал в этот момент]
А дальше стало ещё обиднее. Workflow не просто «не увидел» баг. Один из его агентов увидел. И поднял. И его заткнули.
Баг был такой. У нас есть обновления прогресса пайплайна в реальном времени. Новый код, который мы ревьюили, подписывал клиента на статусы running и completed. А в другой части системы - в файлах, которые в этой задаче никто не трогал - статусы назывались processing и ready. Фронтенд слушал одни слова, бэкенд говорил другие. На экране прогресс просто замирал.
Один из ревьюеров внутри workflow это поймал и поднял как блокирующую ошибку. Но проверяющий агент - тот, чья работа перепроверять чужие находки - полез искать подтверждение в изменённых файлах. Не нашёл, потому что доказательство лежало в файле, который никто не менял. И по инструкции «если не можешь подтвердить - отклоняй» выкинул находку.

Одиночный агент просто прочитал весь проект. Нашёл файл с реальными статусами. Увидел, что тесты маскируют баг тем же словарём. И завернул задачу.
Я потратил миллион токенов на 22 агента. Выиграл один, который мог прочитать соседний файл.
Что пришлось исправить
После этого я поменял четыре вещи в workflow.
Проблема |
Было |
Стало |
|---|---|---|
Слепота к соседним файлам |
Ревьюеры и проверяющий видят только изменённые файлы |
Могут читать зависимости, тесты, связанные модули |
Агрессивная перепроверка |
«Если не можешь подтвердить - отклоняй» |
Отклонять находку только при доказательстве, что она ложная |
Слабая логика итогового вердикта |
Одобрение при нуле блокирующих ошибок |
Одобрение только при нуле блокирующих и нуле критических ошибок |
Недостаточная проверка требований |
Только технические категории ревью |
Добавлена отдельная проверка на соответствие требованиям |
Больше всего на результат повлияла перепроверка. Мы по сути перевернули её логику: проверяющий агент больше не выкидывает находку, если не смог её подтвердить. Он обязан доказать, что находка ложная. Не смог - находка остаётся. Когда агент видит только кусок проекта, это критически важно.
Заход 3. Честное сравнение: оба видят проект
Третий заход - задача крупнее: backend-часть обработки видео, оркестрация, ретраи, интеграция с внешними сервисами. На этот раз оба метода получили доступ к одному и тому же срезу проекта.
Результат:
Метод |
Контекст |
Вердикт |
Токены |
Время |
Агенты |
Находки |
|---|---|---|---|---|---|---|
Одиночный агент |
Весь проект |
На доработку |
125 927 |
~237 c |
1 |
9 |
Многоагентный workflow |
Весь проект |
На доработку |
1 951 852 |
~1094 c |
33 |
28 |
Фиксы сработали: ложных одобрений больше не было. Workflow прочитал соседние файлы и поймал проблемы на стыке модулей.
Один пример. Настройки модели для видео и музыки в конфиге существовали, но клиент сервиса их игнорировал и всегда отправлял одну и ту же модель. Часть заявленной функциональности была мёртвой. В прошлом заходе workflow бы эту находку выбросил - контекста не хватило бы. Теперь она дошла до отчёта.
Но самое важное - сравнение находок.
Находка |
Многоагентный workflow |
Одиночный агент |
|---|---|---|
Мёртвые настройки модели для видео/музыки |
Да |
Нет |
Два агента одновременно пишут прогресс - данные затираются |
Да |
Нет |
Сервер может сходить по произвольной ссылке от пользователя - риск атаки |
Да |
Нет |
Музыкальный шаг помечается готовым при падении генерации |
Да |
Нет |
Музыка не приглушается, когда говорит голос |
Да |
Нет |
Ошибка в обрезке аудио из-за порядка параметров |
Нет |
Да |
Склейка разнородных клипов без перекодирования |
Нет |
Да |
Тут уже нет простого ответа «workflow лучше» или «одиночный агент лучше».
Workflow нашёл гонку данных, которую одиночный агент пропустил. Поднял риск атаки через внешние ссылки. Вытащил несоответствие требованиям. Но два реальных бага одиночный агент поймал, а workflow - нет. И за эту широту workflow берёт в 15 раз больше токенов и в 4-5 раз больше времени.
Главные выводы
1. Настройка решает всё
На заходе 2 у нас 22 агента уверенно одобрили код с багом. Не потому, что workflow плохой. А потому, что мы неправильно настроили контекст, логику перепроверки и правила вердикта. Починили - и на заходе 3 workflow уже нашёл то, что одиночный агент пропустил.
2. Контекст важнее параллелизма
Один агент, который видит весь проект, поймал баг, который 22 агента с ограниченным обзором потеряли. Я потом перенёс этот принцип обратно в наш обычный скилл ревью: теперь агент обязан смотреть зависимости, а не только изменённые файлы. И обязан обосновывать каждую находку конкретным доказательством. Качество ревью выросло без всякого workflow.
3. Для ежедневного ревью workflow слишком дорог
В наших прогонах многоагентный workflow тратил в 12-15 раз больше токенов и в 4-5 раз больше времени. И всё равно пропускал баги, которые ловил одиночный агент.
Для обычного ревью по задаче или по пулл-реквесту нам хватает одного сильного агента с доступом к проекту.
4. Что мы забрали из workflow обратно в скиллы
Главный практический результат эксперимента для NaCl - не сам workflow, а то, что мы из него вытащили и перенесли в обычные скиллы: перевёрнутую логику перепроверки (отклонять находку, только если доказал, что она ложная), отдельную трассировку требований, более строгую логику вердикта, удаление дублей по причинам, а не по симптомам.
Мы не стали тащить workflow целиком в ежедневный процесс - дорого. Но приёмы, которые мы в нём нашли, уже работают в обычных скиллах. Об этом, скорее всего, будет следующая статья.
Когда 15-кратная цена оправдана
Многоагентный workflow имеет смысл, если цена ошибки выше цены токенов.
На нашем опыте самые понятные сценарии - погружение в незнакомый проект без нормальной документации и пост-мортем инцидента. Независимые проходы по разным слоям заменяют то, что кто-то должен был написать в документах, но не написал. Мы видели это в третьем заходе: каждый ревьюер находил свой класс проблем, ни один не покрывал всё.
Ещё один вероятный кандидат - предрелизный аудит крупного рискованного изменения. Мы пока не пробовали, но логика понятная: лучше потратить 2 миллиона токенов на аудит, чем откатывать продакшн в три часа ночи.
Комментарии (16)

SingleDigitIq
31.05.2026 18:58Многоагентный workflow имеет смысл, если цена ошибки выше цены токенов.
Многоагентный workflow имеет смысл, если задача выражена в строго понятных для конкретного агента шагах, с запасом умещающихся в контекст. Cемантичекое мышление - это брутфорс, жёсткий, пока что непреодолимый потолок ллмок на сегодня. Попробуйте сформировать гипотезу из, не знаю, трёх предложений, и заставьте модные ллм, какой-нибудь gemini pro формально размышлять об этом. Они скатываются в бред уровня chatgpt 2.

MNikitin Автор
31.05.2026 18:58Мне нравится ваш эксперимент, я бы его даже усилил. Дайте эту гипотезу из трёх предложений gemini pro, а потом спросите: "какой результат я получу, если проведу этот эксперимент?" Модель уверенно выдаст красивый прогноз и промахнётся. У неё же нет данных, только слова. Это мой заход 2 в миниатюре - 22 агента уверенно одобрили код с багом, потому что в их контексте не лежал файл с доказательством.
При этом то, что вы называете "непреодолимый потолок", мы видели буквально, руками. Агент-верификатор поймал правильную находку, полез искать подтверждение, не нашёл в своём куцем наборе файлов - и выкинул её. Я на заходе 3 дал тому же workflow весь проект, он нашёл гонку данных, которую одиночный агент пропустил. Тот же код, те же промпты. Другой контекст - другой результат.
Потолок есть, кто ж спорит. Но мне кажется, он не там, где вы его рисуете. Мы суём модели выжимку и удивляемся, что на выходе тоже выжимка. У меня главный вынос из всех трёх заходов: модели не надо "думать глубже", ей надо видеть конкретную строку в конкретном файле. Сравнить "тут processing, а тут running, они не совпадают" она может прекрасно. Угадать, что в невидимом файле написано processing вместо running - нет. Это не потолок мышления, это отсутствие входных данных.
Расскажете, что за гипотеза из трёх предложений? Интересно разобрать на ней: в какой формулировке модель сломается, а в какой вытянет. Подозреваю, граница пройдёт ровно по количеству конкретных фактов в этих предложениях.

SingleDigitIq
31.05.2026 18:58Ваши ответы в комментариях выглядят как ответы ллм. Ладно уж, поговорю с ботом: уже не могу поделиться гипотезой, потому что она стала теоремой вчера. Чуть ли не бегал от счастья.
Если не понимаете теорию, то просто проведите эксперимент: возьмите какую угодно непопулярную гипотезу и попробуйте формально доказать с ллм. Они просто не могут логически рассуждать, очевидно же

Ra2007
31.05.2026 18:58Мы пробовали двухагентный ревью на TS-миграции: один пишет, второй проверяет допущения. Нашёл пару незаметных edge cases, но шума было раза в три больше реальных проблем. Вывод про «цена ошибки > цена токенов» точный, у нас примерно так и работало. Один момент который добавил: без human gate workflow уходит в самосогласование, агенты начинают закрывать находки друг друга. Нужен явный скептик.

nyxandro
31.05.2026 18:58условный кодеребит отлично даже на фри тарифе проверяет кстати, можно использовать как дополнительный источник идей и советов при ревью когда. сам агент его в терминале может запускать.

MNikitin Автор
31.05.2026 18:58Два момента хочу отметить.
CodeRabbit как внешний взгляд - да, рабочая штука, грех не подключить, если бесплатно. Единственное, что я бы проверил: насколько его находки пересекаются с тем, что ловит ваш основной процесс. Если 80% дублей - это красивый отчёт поверх того же самого. А вот если он стабильно цепляет класс проблем, который ваш агент пропускает - тогда это уже реальное усиление, а не утешительный второй взгляд.
Второй момент. По нашему опыту, все-таки лучше использовать двух разных агентов, причем с разными моделями. Они действительно по-разному смотрят. Мы сейчас в основной пайплайн включаем обязательное ревью Codex кода, написанного через Claude Code, и наоборот.

MNikitin Автор
31.05.2026 18:58Про самосогласование - Вы одним словом назвали то, что у нас в статье занимает целый раздел. На втором заходе один из 22 агентов нашёл реальный баг, поднял его как блокер, а верификатор полез искать подтверждение, не нашёл в своём куцем наборе файлов и тихо закрыл. Никакого спора не было - была коллективная вежливость, которая привела к ложному одобрению.
Мы это чинили не столько человеческим гейтом (он у нас в NaCl и так стоит на принципиальных решениях), сколько переворотом логики верификации - и именно переворот сработал! Раньше скептик работал по принципу "не нашёл подтверждения - отклоняю находку". Мы заставили его доказывать, что находка ложная, а если доказать не может - находка живёт. На неполном контексте разница колоссальная, потому что "не вижу подтверждения" при куцем наборе файлов не значит вообще ничего.
Соотношение шума 3:1 на TS-миграции похоже на наш первый сырой прогон (26 находок, две трети мусор). Мы сузили фокус ревьюеров и добавили дедупликацию по корневым причинам вместо симптомов - стало терпимо, хотя до идеала далеко.
А какой размер миграции был? И скептик у вас отдельным агентом работал или был встроен в логику второго?

xsepsisx
31.05.2026 18:58Нейминг, конечно, так себе, для вашего фреймворка. NaCl, хоть и задеприкейченная технология из мира Хрома, но всё-таки, достаточно известная.

MNikitin Автор
31.05.2026 18:58Ну, здравствуй, брат-динозавр, который тоже запускал C++ в Chrome! :)) Не обижайтесь на фривольный тон - я с гугловским NaCl повозился в своё время, пощупал, почесал репу и ушёл обратно в asm.js, потому что идея красивая, а тулчейн больной. Да и потом пришёл WebAssembly и уже закрыл тему для всех.
А с названием у нас другая история. У нас компания называется "ITSalt", и когда придумывали имя для фреймворка, пошли от химии: NaCl - это формула поваренной соли, то есть буквально то, из чего наша соль состоит. У NaCl кристаллическая решётка - жёсткая, регулярная структура, которая держит форму. Фреймворк ровно это и делает - задаёт решётку, по которой агенты работают, а не импровизируют. Без решётки получается аморфная каша, что мы, собственно, и показали на заходе 2, когда workflow без правильных ограничений одобрил код с багом. :)
Так что совпадение с гугловским NaCl случайное, но ироничное - оба проекта про то, как заставить код работать в песочнице с ограничениями. Только Гугл стюардессу таки закопал, а наша всё хорошеет и хорошеет :)

kochetkov-ma
31.05.2026 18:58Family Cinema - https://claude.ai/chat/TODO_ССЫЛКА_FAMILY_CINEMA
Предлагаю добавить в ваш воркфлоу новый скилл который будет валидировать публикации, особенно ссылки

MNikitin Автор
31.05.2026 18:58Спасибо большое! Поправил. К сожалению, пока у нас во фреймворке нет скилла, позволяющего публиковать статьи на автомате. Но мы работаем над этим :)
Dhwtj
В мире жЫвотных.
Наблюдать интересно, а пользы никакой.
MNikitin Автор
Ещё музыка на заставке передачи красивая :)
А что для Вас было бы пользой?
Dhwtj
ROI
Устойчивое развитие ©
Что-то хоть немного отличающееся от магии. Вероятность найти ошибку 2-3 сигма
Проще говоря, вы занимаетесь
онансозданием лекарств с недоказанной эффективностьюMNikitin Автор
Лекарства с недоказанной эффективностью - это когда публикуют только успешные результаты и прячут провалы. У меня заход 2 - опубликованный провал: миллион токенов, 22 агента, ложное одобрение кода с реальным багом. Фарма такое прячет, а я с этого начинаю аргументацию.
Про сигмы. Правило красивое, но оно работает для повторяемого процесса с нормальным распределением - диаметр детали на конвейере, толщина стенки. Баг в реальном проекте - это не деталь на конвейере. Каждое изменение в своём контексте, каждый баг уникален. Требовать 2-3 сигма на обнаружение бага - это примерно как требовать от хирурга гауссову гарантию на каждую операцию, когда тело каждый раз другое.
Что реально можно измерить, я измерил: точность на размеченной истине (заход 1, заранее заложенные баги и ловушки), поведение на боевом коде (заходы 2 и 3), стоимость в токенах и во времени, сравнение с контрольным методом - одиночным агентом на тех же файлах. ROI из статьи конкретный: workflow в 15 раз дороже и при этом пропускает баги, которые ловит один агент с доступом к проекту. Я не продаю чудо-таблетку, я опубликовал результаты реальных исследований и причин, к ним приводящим.
Но вот что было бы правда интересно: как вы предлагаете мерить эффективность код-ревью в сигмах? У меня не получается натянуть нормальное распределение на "нашёл баг / не нашёл" при уникальном коде каждый раз. В "доИИшные времена" мы у себя измеряли процент трудозатрат, который разработчик тратит на исправление ошибок относительно трудозатрат, которые тратит на создание фичи. При высоком проценте можно было говорить, что качественно делает или нет. С ИИ этот показатель, в целом, бесполезен. Можно токенами мерить, конечно. Но за счёт обвязки в контексте это будет сложно сравнимая вещь.
Если у Вас есть рабочий подход про измерение качества кода в сигмах - поделитесь, пожалуйста. Ибо это тема для отдельной статьи. Без шуток.
Dhwtj
Каково кода мерять в сигмах нельзя. А вот измерить вероятность отловить баг определенного класса на ревью можно. Хоть и сложно. Процесс то повторяемый