скиллы: doc-canon стал canon, версия раскладки поднята до 2

- каталог скилла и все вызовы переименованы: префикс `doc-` называл материал,
  а скилл занят формой — раскладкой всех частей проекта и общим повышением
  версии, включая каталог задач;
- README перестроен: `canon` вынесен из семейства документов отдельным блоком
  и отдельным узлом графа, правило префиксов переформулировано, у документов
  уточнено владение — содержимым, а не раскладкой;
- заведена запись 2 журнала версий: в проекте ничего не переехало, но путь к
  `docs.py` и имя вызова живут в гейте и в `CLAUDE.md` проекта и сломаются
  молча;
- прежние адреса в записи 1 и в журнале решений оставлены как есть: журнал
  описывает состояния, которые были, и задним числом не переписывается.
This commit is contained in:
av
2026-08-13 12:53:12 +03:00
parent 3529cd8425
commit dff05ad097
34 changed files with 149 additions and 102 deletions
+5 -5
View File
@@ -11,7 +11,7 @@
называется ключом `[tasks] dir`. Каталог принадлежит этому скиллу, а не канону
документов: учёт работ ведут и в проекте, который к канону не приведён. Имена
частей и **версия раскладки** живут в `.av-dev.toml` в корне; журнал версий —
references/changelog.md скилла doc-canon.
references/changelog.md скилла canon.
tasks/
items/ задачи и цели файлами, <slug>.md
@@ -503,7 +503,7 @@ def _validate_config(data: dict, path: Path) -> dict:
if "plan" in unknown:
raise Env(f"{path}: ключ «plan» переименован в «roadmap»,"
f" а PLAN.md — в ROADMAP.md. Повысь проект скиллом"
f" av-dev:doc-canon (upgrade), а не правь ключ в одиночку:"
f" av-dev:canon (upgrade), а не правь ключ в одиночку:"
f" файл и ссылки на него переезжают вместе с ним")
if unknown:
known = sorted({*DEFAULTS, DIR_KEY})
@@ -582,10 +582,10 @@ def version_problems(lay: Layout) -> list[str]:
if legacy:
return [f"нет {path}, а прежняя раскладка на месте"
f" ({', '.join(legacy)}): перенеси настройки и удали старые"
f" файлы операцией upgrade скилла av-dev:doc-canon"]
f" файлы операцией upgrade скилла av-dev:canon"]
return [f"нет {path} — версия раскладки не объявлена."
f" Заведи файл с «{VERSION_KEY} = {LAYOUT_VERSION}» (журнал"
f" версий — references/changelog.md скилла av-dev:doc-canon)"]
f" версий — references/changelog.md скилла av-dev:canon)"]
# Что число целое, уже проверил общий читатель — иначе сюда не дошли бы
# вовсе (код 3). Здесь `isinstance` значит ровно «ключ есть».
got = conf.version(lay.full)
@@ -595,7 +595,7 @@ def version_problems(lay: Layout) -> list[str]:
elif got < LAYOUT_VERSION:
out.append(f"проект приведён к раскладке версии {got}, текущая —"
f" {LAYOUT_VERSION}: нужно повышение по журналу"
f" (скилл av-dev:doc-canon, операция upgrade)")
f" (скилл av-dev:canon, операция upgrade)")
elif got > LAYOUT_VERSION:
out.append(f"проект приведён к раскладке версии {got}, а скрипт знает"
f" {LAYOUT_VERSION}: устарел плагин, обнови маркетплейс")