server-monitor-manager/agents/hermes/notes/salvage-2026-08-18/hermes-desktop-attachments/desktop-attachments/0.9.3-verification-integrity.md
Ochenstarik 23eb3f5233 chore(agents): разбор рабочих папок с диска на 2026-08-18
Задания, отчёты и патчи, лежавшие в 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>
2026-08-18 14:19:54 +07:00

4.5 KiB
Raw Permalink Blame History

Реализация ADR-0005 и ADR-0009. Раздел ТЗ 36.

Репозиторий: https://github.com/ochenstarik-ui/kagent Зависит от задачи 0.9.0 (зелёный trunk).

Зачем

Definition of Done требует test_failures: 0. Это условие выполняется двумя способами: сделать код корректным или согласовать тесты с текущим поведением кода. Автономный агент оптимизирует измеримую цель, поэтому второй путь ожидаем, а не гипотетичен. Сейчас удаление падающего теста удовлетворяет DoD.

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

Что сделать

Целостность оракула (ADR-0005, ТЗ 36.2-36.6)

  • тесты формируются на этапах спецификации и планирования, а не по реализации;
  • роли Test Agent и Code Reviewer не обслуживаются той же конфигурацией модели, что Developer Agent в рамках одной задачи;
  • утверждённый набор тестов read-only для Developer Agent на всё время реализации и repair, тестовые пути в forbidden_paths контракта задачи;
  • изменение существующих тестов — действие класса approval_required;
  • разделение change set на code diff и test diff, раздельное представление reviewer;
  • проверка запрещённых конструкций в test diff: маркеры skip и ожидаемого падения, пустые обработчики исключений, отключённые и ослабленные ассерты, снижение порогов покрытия, флаги обхода проверок и hooks; совпадение блокирует завершение и не снимается реализующим агентом;
  • мутационная проверка: ограниченный набор синтетических дефектов в изменённый код, новые тесты обязаны их обнаружить, mutation_score в DoD;
  • учёт escape defects с атрибуцией запуску и конфигурации reviewer.

Ветвление и merge queue (ADR-0009, ТЗ 36.7)

  • сериализация интеграции: rebase на текущий trunk, повторный прогон обязательных проверок на интегрированном результате, затем merge;
  • одна задача — одна ветка — один change set;
  • запрет прямого push в базовую ветку, force push и переписывания истории для всех агентских идентичностей, включая административные;
  • конфликт внутри allowed_paths разрешает агент с полной повторной верификацией; конфликт вне allowed_paths или затрагивающий замороженные тесты эскалируется как человеческое решение и не расходует repair-циклы;
  • коммиты атомарны, в trailers идентификаторы задачи, запуска и версий промптов.

Критерий приёмки

  • негативный тест: агент, пытающийся пометить падающий тест как skipped, получает блокировку завершения;
  • негативный тест: тест, не обнаруживающий ни одного синтетического дефекта, не засчитывается, задача не закрывается;
  • две ветки с конфликтом проходят через очередь без поломки trunk;
  • попытка force push от агентской идентичности отклоняется.