andrey.epifantsev b77776849e docs(spec): /harness-retro — срез метрик, поправки владельца, хвосты закрытия, корпус по сегментам (#29)
OpenSpec change harness-retro: proposal, specs (harness-retro — новая
capability; hook-guards — MODIFIED «Регрессионный корпус хуков»: сегменты
и known), design с Decisions made without discussion. По итогам
brainstorming 24.10.2026: черновик ретро, срез одного проекта, запуск из
репозитория обвязки, разметка блокировок агентом в корпус, хвосты по
текущему состоянию, поправки владельца по процессу, подход A.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 00:47:00 +04:00

3.1 KiB
Raw Blame History

Spec Delta: hook-guards

MODIFIED Requirements

Requirement: Регрессионный корпус хуков

Пакет SHALL содержать корпус вызовов хуков из реальных транскриптов и живых случаев. Каждая запись MUST иметь идентификатор, ожидаемый вердикт allow|block и код класса.

Корпус MUST состоять из сегментов: строка-шапка {home, layout}, за ней записи этого сегмента. Для каждого сегмента строится своя песочница с раскладкой из его шапки. Корпус MUST прогоняться через хуки тестами пакета по источникам и doctor.sh по установленным копиям.

Запись с полем known: "<маркер находки>" — известная ошибка текущих хуков:

  • её расхождение с ожидаемым вердиктом MUST NOT давать FAIL;
  • совпадение вердикта при наличии known MUST давать FAIL KNOWN-FIXED, чтобы пометку сняли.

Scenario: Расхождение в тестах пакета

  • WHEN хук из hooks/ выносит по записи корпуса без known вердикт, отличный от ожидаемого
  • THEN bash tests/run.sh печатает FAIL с идентификатором и классом записи и завершается с ненулевым кодом

Scenario: Отчёт doctor

  • WHEN запущен doctor.sh при установленных хуках
  • THEN в разделе самотеста есть строка корпус хуков: <совпало>/<всего>, расхождения перечислены с идентификаторами
  • AND при наличии записей known строка продолжается , известных ошибок <K>

Scenario: Сегменты с разной раскладкой

  • WHEN корпус содержит сегмент пилота 12.10 и сегмент ретро с другим домашним каталогом и другими репозиториями
  • THEN каждая запись прогоняется в песочнице своего сегмента, и вердикты совпадают с ожидаемыми

Scenario: Известная ошибка

  • WHEN запись имеет expected: allow, known: "RT-21", а текущий guard-main её блокирует
  • THEN тест корпуса не падает, в выводе запись отмечена как известная ошибка

Scenario: Известная ошибка исправлена

  • WHEN запись имеет known: "RT-21", а текущие хуки выносят ожидаемый вердикт
  • THEN тест корпуса печатает FAIL KNOWN-FIXED с идентификатором записи