SDD / микросервисы / archspec

Что уточнить в докладе

Существенные замечания и короткие пояснения для сцены.

7 главных замечаний7 мин на чтениеСлайды остаются прежними

Основная логика доклада сохраняется: спецификация помогает удерживать договорённости, но не гарантирует правильное взаимодействие сервисов. Явные правила и проверки закрывают часть рисков; работу всей цепочки нужно подтверждать отдельно.

Ниже — семь главных замечаний и короткие уточнения для выступления. Они не требуют менять слайды. Номера относятся к 35 слайдам презентации, а не к страницам PDF. Проверены слайды и заметки; исходные прогоны и реализации инструментов заново не проверялись.

1. Проверки плана существуют

Слайды 7 и 12 · Уточнить предмет критики

Проблема. «Плана не проверяет никто» расходится с собственными заметками: там указан /speckit.analyze, который сверяет spec, plan и tasks до реализации. Отсутствие эталонного плана тоже не мешает проверять требования и ограничения.

Что сказать:

Проверки планов существуют. Мой вопрос — проверяют ли они правила взаимодействия конкретных сервисов: кто меняет состояние, как доставляется событие и что происходит при повторе. Согласованности документов для этого недостаточно.

Так сохраняется причина добавлять архитектурную проверку, без утверждения, что другие инструменты вообще не проверяют планы.

2. Рост средних не доказывает эффект инструмента

Слайды 13, 19–20 и 28 · Обозначить границы замера

Проблема. Фраза «меняются только процесс и модель» слишком сильная. По заметкам серии различались неделями запуска, версиями клиентов и изоляцией. У Gemini в контрольной серии план писала другая модель. На каждую конфигурацию приходится один прогон; усреднение по шести моделям не устраняет эти различия.

Что сказать перед таблицей:

Это один стенд, одна задача и один прогон на конфигурацию. Условия серий немного различались, у Gemini в контрольной серии был другой планировщик. Средние описывают полученные решения; отдельно измеренного эффекта инструмента здесь нет.

Важные границы: опорные прогоны использованы для настройки оценщика; расхождение двух оценщиков с разными промптами не измеряет чистое согласие между ними. Из этих серий нельзя выводить общий рейтинг процессов или обещать такой же прирост в следующем запуске.

Сохранить главный результат: среднее покрытие чеклиста выросло, но полных сценариев по ревью осталось по одному на серию. Максимальный чеклист вырос с 79 до 95 %, поэтому «верхняя граница не сдвинулась» нужно относить именно к числу полных сценариев.

3. «Сценарий работает» — заключение ревьюера

Слайды 10, 20–21 и 28 · Разделить способы проверки

Проблема. «Да» в таблице можно принять за успешный запуск всей системы. Фактически сценарий оценивали по коду и тестам; подтверждённого сквозного запуска у таблицы нет. Это уже пояснено в заметках, но оговорка нужна до первого показа результатов.

Что сказать:

«Да» означает, что ревьюер проследил выбранную цепочку: отказ, переназначение, новый оффер. Это не результат сквозного запуска и не отсутствие остальных ошибок.

Успешный go test подтверждает только имеющиеся проверки. В серии OpenSpec три модели не добавили тестов, остальные добавили юнит-тесты. Отсутствие сквозного запуска само по себе не доказывает сбой: его обосновывают конкретные дефекты.

На слайде 10 фраза «e2e не ловят дубли, гонки и редкие ветки» тоже требует ограничения:

Такие случаи можно проверить, если заранее заложить их в тесты. Зелёный обычный проход не подтверждает это покрытие.

Вместо «каждый сервис написан правильно» точнее говорить «локальные проверки проходят»: ошибка может находиться в одном сервисе и проявляться на стыке.

4. Нужно уточнить формулу процентов

Слайды 19–20 и 28 · Проверить исходную рубрику

Проблема. Метрика объяснена как число выполненных требований из 21. При одинаковом весе и бинарном зачёте шаг равен примерно 4,76 процентного пункта. Например, 64, 79 и 93 % после обычного округления так не получаются.

Возможно, есть частичный зачёт, веса или другая агрегация. Это не доказывает ошибку оценок, но формула в материалах не раскрыта. Средние по показанным процентам посчитаны верно: 65,7 → 80,2 → 88,3 %.

До выступления: уточнить знаменатель, веса, частичный зачёт и округление; подготовить один пример расчёта строки.

Пока формула не подтверждена:

Это процентная оценка покрытия чеклиста по ревью. Переводить её в целое число полностью выполненных требований по этой таблице нельзя.

Если частичный зачёт подтвердится, назвать его прямо. Одной речевой оговоркой вопрос к формуле окончательно не закрыть.

5. Неизменный файл не доказывает отсутствие ревью

Слайд 23 · Разделить наблюдение и вывод

