журнал решений: разложен по теме на файл, метки решений стали номерами

- DECISIONS.md (4040 строк, 65 тем) → decisions/, файл на тему плюс указатель;
- буквенные метки решений заменены сквозными Р1–Р234, следствия получили
  префикс С при прежних номерах: схема букв выродилась до пятибуквенных и
  сломалась — `АЕАКЛ` была занята и темой 53, и темой 65;
- 42 перекрёстные ссылки переписаны под новые номера и стали живыми; где номер
  означал тему, а слово стояло «решение», формулировка исправлена.
This commit is contained in:
av
2026-08-13 12:40:56 +03:00
parent b411d4edb8
commit bf6a173115
72 changed files with 4253 additions and 4053 deletions
+58
View File
@@ -0,0 +1,58 @@
# 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: сверка шла по константе скрипта, а
заголовок документа не сверял никто.