журнал решений: тема 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 заводил её потому, что
|
**Р238. Секция `Готово` удалена, а не перенесена.** Р77 заводил её потому, что
|
||||||
роадмап иначе показывал только «что осталось». Довод верен ровно для роадмапа: у
|
роадмап иначе показывал только «что осталось». Довод верен ровно для роадмапа: у
|
||||||
@@ -41,6 +72,11 @@
|
|||||||
`git log` индекса, где закрытие лежит отдельным коммитом учёта. Третий дом
|
`git log` индекса, где закрытие лежит отдельным коммитом учёта. Третий дом
|
||||||
списком строк был бы дублем, который никто не сверяет.
|
списком строк был бы дублем, который никто не сверяет.
|
||||||
|
|
||||||
|
**Оговорка, без которой довод неполон: OpenSpec обязателен не всем.** Канон
|
||||||
|
допускает проект без него, и там из двух домов остаётся один — история git.
|
||||||
|
Связного перечня достигнутого у такого проекта не будет, и запись журнала
|
||||||
|
версий говорит об этом прямо: нужен — сохрани сам, до удаления файла.
|
||||||
|
|
||||||
**Р239. Стадия проекта — новая ось: `build` и `support`.** Решает она **что
|
**Р239. Стадия проекта — новая ось: `build` и `support`.** Решает она **что
|
||||||
значит порядок строк беклога**: на стройке зависимость («раньше нельзя»), на
|
значит порядок строк беклога**: на стройке зависимость («раньше нельзя»), на
|
||||||
доработке важность («раньше лучше»). Из этого выведено остальное — сколько у
|
доработке важность («раньше лучше»). Из этого выведено остальное — сколько у
|
||||||
@@ -68,12 +104,12 @@
|
|||||||
прочитать индекс** — переставить строку значит на стройке сломать план, а на
|
прочитать индекс** — переставить строку значит на стройке сломать план, а на
|
||||||
доработке принять решение о важности.
|
доработке принять решение о важности.
|
||||||
|
|
||||||
**Р242. Переход стадии — команда, а не правка конфига.** `tasks.py stage
|
**Р242. Переход стадии — команда, а не правка конфига.** `tasks.py stage`
|
||||||
support` переносит остаток беклога в первую новую секцию, правит «Категорию» в
|
переписывает ключ конфига и **шапку беклога**, где и объявлен смысл порядка
|
||||||
файлах и говорит, что порядок с этого момента значит другое. Датой перехода
|
строк. Датой перехода служит коммит: отдельного журнала ради одной строки не
|
||||||
служит коммит: отдельного журнала ради одной строки не заводится. **Запретить
|
заводится. **Запретить переход раньше времени скрипт не берётся** — «приложение
|
||||||
переход раньше времени скрипт не берётся** — «приложение построено» решает
|
построено» решает человек, а не счётчик строк; `check` лишь напоминает о пустом
|
||||||
человек, а не счётчик строк; `check` лишь напоминает о пустом беклоге стройки.
|
беклоге стройки.
|
||||||
|
|
||||||
**Р243. Русское имя стадии — «доработка», а не «поддержка».** Слово «поддержка»
|
**Р243. Русское имя стадии — «доработка», а не «поддержка».** Слово «поддержка»
|
||||||
уже запрещено домом [shared/operations.md](../av-dev/shared/operations.md) как
|
уже запрещено домом [shared/operations.md](../av-dev/shared/operations.md) как
|
||||||
@@ -81,6 +117,15 @@ support` переносит остаток беклога в первую нов
|
|||||||
значение сделало бы его окончательно нечитаемым. Английское имя осталось
|
значение сделало бы его окончательно нечитаемым. Английское имя осталось
|
||||||
`support` — оно в идентификаторе, а идентификатор и есть дом.
|
`support` — оно в идентификаторе, а идентификатор и есть дом.
|
||||||
|
|
||||||
|
**Р244. Объявление стадии и её смена — разные операции, и различает их факт, а
|
||||||
|
не флаг.** Была стадия названа раньше или нет, скрипт знает сам. Объявление
|
||||||
|
**беклога не трогает вовсе**: оно называет то, что уже верно, и переразметить
|
||||||
|
при этом чужие полки значило бы подменить ответ вопросом о нём. Смена трогает
|
||||||
|
шапку и конфиг, а состав секций — только если об этом попросили явно
|
||||||
|
(`--sections`). Первая редакция команды сливала полки в умолчание при любом
|
||||||
|
вызове, и запись журнала версий, велевшая объявить стадию, тем самым молча
|
||||||
|
теряла у проекта лишние полки.
|
||||||
|
|
||||||
## Что из этого следует
|
## Что из этого следует
|
||||||
|
|
||||||
**С228. Груминг стал операцией одной стадии.** На стройке оба его вопроса
|
**С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–Р244 по темам в порядке журнала.
|
||||||
- **С** — следствие: что из решения вытекает. С1–С233, тоже сквозным счётом.
|
- **С** — следствие: что из решения вытекает. С1–С236, тоже сквозным счётом.
|
||||||
|
|
||||||
Номер закреплён за записью навсегда: журнал описывает прошлые состояния и задним
|
Номер закреплён за записью навсегда: журнал описывает прошлые состояния и задним
|
||||||
числом не переписывается. Отсюда и разнобой формы — ранние темы держат решения
|
числом не переписывается. Отсюда и разнобой формы — ранние темы держат решения
|
||||||
|
|||||||
Reference in New Issue
Block a user