Гид SENAR: Сквозной разбор

Пути внедрения

У SENAR два пути внедрения. Начните с Базовой (Core); переходите на Standard, когда потребности перерастут его.

Базовый путь (индивидуально или малая команда)

  1. Примите 8 правил — Задача перед кодом, Границы области, Проверка по критериям, Тесты проверяют требования, Проверка на латентные дефекты, Нулевая толерантность к незавершённой работе, Устранение причин, а не симптомов, Фиксация знаний.
  2. Внедрите 2 шлюза — Стартовый шлюз (цель + КП + негативный сценарий + область до реализации) и Финальный шлюз (все КП проверены, чеклист пройден, знания зафиксированы).
  3. Измеряйте 2 метрики — FPSR (First-Pass Success Rate) и DER (Dead End Rate). Установите базовые значения за 3+ цикла, прежде чем задавать целевые.

Это всё. Никаких ролей, церемоний, управления сессиями. Разбор ниже демонстрирует этот путь.

Путь Standard (команда или организация)

  1. Начните с Базовой — примите все 8 правил, оба шлюза, обе метрики.
  2. Добавьте Начальную конфигурацию (Foundation) — 1–3 пары; добавьте дисциплину сессий (Старт/Конец сессии, ежемесячный Обзор качества); Супервайзер совмещает роли Архитектора контекста, Инженера знаний и Инженера верификации. 11 правил, 4 метрики (добавляются Throughput и Lead Time), QG-0 + QG-2.
  3. Добавьте Командную конфигурацию — введите выделенные роли (Архитектор контекста, Менеджер потока, Инженер верификации), полные церемонии (Планирование инкремента, Обзор качества, Ретроспектива).
  4. Добавьте Корпоративную конфигурацию — федеративную координацию, кросс-проектные метрики, портфельное управление, аудиторские следы соответствия.

Раздел «Командный разбор» ниже демонстрирует путь Standard в Командной конфигурации.


Базовый разбор (одиночный Супервайзер)

Один человек, один AI-агент, одна сессия. Создаём эндпоинт REST API.

Старт сессии (2 мин): Открываем терминал. Загружаем предыдущую передачу контекста: «Модуль авторизации готов. Далее: эндпоинт профиля пользователя.» Выбираем задачу impl-user-profile.

Проверка стартового шлюза: Цель: «GET /users/me возвращает профиль текущего пользователя.» КП: «1. Возвращает 200 с данными пользователя. 2. Возвращает 401 без токена. 3. Включает информацию о компании.» Связь с историей: user-management. → Проходит.

Исполнение: Направляем AI с ограждением области:

«Реализуй GET /users/me. КП: [выше]. Следуй паттернам из auth/router.py. Измени ТОЛЬКО директорию users/.»

(Этот пример использует Python/FastAPI. Тот же паттерн применим к Java/Spring Boot @RequestMapping, Go/Gin router.GET, TypeScript/NestJS @Get().)

AI генерирует роутер + тест. Ревью по чеклисту: область ✓, импорты ✓, нет захардкоженных значений ✓, тесты проверяют поведение, а не реализацию ✓. Одна проблема: AI не протестировал случай 401.

«Добавь тест для неаутентифицированного запроса → 401.»

AI добавляет тест. Повторное ревью: чисто.

Шлюз реализации: CI зелёный, 6/6 тестов проходят, mypy чисто, КП проверены. → Готово. (Для других стеков: Java — javac + SpotBugs, Go — go vet + staticcheck, TypeScript — tsc —strict.)

Фиксация тупиковых подходов: Нет для этой задачи — всё было прямолинейно.

Конец сессии (3 мин): 4 задачи выполнено, 75 минут. Передача контекста: «Профиль, настройки, загрузка аватара готовы. Далее: смена пароля. Внимание: загрузка аватара требует валидации размера файла.»

Суммарные накладные расходы: 5 минут (старт + конец). Никаких церемоний, ролей, совещаний. Только дисциплина.



Раздел ниже демонстрирует SENAR на командном уровне. Если вы используете только Базовую (Core) — можете остановиться здесь: Базовый разбор выше является вашим полным рабочим процессом.

