From 0627199a1ab1c01f3a6976b10007b6f6ea0e2589 Mon Sep 17 00:00:00 2001 From: Anton Vakhrushev Date: Thu, 13 Aug 2026 12:53:27 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B6=D1=83=D1=80=D0=BD=D0=B0=D0=BB=20=D1=80?= =?UTF-8?q?=D0=B5=D1=88=D0=B5=D0=BD=D0=B8=D0=B9:=20=D1=82=D0=B5=D0=BC?= =?UTF-8?q?=D0=B0=2066=20=E2=80=94=20=D1=81=D0=BA=D0=B8=D0=BB=D0=BB=20?= =?UTF-8?q?=D1=84=D0=BE=D1=80=D0=BC=D1=8B=20=D0=B2=D1=8B=D1=88=D0=B5=D0=BB?= =?UTF-8?q?=20=D0=B8=D0=B7=20=D1=81=D0=B5=D0=BC=D0=B5=D0=B9=D1=81=D1=82?= =?UTF-8?q?=D0=B2=D0=B0=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD=D1=82?= =?UTF-8?q?=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Р235: префикс называет материал, а `canon` занят формой, общей у всех частей проекта; версия стала общей ещё на слиянии, и с того дня `doc-` спорил с механикой; - Р236: переименование поехало записью журнала версий, хотя в проекте ничего не переехало — сломались бы путь в гейте и имя вызова; - С226 и С227: префикс — проверяемое утверждение о владении материалом; переименование скилла есть изменение раскладки, если проект держит его адрес у себя. --- decisions/66-canon-without-prefix.md | 41 ++++++++++++++++++++++++++++ decisions/README.md | 5 ++-- 2 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 decisions/66-canon-without-prefix.md diff --git a/decisions/66-canon-without-prefix.md b/decisions/66-canon-without-prefix.md new file mode 100644 index 0000000..4edcca5 --- /dev/null +++ b/decisions/66-canon-without-prefix.md @@ -0,0 +1,41 @@ +# 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` такие адреса +держат, поэтому переименование получает запись журнала версий наравне с переездом +файлов. diff --git a/decisions/README.md b/decisions/README.md index 10bead1..cdb7a9f 100644 --- a/decisions/README.md +++ b/decisions/README.md @@ -6,8 +6,8 @@ Три сквозные нумерации, и они не пересекаются: - **Т** — требование: вход, который обязан быть удовлетворён. Живут здесь, ниже. -- **Р** — решение: что согласовано и почему. Р1–Р234 по темам в порядке журнала. -- **С** — следствие: что из решения вытекает. С1–С225, тоже сквозным счётом. +- **Р** — решение: что согласовано и почему. Р1–Р236 по темам в порядке журнала. +- **С** — следствие: что из решения вытекает. С1–С227, тоже сквозным счётом. Номер закреплён за записью навсегда: журнал описывает прошлые состояния и задним числом не переписывается. Отсюда и разнобой формы — ранние темы держат решения @@ -117,3 +117,4 @@ | 63 | [Обслуживание — третий сценарий: у цикла SDD там нет входа](63-maintenance-third-scenario.md) | 2026-08-13 | | 64 | [Три плагина слились в один: раскол платили, а не пользовались](64-three-plugins-merged.md) | 2026-08-13 | | 65 | [Перечень осей получил дом; две оси жили без владельца](65-axes-registry-home.md) | 2026-08-13 | +| 66 | [`doc-canon` → `canon`: скилл формы вышел из семейства документов](66-canon-without-prefix.md) | 2026-08-13 |