Задания, отчёты и патчи, лежавшие в C:\Users\Ochenstarik\projects и в домашней папке, перенесены в agents/. Разложено по агентам там, где имя файла позволяло определить автора; остальное — в _salvage-2026-08-18/ и разбирается вручную. Патчи в notes/salvage-2026-08-18/ — незакоммиченная работа из брошенных рабочих копий: она существовала только на диске. Тяжёлое (релизные архивы, инсталляторы, наборы данных) в репозиторий не попало: оно лежит рядом, в Agent_projects/_archive и Agent_projects/_data. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
6.2 KiB
Правила работы — AGENTS.md в корне репозитория, копия в
C:\Users\Ochenstarik\kagent-tasks\AGENTS.md.
Рабочий каталог: C:\Users\Ochenstarik\kagent\.worktrees\t_e15a6516
Ветка: wt/kagent-091-measurability
Выполняется после задачи b2-measurability-sanitize.md.
Предусловие
Ветка отпочкована от старого main, в ней нет работы этапа 0.9.0: нет pnpm-lock.yaml, нет
job python, нет исправлений gateway и control-plane. Пока PR #3 не влит в main, сборка
этой ветки будет красной по чужим причинам.
Начинать только после того, как PR #3 смержен. Первым действием — git fetch origin и
rebase ветки на origin/main. Верификация на устаревшей базе не даёт права на слияние.
Если PR #3 ещё не влит — останови работу и сообщи. Не обходить, не копировать чужие правки в свою ветку.
Проблема
Три скрипта — roadmap_status.py, drift_check.py, eval_suite.py — написаны, но не
вызываются ниоткуда. Это ровно тот дефект, который drift_check.py создан обнаруживать:
код присутствует в дереве и недостижим ни из одной точки входа.
Пока они не в непрерывной интеграции, вычисляемый статус остаётся декларацией.
1. Подключить к непрерывной интеграции
Добавить в .github/workflows/ci.yml:
- шаг
python scripts/drift_check.pyв существующий jobpython. Сборка падает при обнаружении расхождения. Список проверок — из спецификации, раздел 41.5: заявленная возможность без проходящего доказательства; модуль в дереве, недостижимый ни из одной точки входа; задокументированный endpoint, отсутствующий в таблице маршрутов; задокументированная переменная окружения, которая нигде не читается; пользовательское изменение без записи вCHANGELOG.md; архитектурное изменение без ADR; - отдельный job
measurability: выполняетroadmap_status.py, публикует полученныйROADMAP.mdкак артефакт сборки и падает, если сгенерированный файл отличается от закоммиченного. Это и есть механизм, запрещающий ручную правку статусов; eval_suite.pyзапускать в режиме, не требующем поставщика моделей. Пока набор состоит из черновых случаев, job проверяет только разбор контрактов и целостность набора, а не прохождение случаев.
2. Первый прогон будет красным
Ожидаемо и правильно: drift_check.py на текущем дереве обязан найти как минимум четыре
недостижимых модуля —
services/nats/src/events.py
services/auth/src/totp.py
services/control-plane/src/db.ts
packages/contracts/src/reasoning.ts
Ни один из них не импортируется ниоткуда.
Не чинить эти модули в этой задаче и не ослаблять проверку, чтобы сборка позеленела. Правильное действие: убедиться, что проверка их находит, зафиксировать список в отчёте и завести отдельную задачу на решение по каждому — подключить или удалить.
Чтобы ветку можно было влить, добавь в drift_check.py файл известных расхождений
(docs/known-drift.json) с ограниченным сроком: запись содержит путь, причину, дату и
задачу, в которой расхождение снимается. Запись без задачи или с истёкшим сроком роняет
сборку. Список должен только сокращаться.
3. Что не входит
- наполнение случаев оценки настоящими снимками репозиториев;
- метрики автономности и гейт релиза по ним;
- исправление найденных расхождений.
Критерий приёмки
- ветка перебазирована на
main, содержащий работу 0.9.0; drift_check.pyвызывается из CI и находит все четыре недостижимых модуля — список привести в отчёте;roadmap_status.pyвызывается из CI, расхождение сгенерированного и закоммиченногоROADMAP.mdроняет сборку;- проверено, что ручная правка статуса в
ROADMAP.mdдействительно роняет сборку: сделать правку, показать красный прогон, откатить; - прогон непрерывной интеграции зелёный при пустом списке известных расхождений сверх четырёх зафиксированных;
- ссылка на прогон приложена.
Границы
.github/workflows/ci.yml, scripts/*, docs/capabilities.json, docs/known-drift.json,
ROADMAP.md. Ничего в сервисах не трогать.