секции роадмапа названы и закреплены линтером
готово | запланировано | направления | разработка, англ. done | planned | directions | tooling. Из четырёх предложенных имён отвергнуто одно, и по проверяемой причине: «окружение» уже занято — в architecture.md это боевое окружение приложения, «где работает, что рядом, кто перезапускает», и одно слово в двух смыслах развело бы документы канона. Секции роадмапа стали каноническими, в отличие от секций беклога, и разница выведена, а не назначена: у каждой секции роадмапа своя семантика, в первую пишет сам close, и роадмап, названный по-своему, читался бы только своим автором. Секции беклога — полки, смысла не несут, остаются делом проекта. check проверяет три вещи: состав закреплён (чужая секция — ошибка), все четыре обязаны быть, язык один на весь индекс. Проверено на том случае, ради которого правило и заводилось: «Что уже пройдено», которую healthlog вёл руками, теперь называется ошибкой поимённо. Оба языка прогнаны вживую, включая close в английский роадмап. Ключа tasks.achieved_section не появилось — секция достигнутого опознаётся по каноническому имени в любом из языков; --roadmap-sections у init упразднён, выбирать больше нечего. Названные вслух компромиссы: «готово» слегка тянет в трекерную рамку «состояние работы», тогда как секция про возможность — перевесила читаемость; цель в «запланировано» может быть уже наполовину построена, это очередь, а не «не начато», «в работе» живёт в SPRINT.md. DECISIONS 19: ГГГ переписан, добавлен ДДД, следствие 78 заменено. TODO 7 закрыт. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -31,11 +31,13 @@ upgrade` идёт по записям снизу вверх от версии п
|
||||
2. **Раздел «Затрагивает»** в теле задачи — перечень границ, которых изменение
|
||||
касается (эндпоинт, таблица и миграция, формат на диске, публичный тип). Как
|
||||
и критерии приёмки, требуется к взятию в спринт, а не к заведению.
|
||||
3. **Секции роадмапа** — четыре вместо двух: `умеет` (достигнутые цели строкой
|
||||
с датой, без ссылки на файл), `строим` (очередь значима), `направления`
|
||||
(очереди нет), `станок` (инструмент и процесс, не возможности приложения).
|
||||
Имя секции достигнутого скрипт знает по конфигу — `tasks.achieved_section`.
|
||||
Имена **временные** и будут пересмотрены (DECISIONS, тема 19).
|
||||
3. **Секции роадмапа** — четыре вместо двух и **канонические**, в отличие от
|
||||
секций беклога: `готово` (достигнутые цели строкой с датой, без ссылки на
|
||||
файл), `запланировано` (очередь значима), `направления` (очереди нет),
|
||||
`разработка` (инструмент и процесс, не возможности приложения). Английский
|
||||
вариант — `done` | `planned` | `directions` | `tooling`, один язык на весь
|
||||
индекс. Переименованию проектом не подлежат: у каждой свой смысл, и в первую
|
||||
пишет сам `close`; `tasks.py check` проверяет состав.
|
||||
4. **Умолчание профиля ревью сменилось** — это не раскладка, но проектный текст
|
||||
под него уже написан. `standard` стал рабочим умолчанием: миграция схемы,
|
||||
публичный контракт и инвариант ступень больше **не** поднимают, `wide`
|
||||
@@ -43,7 +45,7 @@ upgrade` идёт по записям снизу вверх от версии п
|
||||
в `docs/review.md` остаётся на месте, но его содержимое надо перечитать.
|
||||
|
||||
**Что переехало:** `docs/tasks/PLAN.md` → `docs/tasks/ROADMAP.md`; достигнутая
|
||||
цель — из небытия в секцию `умеет`: `close <цель> --implemented` удаляет файл, но
|
||||
цель — из небытия в секцию `готово`: `close <цель> --implemented` удаляет файл, но
|
||||
**оставляет строку с датой**. Прежде роадмап отвечал только «что осталось», и
|
||||
половину его вопроса вели прозой руками. Вместе с
|
||||
файлом переименован ключ конфига `tasks.plan` → `tasks.roadmap` и токены
|
||||
@@ -74,16 +76,16 @@ upgrade` идёт по записям снизу вверх от версии п
|
||||
что для этого проекта считается **новым понятием** и **правилом
|
||||
идентичности**, — и убрать остальное, иначе проект возвращает себе прежнюю
|
||||
частоту полного набора уточнением.
|
||||
7. Переименовать секции роадмапа: `порядок` → `строим`, `темы` →
|
||||
`направления`; завести `умеет` **первой** и `станок` последней. Прозаические
|
||||
разделы вроде «Что уже пройдено», которые велись руками, разложить: звенья —
|
||||
строками в `умеет` (дата, слаг, что стало возможно), обоснование очереди
|
||||
оставить прозой в `строим`. Любой `##` в индексе проверка считает секцией,
|
||||
поэтому прозаический заголовок здесь — дрейф.
|
||||
7. Переименовать секции роадмапа: `порядок` → `запланировано`, `темы` →
|
||||
`направления`; завести `готово` **первой** и `разработка` последней.
|
||||
Прозаические разделы вроде «Что уже пройдено», которые велись руками,
|
||||
разложить: звенья — строками в `готово` (дата, слаг, что стало возможно),
|
||||
обоснование очереди оставить прозой в `запланировано`. Любой `##` в индексе
|
||||
проверка считает секцией, и теперь `check` называет чужую секцию ошибкой.
|
||||
8. Переформулировать цели ответом на **«что приложение будет уметь»**: не
|
||||
«Работа со слиянием», а «Исход слияния не зависит от порядка доставки».
|
||||
Свойство поведения — законная цель. Цель, которая не про приложение
|
||||
(процесс, инструмент), переезжает в `станок`.
|
||||
(процесс, инструмент), переезжает в `разработка`.
|
||||
9. `[epic]`, если он в проекте заводился: это либо цель, либо набор задач под
|
||||
общей целью. `check` назовёт его неизвестным типом.
|
||||
10. `docs/.pm.json`: `"canon": 3`.
|
||||
|
||||
Reference in New Issue
Block a user