Командный разбор (3 пары)

Полный цикл SENAR для Командной конфигурации. 3 пары Супервайзер+AI, веб-приложение.

Планирование инкремента

Архитектор контекста ведёт:

  1. Обзор пула задач: 32 задачи-кандидата в 6 историях
  2. Применяет WSJF: Аутентификация получает наивысший приоритет (блокирует другую работу, умеренный размер)
  3. Назначает: Пара A → авторизация (6 задач), Пара B → CRUD заказов (8 задач), Пара C → CI/CD (5 задач)
  4. Риски: «Выбор библиотеки авторизации может потребовать исследования» → создаёт задачу типа Exploration
  5. Бюджет: 19 задач отобрано для этого инкремента

Сессия Супервайзера

Старт сессии (2 мин): Загрузка передачи контекста → «Модель авторизации готова. Далее: эндпоинт логина.» Выбрать задачу impl-login-endpoint. Dev-окружение зелёное.

QG-0 (автоматически): Цель ✓, КП ✓ (4 критерия), связь с требованием ✓, тип работы ✓ → проходит.

Исполнение (Планирование-затем-исполнение + Ограждение области):

«Реализуй POST /auth/login. КП: [критерии]. Следуй паттернам из auth/models.py. Используй PyJWT. Конфиг в settings.py. Измени ТОЛЬКО директорию auth/.»

(Этот пример использует Python/FastAPI с PyJWT. Тот же паттерн ограждения области применим к любому стеку: Java/Spring Security с jjwt, Go с golang-jwt, TypeScript/NestJS с @nestjs/jwt.)

AI генерирует роутер, сервис, тесты. Супервайзер проверяет по чеклисту:

  • Область: ✓ только файлы auth/
  • Фантомные импорты: ⚠ AI импортировал python-jose, но в проекте используется PyJWT
  • Захардкоженные значения: ✓ секрет токена из env
  • Крайние случаи: ⚠ нет теста на просроченный токен

Итеративное уточнение:

«Две проблемы: 1) Используй PyJWT, не python-jose. 2) Добавь тест на просроченный токен.»

AI исправляет. Повторное ревью: чисто.

QG-2 (автоматически): CI ✓, 14/14 тестов ✓, mypy ✓, lint ✓, КП проверены ✓, безопасность ✓ → проходит.

Фиксация знаний: «Подводный камень: AI по умолчанию использует python-jose для JWT, даже когда PyJWT указан в requirements. Всегда указывайте библиотеку в контексте.»

3 задачи выполнено, 110 минут.

Конец сессии (5 мин): Метрики сохранены, передача контекста написана, 1 запись в базу знаний.

Обзор качества

Процедура Обзора качества:

  1. Выберите 3–5 недавно завершённых задач (случайно или с учётом рисков)
  2. Для каждой задачи проверьте: (а) КП имеют свидетельства, (б) чеклист применён на правильном уровне, (в) знания зафиксированы
  3. Зафиксируйте находки как наблюдения в базе знаний
  4. Если FPSR падает ниже целевого значения, обсудите корневые причины на следующей Синхронизации команды (Team Sync)

После 6 сессий Инженер верификации проводит аудит:

НаходкаДействие
Дублирующаяся утилита валидации (есть в shared/)Задача: рефакторинг
3 TODO-комментария, оставленных AIЗадача: устранить
Нулевое покрытие тестами удаления заказовЗадача: добавить тесты
Непоследовательный формат ошибок между модулямиЗадача: стандартизировать

Знание: «Паттерн: AI недостаточно тестирует операции удаления — добавить в стандартный шаблон КП.»

Ретроспектива инкремента

МетрикаЗначение
Пропускная способность7,3 задачи/сессия
Lead Time (медиана)35 минут
FPSR74%
DER5,3%
KCR0,42
Предсказуемость затрат110%
MIR12%

Действия: улучшить шаблон контекста (библиотека JWT), добавить «тестировать удаление» в шаблон КП, пересмотреть QG-2 для тестов конкурентности.