Files
dev-skills/TODO.md
T
avandClaude Opus 5 ca71838037 агент вычитки переименован в doc-wording и расширен на все документы
Имя пришло из задач, но правила языка относятся ко всем проектным
текстам: документам канона, решениям ADR, запискам разведки. Форма
записи — вторая половина устава — верна только для файлов
docs/tasks/items/, и теперь это сказано заголовком раздела, а не
подразумевается. Вход расширен: список файлов или каталог, вперемешку
тоже.

Обкатка на тестовом наборе из 13 записей показала дыру в пороге
вмешательства. Агент нашёл, что раздел «Затрагивает» в нескольких
записях называет не только границу, но и её будущее состояние, — и
промолчал, объяснив это принятым стилем каталога. Записи писал один
агент за один заход: систематичность здесь значит ровно обратное —
правило не применялось вовсе. В устав добавлено: одна и та же ошибка в
пяти файлах даёт одну находку на весь набор с перечнем, но не даёт права
промолчать. Принятым стилем считается только то, что назвал зовущий или
что записано в конвенциях проекта.

Единственная находка агента попала в слово из собственного скилла. «Цель
про станок, а не про игру» — метафора, перенесённая в тестовую запись из
tasks/SKILL.md. Проверка показала худшее: «станок» в каноне уже занят,
«общий станок» это красная проверка, врывающаяся в замороженный спринт
(canon.md, session/SKILL.md). Одно слово в двух смыслах, тот же класс,
что и «окружение» в теме 19. Заменено на «работа над инструментом и
процессом» — как названа и секция роадмапа.

DECISIONS тема 22 (ППП, РРР, следствия 89–90).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-04 19:38:50 +03:00

