Files
dev-skills/TODO.md
T
avandClaude Opus 5 6609012696 вычитка разделена на два прохода: task-form и doc-wording
В уставе стоял заголовок «Форма записи — только для docs/tasks/items/»:
условная половина, которая на документе канона молчит, а на задаче
включается. Условное правило агент применяет по своему усмотрению, а
усмотрение и есть то, чего от него не ждут. Два коротких устава без
условий надёжнее одного длинного с ними.

Разделены не по охвату — по глубине. Язык проверяется по словам и
фразам, поштучно: залог, оценки, стоп-слова, англицизмы, жаргон. Форма
записи требует понять, что задача делает, и открыть файл цели, на
которую она ссылается, чтобы сверить, какую строку «Завершения» задача
двигает. Слитый проход одну половину делает дорогой, а вторую —
поверхностной. Отсюда и разные модели: doc-wording на sonnet,
task-form на opus. Первый подметает, второй судит смысл, и ровно на
суждении обкатка показала провал.

Каждый устав отказывается от чужой половины прямо: увиденное не по своей
части идёт строкой в границах покрытия, а не находкой. Две проверки
одного места расходятся и начинают спорить. Исключение ровно одно и
названо: неудачное слово в заголовке судит task-form, потому что
заголовок целиком его.

У task-form появилось шестое правило, которого не было ни у кого: связь
задачи со строкой «Завершения» её цели. Оно единственное читает больше
одного файла и единственное смотрит набор, а не запись — строка
«Завершения», к которой не относится ни одна поданная задача,
докладывается отдельным блоком. Это граница между вычиткой и разбором,
проведённая внутри правила.

Порог правки переехал в language.md помеченным домом «порог-правки» и
копируется в оба устава: правка без нарушенного правила не делается,
систематичность нарушения — не довод в его пользу. Дублировать его
руками значило бы получить два разных порога через месяц. Копий стало
шесть при пяти домах.

Порядок вызова — сперва task-form: его находки меняют решение «брать или
не брать», а язык меняет только цену чтения.

DECISIONS тема 23 (ССС–ФФФ, следствия 91–93).

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

13 KiB
Raw Blame History

Работы по итогам разбора

Порядок и обоснование — DECISIONS.md, тема 8. Номера в скобках — следствия оттуда.

Замер (шаг 3) — единственный шаг, который нельзя переставить: он блокирует переезд jellybit. Всё остальное можно тасовать.

0. Предусловие

  • git push092d07c..88c5d97, 17 коммитов ушли на origin (37)
  • claude plugin marketplace update av-dev-skills — клон встал на 88c5d97 и видит av-dev-pm и av-dev-pipeline

1. Репозиторий плагинов

1.1 Переименование

  • av-dev-tasksav-dev-pm: каталог, plugin.json, marketplace.json (18)
  • пространство имён во всех текстах: av-dev-tasks:sessionav-dev-pm:session, включая ссылку из task-pipeline (18)

1.2 Канон — единственный дом определения

  • av-dev-pm/skills/canon/references/canon.md — раскладка, роли документов, правило единственного дома. Читают init, canon, docs (AA)
  • av-dev-pm/skills/canon/references/changelog.md — журнал версий канона, версия 1 (26)

1.3 Правки существующих скиллов

  • tasks: убрать слот 6 «Команда учёта задач» (33)
  • tasks: путь каталога жёсткий docs/tasks, убрать цепочку разрешения (F)
  • tasks: .tasks.jsondocs/.pm.json, там же версия канона и путь миграций (23, 30)
  • tasks: убрать слоты 3 «куда переезжает суть» и 5 «оракулы» — отвечает канон и семантика гейта (тема 4)
  • session: убрать слот 7 и слот 4 «где живёт разбор процесса» (33, K)
  • session: переписать «Стимулы, которые процесс создаёт» — снятая граница выбила опору у трёх защит (19)

1.4 Новые скиллы

  • init — интервью по брифу → канон нового проекта (R)
  • canoncheck / adopt / upgrade; поглощает скилл adopt (R, 21, 24)
  • docs — содержимое канона: ADR из архивного design.md, промоут конвенций, запись в research/ и review.md, чистка architecture.md (X)
  • docs.py — раскладка, лишние файлы, битые ссылки, версия, плейсхолдеры, маркеры долга; сверки миграции ↔ database.md и capability ↔ architecture.md (T, 31)

