Желаемое
спекаИсполнитель
агентФактическое
кодЗамер
тестыТа же петля, что в Kubernetes
Желаемое здесь — словарь агрегатов: одна запись на понятие, требования со словами MUST и SHOULD.
человек меняет желаемое
желаемое
исполнитель
фактическое
замер
Kubernetes
желаемоечарт · манифест
исполнительконтроллер
фактическоеноды · поды
замерпробы · метрики
Спеки
желаемоесловарь · MUST
исполнительагент
фактическоекод
замертесты · качество
замер → исполнитель, по кругу
Петля сверки — по документации 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без этого → интеграции вслепую
Песочница и правабез этого → страшно дать действовать
Вывод
В этом примереКонтроллер Kubernetes работает, потому что кластер даёт ему API, ноды и пробы. Агенту для той же петли нужны запуск кода, тесты, логи, данные, сервисы и песочница.
В общем случаеСловарь задаёт желаемое, но сверить с ним код может только тот, кто умеет код запускать и измерять. Чего нет в среде, того агент не проверит, и петля в этом месте разомкнута.
Что сделатьОтметьте, какие из шести возможностей есть у вашего агента. Для каждой отсутствующей решите: добавить её в харнесс или сменить харнесс.