- DECISIONS.md (4040 строк, 65 тем) → decisions/, файл на тему плюс указатель; - буквенные метки решений заменены сквозными Р1–Р234, следствия получили префикс С при прежних номерах: схема букв выродилась до пятибуквенных и сломалась — `АЕАКЛ` была занята и темой 53, и темой 65; - 42 перекрёстные ссылки переписаны под новые номера и стали живыми; где номер означал тему, а слово стояло «решение», формулировка исправлена.
59 lines
5.7 KiB
Markdown
59 lines
5.7 KiB
Markdown
# 57. Спринты отменены: приоритет стал порядком строк, `session` стал `groom` (2026-08-09)
|
||
|
||
**Р205. Спринт отвечал на вопрос «что делать дальше» замороженным набором, а
|
||
между наборами на этот вопрос не отвечал никто.** Процесс идёт задача за
|
||
задачей, и набор перестал что-либо удерживать: он не синхронизировал (некого),
|
||
не ограничивал по времени (тайм-бокс не брали) и не защищал от врывания
|
||
(врывалось ровно два класса, оба назывались правилом). Осталась цена —
|
||
обязанность собрать, показать, заморозить и распустить.
|
||
|
||
**Приоритет вернулся, и вернулся туда, где ему место.** Прежнее правило «порядка
|
||
нет, есть цель» было обосновано **набором спринта**, и с ним потеряло опору.
|
||
Приоритет — свойство очереди, а не задачи, поэтому его дом **индекс**: то же
|
||
исключение из правила «файл — источник истины», что уже было у «в каком индексе
|
||
лежит запись». Числом в файле он быть не мог — два соседних файла смогли бы
|
||
утверждать одно место, а строка индекса противоречить обоим.
|
||
|
||
**Гейт готовности стоял на `sprint take` и чуть не исчез вместе с ним.** Это было
|
||
единственное место, где запись судили целиком: тип, цель у `feature`, пустой
|
||
раздел вопросов, схема типа. Без спринта момента не осталось бы вовсе, а узнают
|
||
о недописанной задаче на приёмке, когда сверять уже не с чем. Момент назвали
|
||
заново — команда `tasks.py ready <слаг>`, и зовёт её тот, кто берёт задачу.
|
||
Отказ там **код 1, а не 2**: запись не дописана — это рабочая ситуация, а не
|
||
ошибка употребления.
|
||
|
||
**`session` стал `groom`, и предмет сузился до двух вопросов** — что сейчас
|
||
самое важное и что перестало быть важным. Из четырёх шагов прежней сессии выжили
|
||
два (вопросы, переоценка порциями), один заменился (расстановка очереди вместо
|
||
набора спринта), два выпали:
|
||
|
||
- **приёмка закрытых задач** — грумингу не по предмету. Ритуала у неё больше нет,
|
||
остаётся `reopen` по требованию. Цена названа прямо: приёмка происходит только
|
||
тогда, когда что-то уже бросилось в глаза;
|
||
- **разбор процесса** — его якорем был прошедший спринт. Вместе с ним из скилла
|
||
ушёл прямой вызов агентов `doc-consistency` и `doc-code-drift`, и это **не
|
||
потеря, а починка**: агенты принадлежат `av-dev-docs`, и груминг звал их мимо
|
||
правила обращения к соседу, без ветки «плагина нет». Груминг теперь только
|
||
**называет повод** сверить канон, а когда их звать — решает их владелец.
|
||
|
||
**Побочно найдено:** `canon.md` — дом определения канона — объявлял себя версией
|
||
7, когда скрипт шёл на 11. Пять версий дом врал о себе, и не заметил никто:
|
||
машина сверяет версию проекта с константой скрипта, а прозу в заголовке не
|
||
читает.
|
||
|
||
## Что из этого следует
|
||
|
||
**С190. Правило, обоснованное механикой, умирает вместе с ней — и надо
|
||
проверять, что вопрос умер тоже.** «Порядка нет» держалось на наборе спринта;
|
||
набор ушёл, а вопрос «что делать дальше» остался и повис без ответа. Снимая
|
||
механику, ищи не только то, что на ней стояло, но и то, на что она отвечала.
|
||
|
||
**С191. Гейт живёт в моменте, а не в команде.** Проверка готовности была
|
||
свойством `sprint take` — и была бы потеряна как деталь удаляемой команды.
|
||
Момент «запись впервые судят целиком» существует независимо от того, чем он
|
||
назван, и переезжает вместе с процессом.
|
||
|
||
**С192. Версия в прозе, которую не читает машина, протухает молча.** Дом канона
|
||
назвал себя версией 7 при текущей 11: сверка шла по константе скрипта, а
|
||
заголовок документа не сверял никто.
|