журнал решений: запись 51 про раскол плагинов
Три коммита раскола несут причины в теле, но дом у решения один. Записано то, чего в отдельных коммитах не видно: сцепка внутри одного владельца не выглядит сцепкой, пока владелец один, и обнаруживается не рассуждением, а попыткой поставить половину отдельно. Плюс правило разреза владения — по тому, кто инструментом пользуется, а не по тому, кто о нём подробнее написал. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -3207,3 +3207,43 @@ JJJ): у профиля обязан быть один правильный от
|
|||||||
одинаковых, и без помеченной копии они разъезжаются — тем вернее, что
|
одинаковых, и без помеченной копии они разъезжаются — тем вернее, что
|
||||||
каждый по отдельности выглядит осмысленным.
|
каждый по отдельности выглядит осмысленным.
|
||||||
|
|
||||||
|
|
||||||
|
## 51. av-dev-pm расколот: владение пошло по тому, что ставится порознь (2026-08-09)
|
||||||
|
|
||||||
|
**АЕАКЖ. Один плагин владел двумя вещами, и это мешало обеим.** `av-dev-pm` держал
|
||||||
|
документацию проекта и учёт работ. Пока владелец был один, сцепки выглядели
|
||||||
|
удобством: `docs.py` требовал `docs/tasks/` и звал внутрь `tasks.py`
|
||||||
|
подпроцессом, настройки задач лежали ключом в `docs/.pm.json`, язык проектных
|
||||||
|
текстов — внутри скилла `canon`. Каждая из трёх на расколе оказалась не
|
||||||
|
удобством, а утверждением, что половина принадлежит другой половине. Теперь
|
||||||
|
плагина два, `av-dev-docs` и `av-dev-tasks`, и каждый ставится сам по себе.
|
||||||
|
|
||||||
|
**АЕАКЗ. Самодостаточность держится копией, а не ссылкой.** Ссылка в дерево
|
||||||
|
соседнего плагина работает ровно до того момента, когда сосед не установлен, — а
|
||||||
|
это и есть тот случай, ради которого раскол делался. Поэтому все относительные
|
||||||
|
ссылки, пересекшие границу, сняты: вместо них имя скилла через пространство имён
|
||||||
|
и оговорка, что вызов может не разрешиться. То, что нужно обоим **дословно**,
|
||||||
|
стало общим домом в `shared/`: язык проектных текстов и словарь «Сопровождение и
|
||||||
|
эксплуатация». Второй выбран не по теме, а по числу владельцев — его делят
|
||||||
|
роадмап, `architecture.md` и тема ревью `operations`, то есть три плагина, и ни
|
||||||
|
один им не владеет. Три перечня «чем держат проект» уже разъезжались молча.
|
||||||
|
|
||||||
|
**АЕАКИ. OpenSpec отдан тому, кто им работает, а не тому, кто о нём написал.**
|
||||||
|
Версия 7 канона объявила `openspec/` своим слотом, и разрез вышел не по владению:
|
||||||
|
без каталога не запускается конвейер, а не канон. Заведение и форма файла уехали
|
||||||
|
в скилл `av-dev-pipeline:openspec`, отсутствие каталога стало для `docs.py`
|
||||||
|
неприменимостью вместо отказа. **Остаток назван, а не замолчан:** проверка формы и
|
||||||
|
сторож версии пока остались в скрипте канона, потому что своего скрипта у
|
||||||
|
конвейера нет ни одного, — то есть у файла сейчас два плагина, один заводит,
|
||||||
|
другой проверяет. Это записано и в журнале версий как временное состояние.
|
||||||
|
|
||||||
|
### Что из этого следует
|
||||||
|
|
||||||
|
175. **Сцепка внутри одного владельца не видна, пока владелец один.** Она
|
||||||
|
выглядит удобством ровно до раскола и обнаруживается не рассуждением, а
|
||||||
|
попыткой поставить половину отдельно. Отсюда и порядок работ: сперва
|
||||||
|
разнести, потом чинить то, что перестало сходиться.
|
||||||
|
176. **Разрез владения идёт по тому, кто инструментом пользуется, а не по тому,
|
||||||
|
кто о нём написал.** Канон описывал OpenSpec подробнее всех и потому казался
|
||||||
|
его владельцем; работает по нему конвейер, и слот принадлежит конвейеру.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user