Files
dev-skills/av-dev/shared/absence.md
T
av 441469d78d вычитка ревью: пережитки трёх плагинов и язык слияния
Восемнадцать веток «плагина нет» описывали недостижимое: скиллы и агенты теперь
в одном плагине и разрешаются всегда. Где предмет всё же может отсутствовать —
ветка переписана на след в проекте (нет docs/, нет каталога задач, нет
openspec/); где отсутствовать нечему — снята. Туда же анонсы, обещавшие ветку,
которой в разделе больше нет.

Правило копий и его применение разъезжались в одном коммите: правило называло
два законных случая, а absence.md разослан семью копиями по SKILL.md. Назван
третий случай, и разрез проверяемый — файл, который модель получает целиком,
против файла, за которым она идёт отдельным чтением. Заодно сняты объявления
копий там, где копию сменила ссылка, и довод у карты домов в doc-consistency:
он ссылался на отсутствие плагина, хотя устав едет вместе с плагином.

Описания скиллов во фронтматтерах звали снятые короткие имена — по ним скилл не
находится. task-track перестал обещать повышение: версию двигает doc-canon.

Язык: сняты кросс-вызов, опцион и деградация, конверсия и «читатель» в
config.py, charter'ы против уставов, замер против подсчёта, страдательный залог
в журнале. Строка «настройки av-dev» в таблице отсутствия — слово «раскладка»
называло и целое, и его часть.

Мелкое: тема 52 в README была 64, транслит в task-wording машина не проверяет,
мёртвая ветка REQUIRED в addresses.py, ссылки на язык в закрытом журнале.
2026-08-13 11:03:11 +03:00

5.0 KiB
Raw Blame History

Чего может не быть

Это дом. Правило нужно почти каждому скиллу: любой приходит в проект, где может не оказаться ни документов канона, ни каталога задач, ни openspec/, а рядом может не стоять внешний плагин, которого он ждёт. Ни один скилл правилом не владеет, поэтому дом стоит в shared/, а скиллы везут копии, помеченные разметкой copies.py.

Правится здесь. Копия, поправленная у себя, — расхождение, а не правка.

До слияния правило называлось «граница плагинов» и говорило о соседе: av-dev-docs, av-dev-tasks и av-dev-code ставились порознь, и каждый обязан был пережить отсутствие двоих. Плагин теперь один, а правило осталось, и не по инерции: отсутствовала всё это время не установка, а раскладка проекта, и узнавалась она следом на диске, а не перечнем плагинов. Перечень того, чего может не быть, стал короче на три имени — механика не изменилась вовсе.

Правило завели по подсчёту: к первому расколу оно стояло в пяти местах в пяти редакциях, и три из пяти молчали о том, ради чего написано, — что делать, когда недостающее нашлось.

Скилл не вправе считать раскладку проекта полной. Части заводятся порознь и живут порознь; каждая узнаётся своим следом:

Чего нет Как видно Чего теперь не делает никто
настройки av-dev нет .av-dev.toml в корне проект под процесс не заводился; версии нет, настроек нет
документы канона нет docs/ проектную конкретику брать неоткуда — темы, инварианты, прецеденты
учёт работ нет каталога задач запись остаётся владельцу: назови её текстом в докладе
источник требований нет openspec/config.yaml цикл SDD не запускается: спеки не с чем сверять

Свой скилл зовётся полным именемav-dev:doc-canon, av-dev:task-track, av-dev:code-review. Короткое имя может разрешиться в устаревшую проектную копию из .claude/skills/, и подмены не будет видно ни в докладе, ни в поведении.

Внешний плагин может не стоять. Их два: opsx:* — цикл SDD, и av-dev-git:commit — сообщения коммитов. Путь в дерево чужого плагина не пишется никогда: $CLAUDE_PLUGIN_ROOT ведёт только в своё дерево, а вычисленный от него путь к соседу либо не откроется, либо откроет чужую установку. Нужен чужой справочник — зови владеющий им скилл, он прочитает его сам.

Отсутствие — исход, а не поломка. Назови строкой доклада, чего теперь не делает никто, и продолжай работу. Молчать нельзя: пропуск неотличим от сделанного. Выдумывать обходной путь нельзя тоже.

Присутствие узнаётся следом в проекте, а не объявлением. Перечня того, что здесь заведено, проект не ведёт — он разошёлся бы с действительностью молча.

Что в дом не идёт: чем именно оборачивается нехватка у тебя. «Нет каталога задач — учёт остаётся владельцу» знает конвейер; «нет openspec/docs.py о каталоге молчит» знает канон. Правило общее, последствие местное, и держать последствия здесь значило бы завести дом, который знает про всех своих потребителей.