Files
dev-skills/av-dev/shared/absence.md
T
av 6b162c421d граница: правило стало про раскладку проекта, а не про соседний плагин
Дом shared/plugin-boundary.md переехал в shared/absence.md: отсутствовала всё
это время не установка плагина, а часть раскладки проекта, и узнавалась она
следом на диске. Перечень внешнего сократился до двух — opsx и av-dev-git.
Ветки «плагина нет» переписаны на «этой части в проекте нет»; там, где ветка
существовала только ради неразрешимого пути в чужое дерево, она снята вовсе.

Внутриплагинные копии языка и словаря сопровождения сняты: два справочника по
213 строк и один по 34 заменены ссылкой на общий дом. Копии остались там, где
текст обязан лежать внутри промпта, — в уставах вычитки. Заодно починены пути
$CLAUDE_PLUGIN_ROOT и относительные ссылки, разъехавшиеся с новыми именами
каталогов.
2026-08-13 10:18:04 +03:00

60 lines
5.0 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.
# Чего может не быть
**Это дом.** Правило нужно почти каждому скиллу: любой приходит в проект, где
может не оказаться ни документов канона, ни каталога задач, ни `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`
о каталоге молчит» знает канон. Правило общее, последствие местное, и держать
последствия здесь значило бы завести дом, который знает про всех своих
потребителей.