184 lines
13 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.
# Работы по итогам разбора
Порядок и обоснование — [DECISIONS.md](DECISIONS.md), тема 8. Номера в скобках —
следствия оттуда.
Замер (шаг 3) — **единственный шаг, который нельзя переставить**: он блокирует
переезд jellybit. Всё остальное можно тасовать.
## 0. Предусловие
- [x] `git push``092d07c..88c5d97`, 17 коммитов ушли на origin (37)
- [x] `claude plugin marketplace update av-dev-skills` — клон встал на `88c5d97`
и видит `av-dev-pm` и `av-dev-pipeline`
## 1. Репозиторий плагинов
### 1.1 Переименование
- [x] `av-dev-tasks``av-dev-pm`: каталог, `plugin.json`, `marketplace.json` (18)
- [x] пространство имён во всех текстах: `av-dev-tasks:session`
`av-dev-pm:session`, включая ссылку из `task-pipeline` (18)
### 1.2 Канон — единственный дом определения
- [x] `av-dev-pm/skills/canon/references/canon.md` — раскладка, роли документов,
правило единственного дома. Читают `init`, `canon`, `docs` (AA)
- [x] `av-dev-pm/skills/canon/references/changelog.md` — журнал версий канона,
версия 1 (26)
### 1.3 Правки существующих скиллов
- [x] `tasks`: убрать слот 6 «Команда учёта задач» (33)
- [x] `tasks`: путь каталога жёсткий `docs/tasks`, убрать цепочку разрешения (F)
- [x] `tasks`: `.tasks.json``docs/.pm.json`, там же версия канона и путь
миграций (23, 30)
- [x] `tasks`: убрать слоты 3 «куда переезжает суть» и 5 «оракулы» — отвечает
канон и семантика гейта (тема 4)
- [x] `session`: убрать слот 7 и слот 4 «где живёт разбор процесса» (33, K)
- [x] `session`: переписать «Стимулы, которые процесс создаёт» — снятая граница
выбила опору у трёх защит (19)
### 1.4 Новые скиллы
- [x] `init` — интервью по брифу → канон нового проекта (R)
- [x] `canon``check` / `adopt` / `upgrade`; поглощает скилл `adopt` (R, 21, 24)
- [x] `docs` — содержимое канона: ADR из архивного `design.md`, промоут
конвенций, запись в `research/` и `review.md`, чистка `architecture.md` (X)
- [x] `docs.py` — раскладка, лишние файлы, битые ссылки, версия, плейсхолдеры,
маркеры долга; сверки миграции ↔ `database.md` и capability ↔
`architecture.md` (T, 31)
### 1.5 av-dev-pipeline
- [x] удалить скилл `project-brief` и `references/{project-brief,brief-template}.md` (13)
- [x] снять ветки деградации OpenSpec в трёх местах: `task-pipeline`,
`review-pipeline`, `task-batch` (1)
- [x] девять charter'ов: разделы брифа → пути канона; `ops`/`adversary`/`reimpl`
обязаны сшивать `research/` и `database.md` (14, 15)
- [x] `review-pipeline`: убрать бриф, поразрядная деградация по документам (16)
- [x] `task-pipeline` шаг 9 → построчный доклад по документам канона (28)
- [x] `task-pipeline`/`task-batch`: закрытие задачи вызовом скилла
`av-dev-pm:tasks`, слот убрать (32, 33)
- [x] `promote.md` шаг 3: перечень механизированного → `conventions/README.md` (29)
- [x] описание плагина: «требует OpenSpec» (2)
### 1.6 Прочее
- [x] `av-dev-backlog` — пометить устаревшим, переписать описание, чтобы не
ловило триггер (Q)
- [x] `README.md` маркетплейса — три плагина, канон, установка
- [x] `HISTORY.md` — сжать `AGENTIC-TASKS.md` до истории решений (CC)
- [x] `REMAINING.md` пересобрать: пункт 2 отменён, четыре вопроса закрыты,
калибровка стала обязательной (38)
### 1.7 Линтеры скриптов (тема 9)
- [x] `pyproject.toml`: ruff + pyrefly через `uv`, версии прибиты (DD, FF)
- [x] запрет внешних зависимостей двумя способами: `banned-api` + пустое
окружение pyrefly (EE)
- [x] `RUF001``RUF003` выключены, `av-dev-backlog` исключён (GG, HH)
- [x] починены 27 находок ruff и 14 pyrefly; `os` из `tasks.py` ушёл (40, 41)
- [x] раздел «Проверка скриптов» в `README.md`
### 1.8 Ревью двумя проходами (тема 10)
- [x] `reopen` берёт текст из `HEAD`, когда коммита удаления ещё нет (JJ)
- [x] шаг 11 коммитит учёт вторым коммитом; батч проверяет чистоту дерева (JJ)
- [x] фиктивный ключ `tasks.sections` убран из четырёх документов (KK)
- [x] `init` пишет конфиг в `docs/.pm.json`; `looks_like_tasks` его читает
- [x] урожай спринта заводится до `sprint close`, слаг — из его отчёта
- [x] ответ на вопрос опустошает раздел «Вопросы» — во всех трёх местах
- [x] путь отчёта триажа переживает архивацию (5 мест)
- [x] `review-specs` получил режим 3 — стык после слияния
- [x] остальные 12 находок: `sprint.md`, «9а», перечень проектных копий,
параллельность в батче, триаж в финальной сверке, триггеры профиля, 8–12
### 1.9 Ревью зависимостей между плагинами (тема 11)
- [x] опоры приёмки названы абстрактно, деградация без конвейера объявлена (MM)
- [x] ветка деградации шага 9 ходит в свой `project-facts.md` (NN)
- [x] `docs` даёт ветку «конвейера нет» для журнала и промоута
- [x] форма журнала дефектов сведена к дому, копия помечена в `changelog.md`
- [x] `specs` вернулся в читатели `docs/research/`; дом списка назначен
- [x] пайплайн не называет `items/` и `SPRINT.md` — их знает `av-dev-pm`
- [x] манифесты объявили `av-dev-pm` опциональным для конвейера (49)
### 1.10 Механическая проверка копий (тема 12)
- [x] `scripts/copies.py`: маркеры дома и копии, побайтовая сверка (OO)
- [x] строгий id, повторяемый в закрывающем маркере (PP)
- [x] помечены два контракта; «когда заводить ADR» сведён к дословному (50)
- [x] раздел «Проверка копий правил» в `README.md`, правило — в обоих домах
## 2. healthlog — первая боевая проверка
- [ ] `canon adopt`; `docs/backlog/``docs/tasks/`
- [ ] `architecture.md` 1662 строки → обзор, остаток маркерами (W)
- [ ] после выноса поведения — замерить остаток `architecture.md` и решить по
каталожной форме: жмёт → канон версии **4** для `architecture.md` и
`review.md`, точка входа `README.md` (тема 16, GGG, 65; версию 3 занял
роадмап с родом работы, тема 17, 68)
- [ ] завести `security.md` с периметром первой строкой (J)
- [ ] `review-journal.md``review.md` + настройка конвейера (K, L)
- [ ] `conventions.md``conventions/`, `local-research.md``research/` (G)
- [ ] `plan.md``docs/tasks/ROADMAP.md` (E)
- [ ] завести `docs/adr/`
- [ ] `CLAUDE.md`: severity инвариантов, семантика гейта, убрать раздел
«Процесс» (M, N)
- [ ] `docs.py check` в `task gate` (V)
- [ ] почистить `openspec/config.yaml` (C)
- [ ] удалить проектные копии: `.claude/skills/healthlog-{task,review}-pipeline`
и девять `.claude/agents/healthlog-review-*.md` — они прошлого поколения и
после переезда указывают на `docs/conventions.md`, `docs/local-research.md`,
`docs/review-journal.md`, которых уже не будет
## 3. Калибровка — блокирует шаг 5
- [ ] замер на четырёх находках healthlog: скелет из `null`, откат бинаря,
канонизация в транзакции, `-1 >= -1` (1 из REMAINING, 14)
## 4. Обкатка
- [ ] один-два спринта healthlog на новом процессе
## 5. jellybit
- [ ] `BRIEF.md``docs/passport.md`, обновить
- [ ] `docs/specs/{recognition,review-ux,workflow}.md` — сверить с capability и
удалить как дубли (10)
- [ ] `docs/specs/architecture.md``docs/architecture.md`, `database.md`
`docs/database.md`, `jellyfin-layout.md``docs/research/`
- [ ] `docs/review/journal.md``docs/review.md`
- [ ] `drafts/` растворить: roadmap → `ROADMAP.md`, conventions-backlog → задачи
`[idea]`, logical-title-model → ADR (H)
- [ ] `docs/backlog/``docs/tasks/`
- [ ] удалить проектные копии скиллов и агентов (4 из REMAINING)
- [ ] `av-dev-backlog` удалить из маркетплейса
## 6. Канон версии 3 — повысить живые проекты (тема 17)
Оба проекта стоят на каноне 2 и держат `docs/tasks/PLAN.md`: healthlog 55 задач,
jellybit 43. Шаги повышения — [changelog.md](av-dev-pm/skills/canon/references/changelog.md),
запись «Версия 3»; делаются скиллом `av-dev-pm:canon` в режиме `upgrade`.
- [ ] healthlog: `PLAN.md``ROADMAP.md`, ссылки, `"canon": 3`
- [ ] jellybit: то же
- [ ] род работы и раздел «Затрагивает» — **не задним числом**: сперва то, что
идёт в ближайший набор (`sprint take` без них откажет), остальное по ходу
переоценки (PPP)
- [ ] секции роадмапа: `порядок``Запланировано`, `темы``Направления`,
завести `Готово` и `Разработка`; прозаические разделы healthlog («Что уже
пройдено», «Почему в таком порядке») разложить — звенья строками в
`Готово`, обоснование очереди прозой внутри `Запланировано` (тема 19, 80).
`check` теперь называет чужую секцию ошибкой, так что шаг обязателен
- [ ] переформулировать цели ответом на «что приложение будет уметь»; цели не
про приложение («Процесс и качество разработки» в jellybit) — в
`Разработка`
- [ ] `check --fix` на обоих: поднимет написание канонических секций, поставит
отбивку после заголовков и сведёт секцию в мете файлов с заголовками.
Секции беклога переименовать руками — имена выбирал проект (тема 20, ККК)
- [ ] заголовки задач в форму действия — **не задним числом**: по мере попадания
задачи в работу. `check` печатает их число, `doc-wording` предложит
формулировки пачкой (тема 20, ЕЕЕ)