Проблема. Одна сохранённая версия плана означает, что в истории нет его содержательных изменений. План могли проверить и оставить прежним. Для вывода «дефект родился на плане» нужно показать конкретный пропуск плана и его продолжение в коде.

Есть и стыковка источников: слева показана история контрольной серии и пример Sonnet в superpowers, справа — самоотчёт Sonnet уже из archspec. Отчёт и ревью справа относятся к одному прогону, но две половины слайда — к разным сериям.

Что сказать:

В сохранённых планах не видно содержательных исправлений. Некоторые существенные правила были пропущены уже до кода. Справа пример из следующей серии, с archspec: добавленный процесс тоже пропустил ошибки.

Свежий контекст второго агента полезен, но сам по себе не гарантирует независимости предположений и полноты проверки.

6. Генерация удерживает диаграмму рядом с YAML

Слайд 27 · Ограничить гарантию

Проблема. Из «диаграмма — выход генератора» не следует «устареть не может». Генератор может точно воспроизвести устаревшую карту. Проверка YAML → диаграмма не доказывает соответствие YAML → код.

Что сказать:

При активной проверке генерации диаграмма не может незаметно разойтись с YAML. Актуальность самого YAML относительно кода проверяется отдельно.

Простой контрпример: поведение сервиса изменили, карту оставили прежней, диаграмму пересобрали. Генерация корректна, описание системы уже устарело.

7. «Четыре требования закрыты» объединяет разные гарантии

Слайды 12, 25–26, 29–30 и 33 · Назвать, что именно проверяется

Проблема. Наличие механизма, инструкция агенту и исполняемая проверка дают разные гарантии. На слайде 29 это уже видно: поле ключа заполнено, но значение неверно; файл теста есть, но проверка риска не подтверждена.

Что предусмотреноГде проходит граница
Схема и обязательные поляНе доказывают смысл значений. key_source остаётся свободной строкой
Уточнения и ревью планаВыполняются агентом по инструкции; это не неизбежная проверка скриптом
Обход карт обеих сторонНе гарантирует полноту карт и совместное поведение сервисов
Git-хукиАвтоматически запускают свой набор проверок. Остальные команды требуют вызова
Рост чеклиста у GeminiНе означает рабочую фичу: ветка не собралась

Что сказать на слайде 30:

Для четырёх требований предусмотрены механизмы. Часть исполняют скрипты, часть выполняют агенты. Полноту поведения они пока не гарантируют.

Уточнить и время запуска: на этапе плана работает ревью агента; validate и check-architecture в описанном процессе идут после реализации. «До первого коммита» не равно «до кода». Существование файла теста или изменение ADR также не подтверждает их содержание.

Для финала вместо «закрывает класс ошибок целиком»:

Часть структурных нарушений можно блокировать автоматически. Проверку каждого существенного риска нужно связать с требованием плана и конкретным тестом поведения.

Короткие уточнения по ходу доклада

СлайдыЧто важно сохранить в объяснении
1, 8–9Один учебный стенд показывает механизм сбоя, но не доказывает, что SDD в целом хуже работает в микросервисах. Сравнения с монолитом нет. Потеря контекста — мотивация; её влияние отдельно не измерено
4125–150 тысяч токенов нельзя подавать как универсальный порог. Короткая сессия помогает управлять контекстом, но не гарантирует правильный ответ
5–7Требования описывают поведение, план — способ изменения, системная спека — действующие правила. Обновление спеки через archive и проверка её соответствия коду — разные операции
8«Минуты → часы → дни → недели» — иллюстрация объёма переделки. Время, экономия и полная стоимость процесса в замере не измерены
11, 32«Локальная» не означает «слабая». Практики переносимы между моделями, но качество их исполнения зависит от модели
16, 22Расстояние разрешает равенство рейтингов. В заметках к 22 сказано «при равных навыках» — в речи придерживаться постановки слайда 16
18, 22task_id + attempt различает попытки в подборе, match_id — результаты подбора в уведомлениях. Новая попытка получает новый результат; повторная доставка сохраняет ID
18Запрет обходить фасад проверяли ревью. Kubernetes с NetworkPolicy в этом замере не запускали
22«Все ловушки у пяти моделей» требует сверки состава ловушек. Указанные частоты города и потери оффера не поддерживают буквальное «все семь у каждой из пяти». До сверки использовать частоты конкретных дефектов
30OpenSpec с дополнительными проверками — отдельный опыт вне сравнительной таблицы трёх процессов

Перед выходом на сцену

  1. Уточнить формулу процентов и состав «всех ловушек» по исходным оценкам.
  2. Перед таблицами назвать один прогон на конфигурацию и оценку сценария по ревью.
  3. На слайдах 7, 27 и 30 ограничить обещания проверок.
  4. Сохранить финальный вывод: явные правила дают предмет для проверки, но полноту поведения нужно подтверждать отдельно.