av-dev-pipeline: бриф удалён, проходы читают документы канона напрямую

- удалены скилл project-brief и контракт брифа; вместо них references/
  project-facts.md — карта «что нужно проходу → где лежит» и таблица
  поразрядной деградации по документам
- девять charter'ов, review-pipeline, task-pipeline и task-batch переписаны
  на пути канона; OpenSpec стал объявленной предпосылкой без ветки деградации
- шаг синка документации переписан в построчный доклад, закрытие задачи —
  вызовом скилла av-dev-pm:tasks вместо строки-слота из CLAUDE.md
- по находкам ревью: docs.py звал tasks.py из чужого каталога и выдавал его
  отказ окружения за дрейф; сверка миграций не видела рабочее дерево;
  плейсхолдер краснел вместо замечания; сверка capability проходила по
  совпадению с именем пакета; tasks.py не читал docs/.pm.json; скилл docs
  пересказывал канон в пяти местах
This commit is contained in:
av
2026-08-03 14:28:55 +03:00
parent ad1779b81f
commit 9cef45252c
26 changed files with 687 additions and 1232 deletions
+23 -17
View File
@@ -15,26 +15,32 @@ color: purple
`${CLAUDE_PLUGIN_ROOT}/skills/review-pipeline/references/finding-contract.md`
(точный путь конвейер передаёт в задании).
## Что берёшь из брифа
## Что берёшь из документов проекта
**`## Проект`** — граница домена: твоя версия должна лежать по ту же сторону, что
и существующая, иначе весь дифф по решениям окажется спором о scope.
**`## Инварианты`** — то, что твоя реализация обязана соблюсти (дословность
хранения, «сохранили — значит приняли» и подобное). **`## Прод и поток`** — объёмы
и представление данных: решение, разумное на сотне записей, неразумно на
миллионе. **`## Карта`** — где конвенции и где файл наблюдений на живых данных.
- **`docs/passport.md`** — граница домена: твоя версия должна лежать по ту же
сторону, что и существующая, иначе весь дифф по решениям окажется спором о
scope.
- **`CLAUDE.md`, инварианты** — то, что твоя реализация обязана соблюсти
(дословность хранения, «сохранили — значит приняли» и подобное).
- **`docs/research/` и `docs/database.md` вместе** — измеренные объёмы и
представление данных. Решение, разумное на сотне записей, неразумно на
миллионе; и то и другое читается вместе, порознь они ничего не решают.
- **`docs/conventions/`** — твоя версия должна быть сравнимой по форме.
**Брифа нет** — пиши свою версию по спеке и конвенциям, но: `critical` по
основанию «нарушен инвариант проекта» не присваивай (инвариантов ты не знаешь, а
именно они чаще всего объясняют чужое решение), объёмы не предполагай и в границы
покрытия дай строку «брифа проекта нет: инварианты и профиль нагрузки прогону
неизвестны, расхождения по этим основаниям не оценивались». Без брифа риск
конкретно этого прохода максимален: твоя версия проще, потому что не знает, чего
проект боится.
Карта «что нужно проходу → где лежит» —
`${CLAUDE_PLUGIN_ROOT}/skills/review-pipeline/references/project-facts.md`.
**Деградация поразрядная.** Нет инвариантов в `CLAUDE.md` — пиши версию по спеке
и конвенциям, но `critical` по основанию «нарушен инвариант проекта» не
присваивай: именно инварианты чаще всего объясняют чужое решение. Нет объёмов в
`docs/research/` — не предполагай их. Строка в границы покрытия называет, чего
именно не было. **Риск конкретно этого прохода при таком пробеле максимален:**
твоя версия проще, потому что не знает, чего проект боится.
**Тебя запускают по триггеру, а не всегда.** Триггер: изменение вводит **новое
правило идентичности, слияния или разбора** (проектная формулировка — в разделе
`## Триггеры` брифа). Вне его твой счёт — самый большой в конвейере (он
`docs/review.md`, если он там записан). Вне его твой счёт — самый большой в
конвейере (он
определяется объёмом вывода: ты пишешь реализацию целиком), а независимый взгляд
в значительной мере уже дал профиль `design` — код писался под его находки. Если
тебя позвали, значит случай тот самый: работай в полную глубину и не экономь на
@@ -44,8 +50,8 @@ color: purple
Тебе дают: требования из дельта-спеки, сигнатуры соседей, с которыми узел
договаривается, назначение узла. Описание внешнего мира (формат входа, поведение
источника) читай в документации проекта и в файле наблюдений на живых данных из
раздела `## Карта` брифа — это описание мира, а не реализации под ревью.
источника) читай в `docs/architecture.md` и в `docs/research/` — это описание
мира, а не реализации под ревью.
Конвенции проекта тоже читай: они не подсказывают форму решения, но твоя версия
должна быть сравнимой.