Егор Урванов

Петля сверки для спекКак в Kubernetes, только желаемое — спека, а фактическое — код

Spec-driven development с петлёй сверки: кто меняет желаемое, а кто приводит к нему код, почему зелёные тесты ещё не значат «верно» и какие шесть возможностей среды нужны агенту, чтобы петля замкнулась.

· 3 мин · · Спеки и контекст

Та же петля, что в Kubernetes

Желаемое здесь — словарь агрегатов: одна запись на понятие, требования со словами MUST и SHOULD.

Петля сверки — по документации Kubernetes о контроллерах.

Вывод
В этом примереВ Kubernetes человек правит чарт, а контроллер приводит ноды к нему. Здесь человек правит словарь, а агент приводит к нему код и проверяет тестами.
В общем случаеОбе системы держат желаемое состояние отдельно от фактического и сверяют их по кругу. Человек в петле меняет только желаемое, поэтому любая его правка сразу превращается в работу исполнителя.
Что сделатьПравьте требование в словаре, а не код руками, и запускайте агента с задачей привести код к словарю.

Замер видит только то, что в него заложено

Пример — бронь переговорной из статьи Спеки по агрегатам: три требования MUST и одно SHOULD.

Kubernetes
/healthz → 200
очередь заказов стоит
проба зелёная, сервис не работает
Спеки
MUST · не пересекаютсятест
MUST · только вперёдтест
MUST · 15 мин → closedнет проверки
SHOULD · каналревью
MUST покрыто2 / 3
тесты зелёные, одно MUST не проверено
каждое MUST → своя проверкаMUST без проверки = находказелёный ≠ верный

Какие пробы бывают и что они проверяют — Kubernetes: probes.

Вывод
В этом примереПроба отвечает «200», хотя заказы стоят, а тесты брони зелёные, хотя правило про 15 минут никто не проверяет.
В общем случаеЗамер подтверждает только то, что в нём записано, и ничего не говорит об остальном. Поэтому карточку агрегата сверяют с проверками: MUST без проверки — это пробел, а не выполненное требование.
Что сделатьПройдите по MUST своего словаря и пометьте, где нет теста. Каждую такую строку заведите задачей или понизьте до SHOULD осознанно.

Среда решает, замкнётся ли петля

кластерсреда контроллера
≈
харнесссреда агента
Запуск кодабез этого → догадки вместо фактов
Тестыбез этого → MUST не проверить
Логибез этого → не видно, что сломалось
Тестовые данныебез этого → проверка на пустом
Сервисы через MCPбез этого → интеграции вслепую
Песочница и правабез этого → страшно дать действовать
Отдельная статьяКак выбрать среду: сравнение харнессовClaude Code, Codex, Cursor, Hermes и чат на одной карте
Вывод
В этом примереКонтроллер Kubernetes работает, потому что кластер даёт ему API, ноды и пробы. Агенту для той же петли нужны запуск кода, тесты, логи, данные, сервисы и песочница.
В общем случаеСловарь задаёт желаемое, но сверить с ним код может только тот, кто умеет код запускать и измерять. Чего нет в среде, того агент не проверит, и петля в этом месте разомкнута.
Что сделатьОтметьте, какие из шести возможностей есть у вашего агента. Для каждой отсутствующей решите: добавить её в харнесс или сменить харнесс.

Дальше по теме

Пример с бронированием выдуман. Термины и подходы — по источникам в подписях под схемами.
  • AI
  • spec-driven development
  • спеки
  • Kubernetes
  • харнесс
© 2026 Егор Урванов