задачи: починена смена стадии, разобраны находки ревью плагина
Команда 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:
@@ -100,9 +100,10 @@ python3 $tk adopt apply --plan tasks-adopt-plan.json \
|
||||
|
||||
`apply` печатает состояние по факту: сколько задач не собрало разделы своего типа
|
||||
(для `check` это не ошибка, а строка здоровья, но `ready` такую задачу не
|
||||
пропустит). Закрывается это **порциями груминга** — скилл `groom`, 5–8 задач за
|
||||
порцию: превратить «готово, когда» в критерии с оракулами, вынуть вопросы из
|
||||
прозы в раздел «Вопросы».
|
||||
пропустит). Закрывается это **порциями по 5–8 задач**: превратить «готово,
|
||||
когда» в критерии с оракулами, вынуть вопросы из прозы в раздел «Вопросы». На
|
||||
доработке это груминг (скилл `av-dev:task-groom`), на стройке — гигиена полей
|
||||
этого скилла: груминга там нет.
|
||||
|
||||
**Порядок строк проверяется глазами отдельно.** На стройке он выведен из
|
||||
нумерации источника, и там, где её не было, он случаен. На доработке машина
|
||||
|
||||
@@ -83,6 +83,14 @@
|
||||
[скилле груминга](../../task-groom/SKILL.md#приоритет-как-его-расставляют), и
|
||||
серьёзность попадает ровно в один из них.
|
||||
|
||||
**Всё это — про доработку.** На стройке порядок строк значит зависимость, и
|
||||
`--first` там означает «ни от чего не зависит», а не «важнее всех»: находка,
|
||||
поднятая наверх, встанет перед собственной зависимостью. Место находке на стройке
|
||||
называет зависимость — `move --after <шаг, после которого её можно делать>`, — а
|
||||
серьёзность идёт **причиной в мете** и разбирается ближайшим пересмотром плана
|
||||
(`task-track`, «Пересмотр плана стройки»). Груминга там нет, и откладывать «до
|
||||
него» некуда.
|
||||
|
||||
- **тяжёлая находка со свидетельством о сломанном сейчас** → задача
|
||||
**первой строкой секции**: `move <слаг> --first
|
||||
--reason «сломано сейчас: …»`. Это довод «что сломано сейчас» из перечня
|
||||
|
||||
@@ -110,10 +110,13 @@
|
||||
| поле **Хук** | поле **Зачем** |
|
||||
| мета одной строкой через `·` | мета списком, поле на строку |
|
||||
|
||||
Единственное, чего `--fix` не делает сам, — **проставить тип записи, у которой
|
||||
его неоткуда взять**: `feature` от `chore` машина не отличает, и подставленное
|
||||
наугад значение врало бы ровно там, где по нему принимают решение. Такие записи
|
||||
он называет поимённо пометкой `НЕОДНОЗНАЧНО`.
|
||||
Чего `--fix` не делает сам — **решает за человека, каким быть типу**. Случаев
|
||||
три, и все три уезжают пометкой `НЕОДНОЗНАЧНО`: тип, которого неоткуда взять
|
||||
(`feature` от `chore` машина не отличает); тип вне словаря; и запись типа `goal`
|
||||
— целей больше нет, а во что превращается эта, в задачу или в ничто, машина не
|
||||
знает. Подставленное наугад значение врало бы ровно там, где по нему принимают
|
||||
решение. Мёртвые теги и имя поля места при этом снимаются у **любой** записи,
|
||||
включая ту, чей тип остался неразобранным.
|
||||
|
||||
### Затрагивает
|
||||
|
||||
|
||||
@@ -42,7 +42,8 @@
|
||||
| Место в секции беклога | **конец**, `check --fix` сносит туда сам | среди прочих |
|
||||
| `tasks.py list --raw` | показывает | нет |
|
||||
|
||||
Порядок строк в беклоге назначает человек — это приоритет (правило 4 скилла).
|
||||
Порядок строк в беклоге назначает человек, и стадия решает, что он значит:
|
||||
зависимость на стройке, важность на доработке (правило 4 скилла).
|
||||
Место сырья **из него изъято**: оно производно от типа и заполненности, а не от
|
||||
чьего-то решения, и потому его проверяет и чинит машина. Приоритетом оно не
|
||||
становится: сырьё не берут вовсе, и место в конце говорит именно это.
|
||||
|
||||
Reference in New Issue
Block a user