Дядюшка Боб надевает смирительную рубашку на ИИ-агентов 🪓

Роберт Мартин выкатил свой агентный скилл — ub-mode. Он упаковал практики экстремального программирования и TDD в протокол для LLM, заставив нейронки отчитываться перед детерминированными линтерами и тестами.

Дядюшка Боб надевает смирительную рубашку на ИИ-агентов 🪓

Логика ub-mode разбита на три фазы:

1. First Make it Work (Сначала сделай, чтобы работало)

🔵 Жесткий TDD: агент обязан написать падающий тест ДО изменения продакшн-кода. Убедиться, что он падает именно по ожидаемой причине, и только потом сделать минимальный фикс, который заставит тест позеленеть.

🔵 Laziness Protocol: одно решение живет строго в одном месте. Никаких «заодно подправлю соседний модуль».

🔵 Архитектурный каркас: нелегальные состояния данных должны быть невозможны на уровне типов, а валидация выносится на внешние границы, чтобы внутренняя бизнес-логика оставалась чистой функцией.

2. Then Make it Right (Затем приведи в порядок)

Вместо субъективной оценки «код вроде нормальный» подключаются автоматические quality-gates:

🔵 CRAP score < 10: агент обязан снижать цикломатическую сложность функций и дотягивать покрытие тестами до порогового значения.

🔵 Мутационное тестирование: инструмент Mutator прогоняет мутации по коду. Агент должен закрыть тестами слепые зоны и буквально «убить выживших мутантов».

🔵 Dryer: отслеживание структурного дублирования кода. Любой кусок со схожестью выше 0.8 рефакторится.

🔵 Тестирование строго поведения, а не кишок реализации.

3. Practice (Гигиена процесса)

🔵 Guard the Context Window: агент обязан защищать контекстное окно. Основной тред должен оставаться компактным: черновая простыня расчетов выносится во внешние файлы, а в рабочем контексте остается только выжимка. Модель перестает тупеть от перегруза токенов.

🔵 Логирование каждого действия с объяснением причин и фиксация изменений серией мелких атомарных коммитов.

22