задачи: починена смена стадии, разобраны находки ревью плагина

Команда stage была дефектна по шести пунктам, и все шесть подтверждены
прогоном: не звала raw_last (переход оставлял каталог красным), не
переписывала шапку беклога (индекс продолжал объявлять прежнюю стадию),
шла в обход write_config, молча пропускала файлы с непересобираемой метой,
ломалась на беклоге без заголовков и схлопывала полки при первом
объявлении стадии.

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

Отказ по недостающей строке индекса запирал запись, пережившую упразднение
роадмапа: edit, close и reopen теперь заводят или пропускают строку сами.
Прочее: регистр stage нормализуется при чтении; --fix снимает мёртвые теги
и у неразобранных записей; move отказывает переставлять сырьё; adopt
держит место сырья; docs.py bump двигает одну запись журнала за раз;
tasks.py получил перечень упразднённых адресов, и гейт наконец видит
собственное упразднение ROADMAP.md.

Запись «Версия 3» переписана по прогону на игрушечном проекте: прежний
порядок шагов был неисполним. Закрыты дыры модели стадий (пересмотр плана
стройки стал сценарием, приёмка отвязана от груминга, from-review,
research и adopt получили развилку по стадии, перечень осей пересчитан) и
находки, старшие этой сессии: review-triage получил режим без метки, три
списка проектных копий сведены к дому с проверяемыми копиями, пять
пересказов правил стали помеченными копиями или ссылками, language.md
перестал объявлять юрисдикцию над чужим плагином.
This commit is contained in:
av
2026-08-13 15:08:29 +03:00
parent 8d8c1656e5
commit ed83ec7dc0
28 changed files with 678 additions and 259 deletions
@@ -103,10 +103,10 @@ git и читается диффом, а второй стоп на каждой
ходу. Исключение ровно одно и оно не про изменение системы: одноразовый
**читающий** прогон (запрос, замер, скрипт в песочнице), чей результат уезжает
в ответ с провенансом и который ничего не оставляет в репозитории.
- **Приоритетом.** Заведённая задача встаёт в конец своей секции; где ей стоять
в очереди, решает человек на груминге (`av-dev:task-groom`). Разведка, сама
ставящая свой исход первым в беклоге, назначает приоритет тому, что только что
придумала.
- **Местом в списке.** Заведённая задача встаёт в конец своей секции; куда её
поставить, решает человек на доработке грумингом (`av-dev:task-groom`), на
стройке сразу же, по зависимости. Разведка, сама ставящая свой исход первым,
назначает место тому, что только что придумала.
- **Форматом задач и документов.** Индексы и документы руками не правятся: их
ведут `av-dev:task-track` и `av-dev:doc-sync`. Твоё — содержание ответа, их —
форма и дом.
@@ -227,9 +227,14 @@ git и читается диффом, а второй стоп на каждой
отвергнутое (отвергнутый вариант с названной причиной — половина будущего ADR);
приносить один вариант и называть это выбором.
Проверка на простой язык та же, что у чекпоинта решения: **в тексте нет `SHALL`,
нет имён файлов и функций там, где вещь называется по-русски, и нет слов, которых
нет в паспорте проекта.**
Проверка на простой язык — общая у трёх сценариев:
<!-- копия: чекпоинт-простой-язык из av-dev/skills/code-resolve/references/solve.md -->
**в тексте нет `SHALL`, нет имён файлов и функций там, где вещь называется
по-русски, и нет слов, которых нет в паспорте проекта.**
<!-- /копия: чекпоинт-простой-язык -->
Исходы чекпоинта:
@@ -255,8 +260,8 @@ git и читается диффом, а второй стоп на каждой
- **ответ на вопрос** — по адресу из шага 1;
- **отвергнутые варианты с причинами.** Это половина будущего ADR и единственная
защита от повторной разведки того же самого;
- **решение с ценой — в ADR**, если оно проходит триггер канона (дорогой откат,
намеренный отказ, пересмотр прежнего решения). У разведки, кончившейся без
- **решение с ценой — в ADR**, если оно проходит [триггер
канона](../../canon/references/canon.md#adr). У разведки, кончившейся без
кода, `design.md` не будет никогда, поэтому здесь ADR цитирует **записку
разведки**, а не архивный change; канон это допускает прямо, и в записи
источник называется.