Гид SENAR: Философия
Ценности SENAR и шесть столпов, на которых строится методология.
Ценности SENAR
-
Контекст важнее кода — Качество вывода AI определяется качеством входного контекста. Инвестируйте в требования, а не в скорость кодирования.
-
Верификация важнее скорости — AI генерирует с машинной скоростью. Ограничивающий фактор — корректность, а не скорость.
-
Знания важнее опыта — У AI нет памяти между сессиями. Что не задокументировано — не существует для AI.
-
Принуждение важнее договорённости — Шлюзы качества как автоматизированный код, а не совещания, которые можно пропустить.
-
Суждение важнее нажатий клавиш — Внимание человека направлено на решения (что строить, корректно ли это), а не на набор кода.
Столп 1: Контекст прежде всего (качество на входе)
Качество вывода AI — прямая функция качества входного контекста.
Принцип каскада: Качество закладывается на входе, а не проверяется на выходе. Дефект в бизнес-требовании расползается на все системные требования, требования к задачам и в итоге на код. Когда дефектное требование доходит до AI, оно порождает правдоподобный код, который проходит автоматические проверки, но решает не ту задачу. Никакие тесты на выходе (QG-2, QG-3) не поймают требование, которое было ошибочным с самого начала.
Поэтому SENAR вкладывается в качество требований (QG-0, QG-1) до начала реализации — не как бюрократию, а как самую окупаемую инвестицию в качество.
Требования и есть контекст. Хорошо определённое бизнес-требование, разбитое на чёткие системные требования и требования к задачам, — главный вход для качества AI-генерируемого кода. Иерархия требований (BR → SR → TR) — не бумажная работа, а структурированный контекст, от которого зависит, выдаст ли AI корректный результат.
Компоненты контекста:
- Цель задачи и критерии приёмки (= требования к задаче)
- Связь требований с родительской историей/БТ/СТ (= прослеживаемость)
- Архитектурные ограничения и конвенции
- Релевантные знания (решения, тупиковые подходы, подводные камни)
- Примеры и антипаттерны
- Границы области изменений (что НЕ менять)
Типичные ошибки:
- Вайб-промптинг — размытые инструкции без структуры. Допустимо для тривиальных задач, опасно для сложной работы.
- Свалка контекста — заваливание AI неструктурированной информацией. Критические ограничения тонут в потоке.
- Неявное допущение — ожидание, что AI знает конвенции без документации.
- Неоднозначные требования — то, что человек уточнил бы в разговоре, AI интерпретирует буквально или галлюцинирует ответ. В отличие от живой команды, AI не спрашивает «вы имели в виду X или Y?» — он молча выбирает один вариант.
Столп 2: AI-First, но не AI-Only
Основной режим работы Супервайзера — AI-направляемая разработка. Ручное кодирование — обоснованное исключение, а не запрет.
Когда ручное вмешательство оправдано:
- Микрофиксы (1–3 строки), подготовка контекста для которых дороже самого исправления
- AI застрял в цикле на неверном подходе
- Инфраструктурная конфигурация, где AI галлюцинирует
- Срочные хотфиксы
- AI сделал 90% верно — проще поправить 3 строки, чем заново объяснять
Типичные ошибки:
- Теневое кодирование — написание кода и его сокрытие от системы прослеживаемости
- Микроменеджмент — переписывание >30% вывода вместо улучшения контекста
- Штамповка — принятие результата без проверки
Столп 3: Принуждение вместо церемоний
Качество обеспечивается автоматизированными шлюзами, а не совещаниями.
AI-агенты не ходят на совещания, не чувствуют ответственности и не учатся на ретроспективах. Единственный надёжный механизм качества — автоматизированное принуждение.
| Назначение | Механизм |
|---|---|
| Решить, что строить | Церемония |
| Проверить качество кода | Шлюз |
| Обзор со заинтересованной стороной | Церемония |
| Проверить выполнение требования | Шлюз |
Столп 4: Сохранение знаний
Что не задокументировано — не существует для AI.
Документация кода — контекст, а не формальность. В AI-нативной разработке документация кода служит двум целям: помогает Супервайзерам-людям понять систему и сокращает объём контекста для каждой задачи. Хорошо задокументированный модуль (назначение, контракты публичного API, архитектурные границы) избавляет Супервайзера от необходимости заново объяснять всё это в каждой задаче. AI читает документацию, понимает роль модуля и генерирует код, который вписывается в архитектуру.
Незадокументированный код вынуждает Супервайзера компенсировать: длиннее описания задач, больше явных ограничений, больше границ области. Это дорогой контекст, которому место в самом коде. Документация вроде «обрабатывает OAuth для Google и GitHub, хранит токены зашифрованными в таблице сессий, обновляет автоматически» — экономит 5 строк контекста задачи при каждой работе с авторизацией.
Правило 9.11 (Документация кода как контекст) делает это обязательным требованием (ОБЯЗАТЕЛЬНО): документация кода, достаточная для того, чтобы AI понял назначение модуля, контракты API и границы без чтения всей реализации.
Что фиксировать: решения (с обоснованием), паттерны, подводные камни, тупиковые подходы (наибольшая ценность повторного использования), наблюдения.
Доставка знаний в AI: статические файлы контекста, поисковые API, MCP-интеграции или RAG. Выбирайте осознанно.
Жизненный цикл знаний: current → needs_review (помечено как потенциально устаревшее) → deprecated. Устаревшие записи активно вредят качеству — они дают AI неверный контекст.
Столп 5: Паттерны взаимодействия
Управление AI — это диалог, а не одноразовая команда.
| Паттерн | Когда использовать |
|---|---|
| Планирование-затем-исполнение | Сложные задачи: запросить у AI план → проверить → утвердить → выполнить |
| Итеративное уточнение | Большинство задач: сгенерировать → проверить → скорректировать → улучшить |
| На основе примера | UI/паттерны: «сделай как здесь, но с изменением X» |
| Негативный пример | Известные ловушки: «не делай X, потому что Y» |
| Контрольная точка и проверка | Многошаговые задачи: AI делает шаг 1 → проверка → шаг 2 |
| Ограждение области | Контроль объёма: «измени ТОЛЬКО файлы X, Y. НЕ трогай A, B» |
| Откат и повтор | Неверное направление: откат через git, перезапуск с другим контекстом |
| Исследование | Неизвестная территория: исследовать прежде, чем выбрать подход |
Управление контекстным окном
- Контекст AI деградирует по мере роста беседы (насыщение)
- Прогрессивное раскрытие: предоставляйте информацию по мере необходимости, а не сразу всю
- Стратегические контрольные точки очищают контекст и начинают с чистого листа
- Для больших кодовых баз: адресное чтение файлов вместо массовых дампов
- Передачи (handoff) сериализуют ключевой контекст для новых сессий
- Если AI начинает путать — дело не в модели, контекст переполнен
Управление галлюцинациями
Распространённые типы: несуществующие API/методы/флаги CLI, несуществующие файлы, правдоподобный код с тонкими ошибками на крайних случаях, уверенные, но ошибочные утверждения.
Эвристики обнаружения:
- Чрезмерная уверенность в новаторских решениях (красный флаг)
- «Подозрительно идеальный» код, обрабатывающий все крайние случаи
- Ссылки на пути/API, которые вы не узнаёте
- Всегда запускайте код — не доверяйте утверждениям AI о том, что он делает
Столп 6: Эмпирическая калибровка
Каждое правило и целевое значение должно калиброваться по вашим данным.
SENAR даёт формулы, а не целевые показатели. Организации устанавливают базовые значения, измеряя их на протяжении 3+ инкрементов, а затем задают цели на основе собственной реальности.
Типичные ошибки:
- Карго-культ — копирование целевых показателей другой организации
- Преждевременная оптимизация — агрессивные цели до понимания базовых показателей
- Зацикленность на метриках — оптимизация ради метрики, а не ради результата