Синк документации делил правки по документам, а делить их надо по роду. Отражение сделанного (вливание дельт, миграция, компонент в обзоре) пишется молча: без правки документ станет ложным. Новая запись и новая норма — ADR, конвенция, записка разведки, инвариант, периметр, дефект в журнале — только предлагаются, а пишет их третий такт шага 6 после слова человека. Реплика при этом одна на весь хвост: вопрос про урожай ревью переехал с шага 5 на шаг 6 и слился с предложениями синка — решение одно, «что из найденного переживёт задачу». Плановых стопов в сценарии решения стало ровно два, и оба про решения человека. Сверка документов получила счётчик: doc-healthcheck оставляет след ключом [healthcheck] last в .av-dev.toml, синк считает по нему задачи с прошлого прогона и говорит строкой. Прежде признак «десяток задач» держался в памяти, то есть не срабатывал. Журнал — тема 78.
133 lines
15 KiB
Markdown
133 lines
15 KiB
Markdown
# Решения по устройству процесса
|
||
|
||
Журнал согласований: что решено, почему и что из этого следует. Пишется по ходу
|
||
разбора тем, **одна тема — один файл**; этот файл — только указатель.
|
||
|
||
Три сквозные нумерации, и они не пересекаются:
|
||
|
||
- **Т** — требование: вход, который обязан быть удовлетворён. Живут здесь, ниже.
|
||
- **Р** — решение: что согласовано и почему. По темам в порядке журнала.
|
||
- **С** — следствие: что из решения вытекает.
|
||
|
||
Номер закреплён за записью навсегда: журнал описывает прошлые состояния и задним
|
||
числом не переписывается. Отсюда и разнобой формы — ранние темы держат решения
|
||
под заголовком «Решено», поздние ведут их прозой.
|
||
|
||
## Требования, зафиксированные по ходу
|
||
|
||
Не решения — вход, который обязан быть удовлетворён и разбирается в названной
|
||
теме.
|
||
|
||
**Т1. Адаптация и проверка проекта под канон — обязательный скилл.** Нужно уметь
|
||
прийти в **любой** старый проект и перевести его на текущие рельсы. Канон при
|
||
этом сам будет меняться, поэтому уже приведённые проекты тоже должны повышаться
|
||
до новых версий. *Разбирается в [теме 5](05-project-start-lifecycle.md) (старт и
|
||
жизненный цикл проекта).*
|
||
|
||
Следствия, которые из этого уже видны:
|
||
|
||
- **У канона обязана быть версия, а у проекта — отметка, под какую он
|
||
приведён.** Иначе «соответствует канону» не имеет определённого ответа:
|
||
сравнение идёт с тем, что модель помнит сейчас, а это и есть дрейф.
|
||
- **Журнал изменений канона — как миграции.** Каждое повышение версии несёт
|
||
запись «что добавилось, что переехало, что удалено, что сделать проекту». Без
|
||
него адаптация переизобретается на каждом проекте.
|
||
- **Отметка версии машиночитаема.** `.docs.json` отвергнут как *указатель
|
||
путей* (решение [Р6](02-project-doc-canon.md)), но отметка версии — другое:
|
||
её читает скрипт, и разбирать прозу `CLAUDE.md` для этого не нужно.
|
||
Прецедент — `.tasks.json`.
|
||
- **Операций три:** `check` (соответствие текущему канону), `adopt` (перевод
|
||
чужой раскладки), `upgrade` (повышение с версии N до M по журналу). Первая и
|
||
третья — одно сравнение с разными исходами.
|
||
- **Механизируемое и суждение не смешивать.** Скрипт проверяет пути, лишние
|
||
файлы, битые ссылки, версию. Агент судит о смысловых дублях (`docs/specs/
|
||
recognition.md` против capability `recognition`) и об оставшемся поведении в
|
||
`architecture.md`. Скрипт, отчитавшийся «канон соблюдён» на проекте с тремя
|
||
лишними файлами, хуже отсутствующего.
|
||
- **Границы плагинов:** `docs/tasks/` — часть канона документов, но владеет им
|
||
`av-dev-tasks` со своим `tasks.py adopt`. Два плагина сходятся на одном
|
||
каталоге. *[Тема 7](07-skills-layout-scripts.md).*
|
||
|
||
## Темы
|
||
|
||
| # | Тема | Дата |
|
||
|---|------|------|
|
||
| 1 | [Статус OpenSpec](01-openspec-status.md) | 2026-08-03 |
|
||
| 2 | [Канон документов проекта](02-project-doc-canon.md) | 2026-08-03 |
|
||
| 3 | [Брифа ревью нет — бриф это и есть канон](03-review-brief-is-canon.md) | 2026-08-03 |
|
||
| 4 | [Границы плагинов](04-plugin-boundaries.md) | 2026-08-03 |
|
||
| 5 | [Старт проекта и жизненный цикл под каноном](05-project-start-lifecycle.md) | 2026-08-03 |
|
||
| 6 | [Поддержание документов по ходу разработки](06-docs-upkeep.md) | 2026-08-03 |
|
||
| 7 | [Раскладка скиллов и доставка скриптов](07-skills-layout-scripts.md) | 2026-08-03 |
|
||
| 8 | [Порядок выката](08-rollout-order.md) | 2026-08-03 |
|
||
| 9 | [Линтеры скриптов](09-script-linters.md) | 2026-08-03 |
|
||
| 10 | [Ревью готовых плагинов двумя проходами](10-two-pass-plugin-review.md) | 2026-08-03 |
|
||
| 11 | [Зависимости между плагинами](11-plugin-dependencies.md) | 2026-08-03 |
|
||
| 12 | [Механическая проверка копий](12-mechanical-copy-check.md) | 2026-08-03 |
|
||
| 13 | [Секции `PLAN.md` переименованы](13-plan-sections-renamed.md) | 2026-08-03 |
|
||
| 14 | [Умолчания режимов прогона перевёрнуты](14-run-mode-defaults-flipped.md) | 2026-08-03 |
|
||
| 15 | [Порядок проходов ревью — граф зависимостей](15-review-pass-order-graph.md) | 2026-08-03 |
|
||
| 16 | [Каталог вместо файла в `docs/` — отложено до переезда healthlog](16-directory-instead-of-file.md) | 2026-08-04 |
|
||
| 17 | [Разбор заметок: ступень ревью, род работы, роадмап](17-notes-tier-work-kind-roadmap.md) | 2026-08-04 |
|
||
| 18 | [Ступень поднимает проход, а не риск](18-tier-raises-pass-not-risk.md) | 2026-08-04 |
|
||
| 19 | [Роадмап — состояние проекта, а не очередь работ](19-roadmap-is-state-not-queue.md) | 2026-08-04 |
|
||
| 20 | [Форма записи: заголовок, секции, вычитка](20-record-form-heading-sections.md) | 2026-08-04 |
|
||
| 21 | [Язык проектных текстов — информационный стиль](21-project-text-language.md) | 2026-08-04 |
|
||
| 22 | [Обкатка агента вычитки: имя, охват и «так везде»](22-wording-agent-trial.md) | 2026-08-04 |
|
||
| 23 | [Вычитка разделена на два прохода](23-wording-split-two-passes.md) | 2026-08-04 |
|
||
| 24 | [Обкатка двух проходов: два дефекта в собственных правилах](24-two-pass-trial-defects.md) | 2026-08-04 |
|
||
| 25 | [Секция `Сопровождение` и общий словарь трёх мест](25-maintenance-section-shared-vocab.md) | 2026-08-04 |
|
||
| 26 | [Канон 4: правка задним числом отменена](26-canon-4-retroactive-edit-cancelled.md) | 2026-08-04 |
|
||
| 27 | [Тип записи стал единственной осью и задаёт схему](27-record-type-single-axis.md) | 2026-08-05 |
|
||
| 28 | [Слаг подкреплён проверкой, обещанный судья заведён](28-slug-check-and-judge.md) | 2026-08-05 |
|
||
| 29 | [Обкатка `doc-consistency` на самом dev-skills](29-doc-consistency-trial.md) | 2026-08-05 |
|
||
| 30 | [`av-dev-backlog` удалён](30-av-dev-backlog-removed.md) | 2026-08-05 |
|
||
| 31 | [Ревизия покрытия `av-dev-pm` продакт-оптикой](31-pm-coverage-product-review.md) | 2026-08-05 |
|
||
| 32 | [Сквозной проход по словарю: пять слов сняты, девять закрыты списком](32-vocabulary-sweep.md) | 2026-08-05 |
|
||
| 33 | [Стоимость ревью: снят самый дорогой проход и самая дорогая модель](33-review-cost-cut.md) | 2026-08-06 |
|
||
| 34 | [Пропускная способность против глубины: тяжёлые проходы уехали в верхнюю ступень](34-throughput-vs-depth.md) | 2026-08-06 |
|
||
| 35 | [Ревизия моделей: переведены двое из девяти, и критерий оказался не тот](35-model-revision.md) | 2026-08-06 |
|
||
| 36 | [Темы ревью: документ проекта стал направлением проверки](36-review-topics-project-docs.md) | 2026-08-06 |
|
||
| 37 | [`gate` и `autotests` сведены к одному имени](37-gate-and-autotests-one-name.md) | 2026-08-07 |
|
||
| 38 | [Шов между плагинами: канон не называет имён проходов](38-plugin-seam-no-pass-names.md) | 2026-08-07 |
|
||
| 39 | [Спринт без цели — законный случай](39-sprint-without-goal.md) | 2026-08-07 |
|
||
| 40 | [Три категории документов: не всякий документ — тема ревью](40-three-doc-categories.md) | 2026-08-07 |
|
||
| 41 | [Разметка задачи: одна величина, посчитанная один раз](41-task-sizing-once.md) | 2026-08-07 |
|
||
| 42 | [`quick` стал дешевле `standard` тремя способами](42-quick-cheaper-than-standard.md) | 2026-08-07 |
|
||
| 43 | [Ревью дизайна тоже растёт ступенями](43-design-review-tiers.md) | 2026-08-07 |
|
||
| 44 | [Метка задачи: одно значение, по которому выбираются все ревьюверы](44-task-label-single-value.md) | 2026-08-07 |
|
||
| 45 | [Корректор метки, доля `small` и корпус оценки](45-label-corrector-small-share.md) | 2026-08-07 |
|
||
| 46 | [Правило выбора метки съехало из скилла в отдельный документ](46-label-rule-own-document.md) | 2026-08-07 |
|
||
| 47 | [OpenSpec заводится скиллом, а его конфиг — часть канона](47-openspec-setup-skill.md) | 2026-08-07 |
|
||
| 48 | [Форма чужого инструмента держится опросом инструмента, а не памятью](48-foreign-tool-form-by-query.md) | 2026-08-07 |
|
||
| 49 | [Дом общего правила вышел из плагина](49-shared-rule-home-outside-plugin.md) | 2026-08-09 |
|
||
| 50 | [Вычитка раздвоилась по плагину, а не по правилу](50-wording-split-by-plugin.md) | 2026-08-09 |
|
||
| 51 | [av-dev-pm расколот: владение пошло по тому, что ставится порознь](51-av-dev-pm-split.md) | 2026-08-09 |
|
||
| 52 | [Валидатор поехал за файлом: у конвейера появился свой скрипт](52-validator-follows-file.md) | 2026-08-09 |
|
||
| 53 | [`canon` и `docs` остаются двумя скиллами](53-canon-and-docs-two-skills.md) | 2026-08-09 |
|
||
| 54 | [Стык плагинов: правило получило дом, адреса остались у владельцев](54-plugin-seam-rule-home.md) | 2026-08-09 |
|
||
| 55 | [`task-pipeline` стал `resolve`: два плановых стопа вместо полной автономии](55-task-pipeline-becomes-resolve.md) | 2026-08-09 |
|
||
| 56 | [`av-dev-pipeline` → `av-dev-code`, `review-pipeline` → `review`](56-plugin-and-skill-renames.md) | 2026-08-09 |
|
||
| 57 | [Спринты отменены: приоритет стал порядком строк, `session` стал `groom`](57-sprints-cancelled-groom.md) | 2026-08-09 |
|
||
| 58 | [Судьи документов получили свой скилл — `healthcheck`](58-doc-judges-healthcheck.md) | 2026-08-09 |
|
||
| 59 | [Аудит четырьмя сабагентами: описания отстают от механики молча](59-four-subagent-audit.md) | 2026-08-09 |
|
||
| 60 | [Служебный файл зовётся по плагину-владельцу; у задач появилась своя версия формата](60-service-file-named-by-owner.md) | 2026-08-11 |
|
||
| 61 | [Разведка и решение — два сценария одного скилла, а не два скилла](61-research-and-solve-two-scenarios.md) | 2026-08-11 |
|
||
| 62 | [Вычитку зовёт тот, кто правил, а не тот, кто синкал](62-wording-called-by-editor.md) | 2026-08-11 |
|
||
| 63 | [Обслуживание — третий сценарий: у цикла SDD там нет входа](63-maintenance-third-scenario.md) | 2026-08-13 |
|
||
| 64 | [Три плагина слились в один: раскол платили, а не пользовались](64-three-plugins-merged.md) | 2026-08-13 |
|
||
| 65 | [Перечень осей получил дом; две оси жили без владельца](65-axes-registry-home.md) | 2026-08-13 |
|
||
| 66 | [`doc-canon` → `canon`: скилл формы вышел из семейства документов](66-canon-without-prefix.md) | 2026-08-13 |
|
||
| 67 | [Цель упразднена, у проекта появилась стадия](67-goal-removed-project-stages.md) | 2026-08-13 |
|
||
| 68 | [Постановка текстом — вторая полноправная форма входа](68-task-from-plain-text.md) | 2026-08-13 |
|
||
| 69 | [Счёт корпуса в прозе не пишется](69-corpus-count-not-written.md) | 2026-08-13 |
|
||
| 70 | [«Провенанс» снят из словаря: одного синонима мало для проверки](70-provenance-word-removed.md) | 2026-08-13 |
|
||
| 71 | [Образец языка назван прямо; «интейк» снят вслед за «провенансом»](71-language-model-popular-science.md) | 2026-08-13 |
|
||
| 72 | [Письмо уходит агентам: оркестратор ставит задание и читает возврат](72-writing-delegated-to-agents.md) | 2026-08-22 |
|
||
| 73 | [Гейт, прогнанный до ревью, не гоняется второй раз](73-gate-run-reused-by-fingerprint.md) | 2026-08-23 |
|
||
| 74 | [Ревью дизайна снято, разметка переехала за код](74-design-review-dropped-scope-after-code.md) | 2026-08-23 |
|
||
| 75 | [Хвост задачи — один агент: архивация и синк вместе](75-tail-in-one-agent.md) | 2026-08-23 |
|
||
| 76 | [Лёгкий проход в цикле, тяжёлые — в отдельном скилле](76-proof-in-cycle-deep-review-apart.md) | 2026-08-23 |
|
||
| 77 | [Цикл задачи проверяет механику; метки сняты](77-cycle-checks-mechanics-labels-dropped.md) | 2026-08-23 |
|
||
| 78 | [Хвост задачи: отражение молча, новое — по слову](78-tail-reflection-silent-new-by-word.md) | 2026-08-23 |
|