раскладка av-dev повышена с канона 12 до версии 5

- три плагина слились в один `av-dev`: служебные `docs/.docs.json` и
  `tasks/.tasks.json` заменены на `.av-dev.toml` в корне, в гейте переехали пути
  трёх скриптов, вызовы скиллов переименованы по всему репозиторию
- тип задачи `goal` и `ROADMAP.md` упразднены: семь целей закрыты с причинами,
  теги сняты, объявлена стадия `support`
- метка `small`/`medium`/`large` снята из процесса — вместо «Триггеров метки» в
  review.md подраздел «Когда звать глубокое ревью»; следом разобран урожай
  doc-consistency: девять фактов сведены к одному дому
This commit is contained in:
av
2026-09-02 09:55:28 +03:00
parent fc9a3b4066
commit 3bce73fc34
68 changed files with 178 additions and 327 deletions
+14 -15
View File
@@ -26,20 +26,19 @@ from pathlib import Path
OUT_DIR = Path("tmp/gate")
# Скрипты трёх плагинов av-dev. Каждый проверяет своё и ни один не тянет
# остальных: без своего шага дрейф соответствующего каталога перестаёт ловиться
# молча.
# docs.py раскладка docs/ против канона (av-dev-docs:canon)
# tasks.py — согласованность индексов каталога задач (av-dev-tasks:tasks)
# openspec.py — форма openspec/config.yaml (av-dev-code:openspec)
# Скрипты плагина av-dev. Каждый проверяет своё и ни один не тянет остальных:
# без своего шага дрейф соответствующего каталога перестаёт ловиться молча.
# docs.py — раскладка docs/ против канона (av-dev:canon)
# tasks.py — согласованность индексов каталога задач (av-dev:task-track)
# openspec.py — форма openspec/config.yaml (av-dev:code-openspec)
# Путь берётся из каталога маркетплейса (он без хеша версии, в отличие от
# cache/), переопределяется переменной: переустановка плагина не должна
# требовать правки гейта. Если скрипта нет — шаг краснеет, а не пропускается:
# молча пропущенная проверка даёт ложное ощущение проверенности.
MARKETPLACE = Path.home() / ".claude/plugins/marketplaces/av-dev-skills"
DOCS_PY_DEFAULT = MARKETPLACE / "av-dev-docs/skills/canon/scripts/docs.py"
TASKS_PY_DEFAULT = MARKETPLACE / "av-dev-tasks/skills/tasks/scripts/tasks.py"
OPENSPEC_PY_DEFAULT = MARKETPLACE / "av-dev-code/skills/openspec/scripts/openspec.py"
DOCS_PY_DEFAULT = MARKETPLACE / "av-dev/skills/canon/scripts/docs.py"
TASKS_PY_DEFAULT = MARKETPLACE / "av-dev/skills/task-track/scripts/tasks.py"
OPENSPEC_PY_DEFAULT = MARKETPLACE / "av-dev/skills/code-openspec/scripts/openspec.py"
OK, FAIL, WARN, SKIP = "OK", "FAIL", "WARN", "SKIP"
@@ -219,17 +218,17 @@ def main() -> int:
# а database.md нет» (отдельного шага er-schema поэтому больше нет).
# База диффа обязательна: без неё сверка миграций со схемой не гоняется.
plugin_step(
"canon", "DOCS_PY", DOCS_PY_DEFAULT, "av-dev-docs",
"canon", "DOCS_PY", DOCS_PY_DEFAULT, "av-dev",
["check", "--dir", ".", "--base", base],
"раскладка docs/ разошлась с каноном",
)
# --- Каталог задач ---
# Согласованность индексов с файлами items/: бездомная запись, строка без
# файла, порядок секций роадмапа, сырьё не в конце секции. docs.py этого не
# смотрит — каталог принадлежит другому плагину.
# Согласованность беклога с файлами items/: бездомная запись, строка без
# файла, стадия проекта, сырьё не в конце секции. docs.py этого не смотрит —
# каталог задач он не ведёт.
plugin_step(
"tasks", "TASKS_PY", TASKS_PY_DEFAULT, "av-dev-tasks",
"tasks", "TASKS_PY", TASKS_PY_DEFAULT, "av-dev",
["check", "--dir", "tasks"],
"индексы задач разошлись с items/",
)
@@ -239,7 +238,7 @@ def main() -> int:
# а работает как пустой. Ловит это только свой шаг: docs.py про config.yaml
# молчит с канона 10.
plugin_step(
"openspec", "OPENSPEC_PY", OPENSPEC_PY_DEFAULT, "av-dev-code",
"openspec", "OPENSPEC_PY", OPENSPEC_PY_DEFAULT, "av-dev",
["check", "--dir", "."],
"openspec/config.yaml разошёлся с канонической формой",
)