правило обращения к соседнему плагину получило дом
Стояло в пяти местах в пяти редакциях: два разных довода, ни в одном месте оба, и три места из пяти молчали о том, что делать при неразрешившемся вызове. Плюс невысказанный инвариант: $CLAUDE_PLUGIN_ROOT ведёт только в свой плагин. Дом — shared/plugin-boundary.md, блок «граница-плагинов», семь помеченных копий. В дом вошло правило, последствия остались на местах вызова: «нет плагина задач — учёт остаётся владельцу» знает только конвейер. Оглавление адресов в CLAUDE.md проекта отклонено — второй дом раскладки, и протухший адрес в нём выходит правдоподобной строкой честной деградации. Сверка адресов уходит машине, записана в TODO разделом 5.
This commit is contained in:
@@ -85,11 +85,11 @@ flowchart TB
|
||||
|
||||
Зависимости **односторонние: `av-dev-pipeline` знает про `av-dev-docs` и
|
||||
`av-dev-tasks`, обратно — нет.** Между собой эти двое тоже не связаны жёстко:
|
||||
каждый работает без другого и зовёт соседа **через пространство имён**, а не по
|
||||
пути в чужое дерево. Не разрешился вызов — плагина нет, и это исход, который
|
||||
проговаривается строкой, а не поломка. То, что нужно обоим дословно — язык
|
||||
проектных текстов и словарь сопровождения, — живёт домом в `shared/` и уезжает в
|
||||
каждый плагин помеченной копией.
|
||||
каждый работает без другого. Как именно зовут соседа и что делают, когда вызов не
|
||||
разрешился, — `shared/plugin-boundary.md`: правило нужно семи скиллам в трёх
|
||||
плагинах, и ни один им не владеет. То, что нужно нескольким дословно — граница
|
||||
плагинов, язык проектных текстов, словарь сопровождения, — живёт домом в
|
||||
`shared/` и уезжает в каждый плагин помеченной копией.
|
||||
|
||||
## Канон документов проекта
|
||||
|
||||
@@ -337,10 +337,17 @@ uv run python scripts/copies.py # 0 сошлось, 1 расхождение
|
||||
**Дом правила, общего для нескольких плагинов, лежит в `shared/` и ни одному из
|
||||
них не принадлежит.** Так живёт язык проектных текстов: он одинаково нужен
|
||||
документам канона и задачам, и хранить его внутри одного плагина значило бы
|
||||
отдать общее правило во владение половине. Плагин везёт копию и потому остаётся
|
||||
отдать общее правило во владение половине. Так же живёт граница плагинов —
|
||||
правило обращения к соседу. Плагин везёт копию и потому остаётся
|
||||
самодостаточным — `shared/` нужен этому репозиторию, а не установленному
|
||||
плагину.
|
||||
|
||||
**Дом ставится в `shared/` только тогда, когда владельца нет.** У адресов
|
||||
владелец есть: раскладку `docs/` держит канон, каталог задач — плагин задач, и
|
||||
переносить их наружу значило бы отобрать у владельца его же предмет. Общее без
|
||||
владельца едет копией из `shared/`; чужое с владельцем остаётся дома, а
|
||||
потребитель на него ссылается.
|
||||
|
||||
Скрипт ловит четыре вещи: копия разошлась с домом (с диффом), копия указывает не
|
||||
на тот файл, дом остался без копий, разметка сломана. Чего он **не** ловит —
|
||||
копию, которую забыли пометить: помечать — по-прежнему решение человека.
|
||||
|
||||
Reference in New Issue
Block a user