1.5 av-dev-pipeline

  • удалить скилл project-brief и references/{project-brief,brief-template}.md (13)
  • снять ветки деградации OpenSpec в трёх местах: task-pipeline, review-pipeline, task-batch (1)
  • девять charter'ов: разделы брифа → пути канона; ops/adversary/reimpl обязаны сшивать research/ и database.md (14, 15)
  • review-pipeline: убрать бриф, поразрядная деградация по документам (16)
  • task-pipeline шаг 9 → построчный доклад по документам канона (28)
  • task-pipeline/task-batch: закрытие задачи вызовом скилла av-dev-pm:tasks, слот убрать (32, 33)
  • promote.md шаг 3: перечень механизированного → conventions/README.md (29)
  • описание плагина: «требует OpenSpec» (2)

1.6 Прочее

  • av-dev-backlog — пометить устаревшим, переписать описание, чтобы не ловило триггер (Q)
  • README.md маркетплейса — три плагина, канон, установка
  • HISTORY.md — сжать AGENTIC-TASKS.md до истории решений (CC)
  • REMAINING.md пересобрать: пункт 2 отменён, четыре вопроса закрыты, калибровка стала обязательной (38)

1.7 Линтеры скриптов (тема 9)

  • pyproject.toml: ruff + pyrefly через uv, версии прибиты (DD, FF)
  • запрет внешних зависимостей двумя способами: banned-api + пустое окружение pyrefly (EE)
  • RUF001RUF003 выключены, av-dev-backlog исключён (GG, HH)
  • починены 27 находок ruff и 14 pyrefly; os из tasks.py ушёл (40, 41)
  • раздел «Проверка скриптов» в README.md

1.8 Ревью двумя проходами (тема 10)

  • reopen берёт текст из HEAD, когда коммита удаления ещё нет (JJ)
  • шаг 11 коммитит учёт вторым коммитом; батч проверяет чистоту дерева (JJ)
  • фиктивный ключ tasks.sections убран из четырёх документов (KK)
  • init пишет конфиг в docs/.pm.json; looks_like_tasks его читает
  • урожай спринта заводится до sprint close, слаг — из его отчёта
  • ответ на вопрос опустошает раздел «Вопросы» — во всех трёх местах
  • путь отчёта триажа переживает архивацию (5 мест)
  • review-specs получил режим 3 — стык после слияния
  • остальные 12 находок: sprint.md, «9а», перечень проектных копий, параллельность в батче, триаж в финальной сверке, триггеры профиля, 8–12

1.9 Ревью зависимостей между плагинами (тема 11)

  • опоры приёмки названы абстрактно, деградация без конвейера объявлена (MM)
  • ветка деградации шага 9 ходит в свой project-facts.md (NN)
  • docs даёт ветку «конвейера нет» для журнала и промоута
  • форма журнала дефектов сведена к дому, копия помечена в changelog.md
  • specs вернулся в читатели docs/research/; дом списка назначен
  • пайплайн не называет items/ и SPRINT.md — их знает av-dev-pm
  • манифесты объявили av-dev-pm опциональным для конвейера (49)

1.10 Механическая проверка копий (тема 12)

  • scripts/copies.py: маркеры дома и копии, побайтовая сверка (OO)
  • строгий id, повторяемый в закрывающем маркере (PP)
  • помечены два контракта; «когда заводить ADR» сведён к дословному (50)
  • раздел «Проверка копий правил» в 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.mdreview.md + настройка конвейера (K, L)
  • conventions.mdconventions/, local-research.mdresearch/ (G)
  • plan.mddocs/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.mddocs/passport.md, обновить
  • docs/specs/{recognition,review-ux,workflow}.md — сверить с capability и удалить как дубли (10)
  • docs/specs/architecture.mddocs/architecture.md, database.mddocs/database.md, jellyfin-layout.mddocs/research/
  • docs/review/journal.mddocs/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, запись «Версия 3»; делаются скиллом av-dev-pm:canon в режиме upgrade.

  • healthlog: PLAN.mdROADMAP.md, ссылки, "canon": 3
  • jellybit: то же
  • род работы и раздел «Затрагивает» — не задним числом: сперва то, что идёт в ближайший набор (sprint take без них откажет), остальное по ходу переоценки (PPP)
  • секции роадмапа: порядокЗапланировано, темыНаправления, завести Готово и Разработка; прозаические разделы healthlog («Что уже пройдено», «Почему в таком порядке») разложить — звенья строками в Готово, обоснование очереди прозой внутри Запланировано (тема 19, 80). check теперь называет чужую секцию ошибкой, так что шаг обязателен
  • переформулировать цели ответом на «что приложение будет уметь»; цели не про приложение («Процесс и качество разработки» в jellybit) — в Разработка
  • check --fix на обоих: поднимет написание канонических секций, поставит отбивку после заголовков и сведёт секцию в мете файлов с заголовками. Секции беклога переименовать руками — имена выбирал проект (тема 20, ККК)
  • заголовки задач в форму действия — не задним числом: по мере попадания задачи в работу. check печатает их число, task-form предложит формулировки пачкой (тема 20, ЕЕЕ)