/plan-audit
/plan-audit — Замкнутый страж конвейера /plan — оборачивает spec → generate → review и активно устраняет находки, пока набор не станет проверенным целым без находок.
Роль: Страж Позиция в конвейере: обёртывающая / ортогональная (до выполнения)
Замкнутый страж конвейера /plan. Там, где /plan-review отчитывается и уточняет сгенерированный набор, /plan-audit оборачивает вышестоящий цикл (/plan-spec → /plan-generate → /plan-review) и доводит набор до проверенного целого без находок — запуская только недостающие вышестоящие этапы, проводя аудит результата, исправляя на месте механически разрешимые находки, выводя развилки суждения через канал структурированного запроса и зацикливаясь, пока набор не станет чистым или не сработает ограниченное отступление. Он никогда не выполняет работу по реализации фаз; он оставляет набор готовым для /plan-execute.
Каноническое обращение
/plan-auditС аргументами:
/plan-audit [suite-path] [--from spec|generate|review] [--remediate] [--cap N] [--maintenance] [--dry-run]Входы
_spec/spec.md целевого набора, _inputs/handoff-manifest.yml, файлы инфраструктуры, phases/**/PHASE.md и любые существующие отчёты фаз.
Выходы
Устойчивый ограниченный отчёт в <suite>/_outputs/audit-report-<YYYY-MM-DD>.md; обновлённый манифест передачи, несущий вердикт об отсутствии находок, счётчик открытых находок, журнал устранения и любую маршрутизацию на обслуживание; и ненулевой терминальный статус, когда остаются остаточные находки.
Позиция в конвейере
/plan-audit ортогонален линейному конвейеру, а не является его этапом. Каноническая линейная последовательность — /plan-spec → /plan-generate → /plan-review → /plan-design (условно, только наборы, несущие архитектуру) → /plan-execute. /plan-audit охватывает /plan-spec → /plan-generate → /plan-review как единую замкнутую обёртку, которую можно вызвать в любой точке: она проверяет состояние и запускает только недостающие этапы. Он отличается от цепочки аудита крепости (вход в /code-review, терминал в /threat-model-audit), которая проводит аудит выполненной кодовой базы, а не набора планов.
Фазы рабочего процесса
- Разрешить цель — Разрешает набор из аргумента или выбирает самый недавно изменённый набор под
.apothem/plans/(.plans/— поддерживаемый обратносовместимый запасной вариант) и заявляет о разрешении. - Оценить этап — Обнаруживает, какие артефакты существуют (spec готов / сгенерирован / проверен / выполнен), и называет наименьший разрыв до проверенного выполнимого целого.
- Привести к проверяемому целому — Запускает только недостающие вышестоящие этапы, делегируя каждый разрыв канонической команде; никогда не перезапускает удовлетворённый этап лишь для обновления прозы.
- Криминалистический аудит — Применяет измерения аудита
/plan-review, каталог техник планирования и пятнадцатиполосный шлюз предвыпуска. - Активное устранение — Исправляет механические находки на месте; выводит развилки суждения через канал структурированного запроса; маршрутизирует законно выходящую за рамки работу в родственный набор
*-maintenance. - Цикл с пределом и отступлением — Повторяет аудит-и-устранение, пока не останется открытых находок, ограниченный пределом итераций (по умолчанию 3) с определённым отступлением при исчерпании предела.
Режимы отказа
| Симптом | Причина | Восстановление |
|---|---|---|
| Предел исчерпан с остаточными находками | Находки не разрешимы в пределах предела итераций | Просмотрите отчёт аудита; маршрутизируйте подходящие пункты в набор *-maintenance; повышайте --cap только с обоснованием |
| Развилка суждения не разрешена | Находка требует решения по политике/области/полномочиям | Ответьте на приглашение структурированного запроса; цикл никогда не выбирает молча |
| Отсутствует авторитетный spec | Нет _spec/spec.md | Обёртка маршрутизирует в /plan-spec для его написания |
| Шлюз качества FAIL | Выход не соответствует стандартам | Устранение исправляет первопричину и проводит повторный аудит затронутых локусов |
Примеры
# Dry-run: report detected suite, stage, planned audit dimensions, would-write targets
/plan-audit --dry-run
# Audit and actively remediate a named suite, capping the loop at 2 iterations
/plan-audit path/to/plan-suite/ --remediate --cap 2