Files
dev-skills/decisions/66-canon-without-prefix.md
T
av 0627199a1a журнал решений: тема 66 — скилл формы вышел из семейства документов
- Р235: префикс называет материал, а `canon` занят формой, общей у всех частей
  проекта; версия стала общей ещё на слиянии, и с того дня `doc-` спорил с
  механикой;
- Р236: переименование поехало записью журнала версий, хотя в проекте ничего
  не переехало — сломались бы путь в гейте и имя вызова;
- С226 и С227: префикс — проверяемое утверждение о владении материалом;
  переименование скилла есть изменение раскладки, если проект держит его адрес
  у себя.
2026-08-13 12:53:27 +03:00

42 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 66. `doc-canon` → `canon`: скилл формы вышел из семейства документов (2026-08-13)
Префиксы `doc-`, `task-`, `code-` пришли со слиянием плагинов ([тема
64](64-three-plugins-merged.md)) и называют **материал**, которым скилл занят, —
тем же признаком, каким прежде звались плагины ([тема
56](56-plugin-and-skill-renames.md)). Для восьми скиллов признак верен. Для
девятого он врал.
**Р235. Скилл занят не материалом, а формой, и формы у проекта одна на все
части.** `check` сверяет раскладку документов, `adopt` заводит все части сразу и
зовёт владельцев каталога задач и `openspec/`, `upgrade` повышает **всю**
раскладку одним журналом версий — и документы, и каталог задач. Версия стала
общей ещё на слиянии ([Р231](64-three-plugins-merged.md)), и с этого дня префикс
`doc-` спорил с механикой, которую сам же скилл и исполняет. Имя осталось без
префикса: отсутствие префикса здесь — тоже утверждение, и читается оно как «этот
поперёк остальных».
**Р236. Переименование поехало записью журнала версий, хотя в проекте ничего не
переехало.** Ни один файл проекта не сменил дом — сменились путь к скрипту
(`skills/doc-canon/scripts/docs.py`) и имя вызова (`av-dev:doc-canon`), а оба
живут **в проекте**: первый строкой гейта, второй в `CLAUDE.md`, в `Taskfile` и в
записях задач. Механизма догнать их у плагина нет, и без записи проект узнал бы о
переименовании покрасневшим гейтом или неразрешившимся вызовом.
Запись 1 при этом не переписана: проект, ещё не прошедший её, переименует каталог
дважды подряд — в `doc-canon` и обратно в `canon`. Так работает журнал
([С189](56-plugin-and-skill-renames.md)): каждая запись исполняется на состоянии,
которое оставила предыдущая.
## Что из этого следует
**С226. Префикс имени — утверждение о владении материалом, и оно проверяемо.**
Скилл, работающий поперёк материалов, обязан остаться без префикса: имя,
приписавшее его к одному семейству, читается как обещание, что соседние семейства
его не касаются, — а его вызывают ровно затем, чтобы касались все.
**С227. Переименование скилла — изменение раскладки проекта, если проект держит
его путь или имя у себя.** Разрез идёт не по тому, тронуты ли файлы проекта, а по
тому, есть ли в проекте адрес, который сломается. Гейт и `CLAUDE.md` такие адреса
держат, поэтому переименование получает запись журнала версий наравне с переездом
файлов.