Files
dev-skills/decisions/57-sprints-cancelled-groom.md
T
av bf6a173115 журнал решений: разложен по теме на файл, метки решений стали номерами
- DECISIONS.md (4040 строк, 65 тем) → decisions/, файл на тему плюс указатель;
- буквенные метки решений заменены сквозными Р1–Р234, следствия получили
  префикс С при прежних номерах: схема букв выродилась до пятибуквенных и
  сломалась — `АЕАКЛ` была занята и темой 53, и темой 65;
- 42 перекрёстные ссылки переписаны под новые номера и стали живыми; где номер
  означал тему, а слово стояло «решение», формулировка исправлена.
2026-08-13 12:40:56 +03:00

5.7 KiB
Raw Blame History

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: сверка шла по константе скрипта, а заголовок документа не сверял никто.