журнал решений: тема 67 дополнена по итогам ревью
- снята выдуманная ссылка: фраза «цель и приоритет — независимые оси» приписывалась теме 19, а стояла в правиле 4 самого скилла; - перечень отменяемого доведён до полного: тема 19 целиком кроме Р81, половина Р83, плюс Р69, Р84, С85, Р101, Р103, Р105, Р106, Р107, Р110, Р128 из тем 17, 20, 25, 26, 27, 31; - Р242 приведён к тому, что команда делает на самом деле; заведены Р244 (объявление стадии и её смена — разные операции) и С234–С236.
This commit is contained in:
@@ -14,9 +14,10 @@
|
||||
|
||||
Разбор подтвердил, что это не вкус, а свойство: **цель — зонтик над
|
||||
параллельными направлениями**, она нужна там, где список работ нельзя выстроить
|
||||
в один порядок и очередь идёт поперёк направлений (это и записано в теме 19: «цель
|
||||
и приоритет — независимые оси»). У проекта на одного человека параллельных
|
||||
направлений не бывает, и зонтик не стоял ни над чем.
|
||||
в один порядок и очередь идёт поперёк направлений. Так это и было записано —
|
||||
правилом 4 скилла `task-track`: «Цель и приоритет — независимые оси: очередь
|
||||
может идти поперёк целей, и это законно». У проекта на одного человека
|
||||
параллельных направлений не бывает, и зонтик не стоял ни над чем.
|
||||
|
||||
Заодно нашлось, что роадмап отвечал на свой вопрос наполовину: «чего ещё не
|
||||
умеет» — это «что осталось в беклоге», то есть пересказ второго индекса.
|
||||
@@ -31,8 +32,38 @@
|
||||
помельче, и они встают в списке подряд — соседство и есть тот ответ, ради
|
||||
которого заводили зонтик.
|
||||
|
||||
Р78 («цель — возможность приложения, задача — шаг к ней») и Р80 («цель
|
||||
обязательна не у всякой задачи») этим отменены, Р81 подтверждён.
|
||||
**Отменённое названо поимённо, потому что журнал задним числом не
|
||||
переписывается**, и решение, оставшееся без ссылки, читается через год как
|
||||
действующее. Отменены:
|
||||
|
||||
- **тема 19 целиком, кроме Р81.** Р77 (достигнутая цель не исчезает) — см. Р238;
|
||||
Р78 (цель — возможность, задача — шаг к ней); Р79 (тест готовности спрашивает,
|
||||
какую строку «Завершения» задача двигает) — вопрос снят вместе с разделом, у
|
||||
`ready` его нет; Р80 (цель обязательна не у всякой задачи); Р82 (имена секций
|
||||
роадмапа); С78 и С79 (ключ секции достигнутого, `reopen` снимает её строку);
|
||||
С81 (правил пять, нулевое про цель — их шесть, и нулевое про стадию).
|
||||
**Р81 подтверждён**: зонтика между планом и задачей по-прежнему нет.
|
||||
- **Р83 — наполовину.** «Секции роадмапа канонические» отменено вместе с
|
||||
роадмапом; «секции беклога — нет» **пересмотрено**: Р240 завёл машинную
|
||||
проверку их состава. Имена по-прежнему называет проект — проверяется только
|
||||
количество, и только на стройке.
|
||||
- **Р69** (`PLAN.md` → `ROADMAP.md` вместе с ключом конфига): файл и ключ
|
||||
упразднены.
|
||||
- **Р84** (заголовок отвечает на вопрос своего типа, и форм три) — форм две.
|
||||
**С85** (мелкая цель даёт две задачи) — предмета нет.
|
||||
- **Р101 и Р103** в части «секция `Сопровождение` в роадмапе»: место работ по
|
||||
сопровождению — задачи `chore`, и дом словаря это уже говорит.
|
||||
- **Р105 и Р106** (порядок секций роадмапа канонический, позиции считаются из
|
||||
кортежа) — предмета нет.
|
||||
- **Р107** в части «ось из пяти значений» — их четыре. **Р110** (поле места
|
||||
названо по типу) отменён **его собственным доводом**: имена развели потому,
|
||||
что «какое поле обязательно, решает тип», а типов, у которых оно называлось бы
|
||||
«Секцией», не осталось. Это ровно тот случай, который С101 назвал образцовым.
|
||||
- **Р128** (порядок отмены цели: сперва задачи, потом цель) — процедура мертва
|
||||
целиком.
|
||||
|
||||
Тема 39 (цель у спринта) сюда не входит: её предмет умер раньше, вместе со
|
||||
спринтами (тема 57).
|
||||
|
||||
**Р238. Секция `Готово` удалена, а не перенесена.** Р77 заводил её потому, что
|
||||
роадмап иначе показывал только «что осталось». Довод верен ровно для роадмапа: у
|
||||
@@ -41,6 +72,11 @@
|
||||
`git log` индекса, где закрытие лежит отдельным коммитом учёта. Третий дом
|
||||
списком строк был бы дублем, который никто не сверяет.
|
||||
|
||||
**Оговорка, без которой довод неполон: OpenSpec обязателен не всем.** Канон
|
||||
допускает проект без него, и там из двух домов остаётся один — история git.
|
||||
Связного перечня достигнутого у такого проекта не будет, и запись журнала
|
||||
версий говорит об этом прямо: нужен — сохрани сам, до удаления файла.
|
||||
|
||||
**Р239. Стадия проекта — новая ось: `build` и `support`.** Решает она **что
|
||||
значит порядок строк беклога**: на стройке зависимость («раньше нельзя»), на
|
||||
доработке важность («раньше лучше»). Из этого выведено остальное — сколько у
|
||||
@@ -68,12 +104,12 @@
|
||||
прочитать индекс** — переставить строку значит на стройке сломать план, а на
|
||||
доработке принять решение о важности.
|
||||
|
||||
**Р242. Переход стадии — команда, а не правка конфига.** `tasks.py stage
|
||||
support` переносит остаток беклога в первую новую секцию, правит «Категорию» в
|
||||
файлах и говорит, что порядок с этого момента значит другое. Датой перехода
|
||||
служит коммит: отдельного журнала ради одной строки не заводится. **Запретить
|
||||
переход раньше времени скрипт не берётся** — «приложение построено» решает
|
||||
человек, а не счётчик строк; `check` лишь напоминает о пустом беклоге стройки.
|
||||
**Р242. Переход стадии — команда, а не правка конфига.** `tasks.py stage`
|
||||
переписывает ключ конфига и **шапку беклога**, где и объявлен смысл порядка
|
||||
строк. Датой перехода служит коммит: отдельного журнала ради одной строки не
|
||||
заводится. **Запретить переход раньше времени скрипт не берётся** — «приложение
|
||||
построено» решает человек, а не счётчик строк; `check` лишь напоминает о пустом
|
||||
беклоге стройки.
|
||||
|
||||
**Р243. Русское имя стадии — «доработка», а не «поддержка».** Слово «поддержка»
|
||||
уже запрещено домом [shared/operations.md](../av-dev/shared/operations.md) как
|
||||
@@ -81,6 +117,15 @@ support` переносит остаток беклога в первую нов
|
||||
значение сделало бы его окончательно нечитаемым. Английское имя осталось
|
||||
`support` — оно в идентификаторе, а идентификатор и есть дом.
|
||||
|
||||
**Р244. Объявление стадии и её смена — разные операции, и различает их факт, а
|
||||
не флаг.** Была стадия названа раньше или нет, скрипт знает сам. Объявление
|
||||
**беклога не трогает вовсе**: оно называет то, что уже верно, и переразметить
|
||||
при этом чужие полки значило бы подменить ответ вопросом о нём. Смена трогает
|
||||
шапку и конфиг, а состав секций — только если об этом попросили явно
|
||||
(`--sections`). Первая редакция команды сливала полки в умолчание при любом
|
||||
вызове, и запись журнала версий, велевшая объявить стадию, тем самым молча
|
||||
теряла у проекта лишние полки.
|
||||
|
||||
## Что из этого следует
|
||||
|
||||
**С228. Груминг стал операцией одной стадии.** На стройке оба его вопроса
|
||||
@@ -114,3 +159,22 @@ support` переносит остаток беклога в первую нов
|
||||
нельзя. Заодно нумерованные шаги источника перестали быть кандидатами в цели и
|
||||
стали **порядком записей**: номер источника — единственное место, где чужая
|
||||
раскладка называет зависимость.
|
||||
|
||||
**С234. Абзац, который читают вместо документации, обязан быть проверяемым.**
|
||||
Шапка беклога объявляет стадию и смысл порядка строк, и первая редакция команды
|
||||
её не трогала: файл продолжал утверждать прежнее, пока конфиг говорил новое.
|
||||
Отсюда разметка `<!-- стадия -->` — не украшение, а то, что делает расхождение
|
||||
шапки с конфигом обычным дрейфом: `check` его называет, `check --fix` правит.
|
||||
|
||||
**С235. Упразднение адреса регистрируется у владельца перечня.** `tasks/ROADMAP.md`
|
||||
не попал в карту упразднённого, и гейтовый шаг, заведённый ровно затем, чтобы
|
||||
ловить протухшие адреса, молчал про тот адрес, который упразднили в том же
|
||||
коммите. Перечень упразднённого теперь есть у обоих владельцев раскладки, а не
|
||||
только у канона.
|
||||
|
||||
**С236. Отказ по недостающей строке индекса запирал запись навсегда.** `edit`,
|
||||
`close` и `reopen` требовали строку, которой у пережившей упразднение индекса
|
||||
записи нет и взяться неоткуда: восстановить её нельзя, пока не сменишь тип, а
|
||||
тип не сменить, пока нет строки. Все три теперь заводят или пропускают строку
|
||||
сами и говорят об этом. Правило осталось прежним: позицию назначает человек, и
|
||||
машинная встаёт в конец.
|
||||
|
||||
+2
-2
@@ -6,8 +6,8 @@
|
||||
Три сквозные нумерации, и они не пересекаются:
|
||||
|
||||
- **Т** — требование: вход, который обязан быть удовлетворён. Живут здесь, ниже.
|
||||
- **Р** — решение: что согласовано и почему. Р1–Р243 по темам в порядке журнала.
|
||||
- **С** — следствие: что из решения вытекает. С1–С233, тоже сквозным счётом.
|
||||
- **Р** — решение: что согласовано и почему. Р1–Р244 по темам в порядке журнала.
|
||||
- **С** — следствие: что из решения вытекает. С1–С236, тоже сквозным счётом.
|
||||
|
||||
Номер закреплён за записью навсегда: журнал описывает прошлые состояния и задним
|
||||
числом не переписывается. Отсюда и разнобой формы — ранние темы держат решения
|
||||
|
||||
Reference in New Issue
Block a user