скиллы: doc-canon стал canon, версия раскладки поднята до 2
- каталог скилла и все вызовы переименованы: префикс `doc-` называл материал, а скилл занят формой — раскладкой всех частей проекта и общим повышением версии, включая каталог задач; - README перестроен: `canon` вынесен из семейства документов отдельным блоком и отдельным узлом графа, правило префиксов переформулировано, у документов уточнено владение — содержимым, а не раскладкой; - заведена запись 2 журнала версий: в проекте ничего не переехало, но путь к `docs.py` и имя вызова живут в гейте и в `CLAUDE.md` проекта и сломаются молча; - прежние адреса в записи 1 и в журнале решений оставлены как есть: журнал описывает состояния, которые были, и задним числом не переписывается.
This commit is contained in:
@@ -13,25 +13,33 @@
|
||||
установку, она не понадобилась ни разу, и плагины слились —
|
||||
[тема 64](decisions/64-three-plugins-merged.md) журнала решений.
|
||||
|
||||
Имя **скилла** несёт префикс прежнего плагина: `doc-`, `task-`, `code-`. Вызов
|
||||
выходит вида `/av-dev:<скилл>`.
|
||||
Имя **скилла** несёт префикс материала, с которым он работает: `doc-`, `task-`,
|
||||
`code-`. Вызов выходит вида `/av-dev:<скилл>`. Префикса нет ровно у одного —
|
||||
`canon`: он работает не с материалом, а с **формой**, общей у всех частей
|
||||
проекта.
|
||||
|
||||
### av-dev — документы, учёт, работа
|
||||
### av-dev — форма, документы, учёт, работа
|
||||
|
||||
**Документы проекта.** Владеют `docs/` и `CLAUDE.md`.
|
||||
**Форма раскладки.** Одна на весь проект, и держит её один скилл.
|
||||
|
||||
- `canon` — раскладка проекта и её обновление: `check` / `adopt` / `upgrade`,
|
||||
плюс скрипт `docs.py`. `check` сверяет раскладку документов, `adopt` заводит
|
||||
все части сразу и зовёт владельцев каталога задач и `openspec/`, `upgrade`
|
||||
повышает **всю** раскладку по журналу версий — общему, и на документы, и на
|
||||
каталог задач. Содержимого он не ведёт: это соседние скиллы.
|
||||
|
||||
**Документы проекта.** Владеют **содержимым** `docs/` и `CLAUDE.md`; раскладка —
|
||||
у `canon`.
|
||||
|
||||
- `doc-init` — новый проект: интервью по свободному описанию замысла →
|
||||
первичная документация;
|
||||
- `doc-canon` — привести проект к канону документов: `check` / `adopt` /
|
||||
`upgrade`, плюс скрипт `docs.py`. Он же ведёт журнал версий раскладки —
|
||||
общий, и на документы, и на каталог задач;
|
||||
- `doc-healthcheck` — здоровье документации **судом, а не машиной**: не
|
||||
разошлись ли документы между собой и с кодом. Зовёт двух агентов на весь канон
|
||||
разом — `doc-consistency` (документы между собой и с openspec) и
|
||||
`doc-code-drift` (факты против кода) — и разбирает урожай порциями. Дорого,
|
||||
поэтому не на каждой задаче. Язык документов вычитывает отдельный агент
|
||||
`doc-wording`, и зовут его не отсюда, а те, кто только что писал текст:
|
||||
`doc-sync`, `doc-init` и `doc-canon`;
|
||||
`doc-sync`, `doc-init` и `canon`;
|
||||
- `doc-sync` — содержимое канона по ходу разработки: ADR из архивного
|
||||
`design.md`, промоут конвенций, запись в разведку и журнал ревью, чистка
|
||||
архитектуры.
|
||||
@@ -112,10 +120,10 @@ flowchart TB
|
||||
tp["code-resolve<br/>3 сценария: разведка,<br/>решение, обслуживание"] --> rp["code-review<br/>10 агентов-проходов"]
|
||||
osp["code-openspec<br/>заводит и проверяет openspec/"]
|
||||
end
|
||||
subgraph docsp["документы, владеют docs/"]
|
||||
canon["canon<br/>форма раскладки всего проекта"]
|
||||
subgraph docsp["документы, владеют содержимым docs/"]
|
||||
direction LR
|
||||
init["doc-init"]
|
||||
canon["doc-canon"]
|
||||
docs["doc-sync"]
|
||||
hc["doc-healthcheck"]
|
||||
end
|
||||
@@ -156,14 +164,14 @@ flowchart TB
|
||||
где дом каждого и чего он **не** решает. Скиллы читают эти дома по ссылке, а
|
||||
дословной копией оттуда уезжает лишь то, что обязано лежать внутри промпта.
|
||||
|
||||
## Канон документов проекта
|
||||
## Канон раскладки проекта
|
||||
|
||||
Все проекты приводятся к одной раскладке — так проще ориентироваться, когда
|
||||
проектов много, и рядом OpenSpec тоже держит строгую структуру. `CLAUDE.md` плюс
|
||||
`docs/` (паспорт, архитектура, база, безопасность, конвенции, разведка, ADR,
|
||||
ревью, задачи) и `openspec/` — **раскладка целиком, роли документов и правило
|
||||
единственного дома живут одним домом**:
|
||||
[canon.md](av-dev/skills/doc-canon/references/canon.md). Здесь она не
|
||||
[canon.md](av-dev/skills/canon/references/canon.md). Здесь она не
|
||||
пересказывается: копия перечня путей уже расходилась с домом, и как раз в
|
||||
обязательных — в ней не хватало путей, чьё отсутствие `docs.py check` считает
|
||||
нарушением.
|
||||
@@ -181,9 +189,9 @@ flowchart TB
|
||||
«тема → её дом → что оттуда берётся» —
|
||||
[project-facts.md](av-dev/skills/code-review/references/project-facts.md).
|
||||
|
||||
Прийти в старый проект и перевести его на канон — `/av-dev:doc-canon`.
|
||||
Прийти в старый проект и перевести его на канон — `/av-dev:canon`.
|
||||
Раскладка версионируется, и проекты повышаются по [журналу
|
||||
версий](av-dev/skills/doc-canon/references/changelog.md).
|
||||
версий](av-dev/skills/canon/references/changelog.md).
|
||||
|
||||
**Версия одна, и живёт она в `.av-dev.toml` в корне репозитория** — вместе с
|
||||
настройками: `[docs] migrations` и секция `[tasks]`, которая говорит, где лежит
|
||||
@@ -426,7 +434,7 @@ python3 scripts/copies.py # 0 сошлось, 1 расхождение, 2 р
|
||||
когда он решает; и в скелетах, уезжающих в репозиторий проекта.
|
||||
|
||||
**Дом ставится в `shared/` только тогда, когда владельца нет.** У адресов
|
||||
владелец есть: раскладку `docs/` держит `doc-canon`, каталог задач —
|
||||
владелец есть: раскладку `docs/` держит `canon`, каталог задач —
|
||||
`task-track`, и переносить их наружу значило бы отобрать у владельца его же
|
||||
предмет. Общее без владельца живёт в `shared/`; чужое с владельцем остаётся
|
||||
дома, а потребитель на него ссылается.
|
||||
|
||||
Reference in New Issue
Block a user