журнал решений: тема 68 — постановка текстом

Р245–Р252 и С237–С240: почему форм постановки две и почему форма — не
четвёртый сценарий; почему отпадают ровно ready и закрытие; почему запись
не заводится задним числом; почему названный вслух до работы тип
работает признаком, а названный после — уже нет; где решению разрешено
предложить себе критерии приёмки и почему обслуживанию — нет.
This commit is contained in:
av
2026-08-13 19:20:36 +03:00
parent 94fa66b262
commit 77cb967d7b
2 changed files with 96 additions and 2 deletions
+93
View File
@@ -0,0 +1,93 @@
# 68. Постановка текстом — вторая полноправная форма входа (2026-08-13)
## Что было
`code-resolve` объявлял вход широким: «путь к файлу, имя файла, слаг или просто
текст». Дальше текст жил на правах исключения. Разведка своё исключение
проработала — вопрос формулируется самим скиллом, адрес ответа назначается им
же, и оба показываются в первой реплике. У решения и обслуживания не было
ничего: шаг «прочитать задачу» читал разделы записи, шаг закрытия закрывал
запись, признак обслуживания опирался на тип, объявленный автором записи, а
критерии приёмки приходили «от проекта». Что со всем этим делать, когда записи
нет, не говорилось нигде, кроме одной строки про непрогнанный `ready`.
Владелец назвал случай: задачу часто нужно решить прямо по описанию в разговоре,
без файла в каталоге, — так же, как её берёт `opsx:propose`, которому размеченная
запись тоже не нужна.
## Решено
**Р245. Форм постановки две, и они равноправны: запись каталога и текст.** Это
ось, а не оговорка о вырожденном случае: по ней ветвятся три вещи в трёх местах
скилла. Дом перечня осей — `av-dev/shared/axes.md`, и строка там заведена вместе
с этим решением.
**Р246. Форма постановки не влияет ни на сценарий, ни на метку, ни на глубину.**
Развилка «есть ли очевидный способ» и «меняется ли спека» у обеих форм общая,
текстом идут все три сценария. Иначе текст стал бы четвёртым сценарием — коротким
путём, выбираемым по форме вызова, то есть ровно той лазейкой, против которой
написан весь [Р223](63-maintenance-third-scenario.md).
**Р247. Отпадают ровно те шаги, у которых пропал предмет.** `ready` гонять
нечего — записи нет; закрывать нечего — записи нет. Ни один шаг, у которого
предмет остался, не выпадает: гейт, ревью, синк, коммит и чекпоинт идут как
обычно. Тот же приём, которым сложено обслуживание ([Р222](63-maintenance-third-scenario.md)
и соседи): шаг без предмета выпадает, шаг с предметом — никогда.
**Р248. Запись задним числом не заводится.** Ни перед работой, ни ради того,
чтобы было что закрыть. Учёт получил бы задачу, которой никто не ставил, и
закрытие без единой минуты открытого состояния; граница «скилл беклогом не
владеет» действует и здесь. Работа не уместилась в прогон или должна пережить
разговор — скилл говорит это строкой и предлагает `av-dev:task-track`.
**Р249. Понимание постановки показывается первой репликой.** Рядом с названным
сценарием, одной-двумя фразами: что считается предметом работы и где проходит
граница. Запись толкуется по разделам, текст — молча, и расходится он с замыслом
там, где его никто не показал. Обоснование то же, что у названного вслух
сценария: поправка стоит одной фразы, пока работа не пошла.
**Р250. Тип у текстовой постановки называет исполнитель, и это делает его
признаком только вслух и только до работы.** Связка обслуживания стоит на двух
источниках — тип от автора, отсутствие дельт от исполнителя ([Р222](63-maintenance-third-scenario.md)),
— а текст типа не несёт, и оба признака оказываются в одних руках. Разведённость
восстанавливается **местом**: тип и предмет объявляются до первой правки, когда
автор текста ещё в разговоре и опровергает их одной фразой. Названный после
работы тип — не признак, а объяснение уже сделанного: готовый дифф всегда
подтверждает тот тип, под который писался.
**Р251. Критерии приёмки исполнитель по-прежнему себе не проставляет, но у
решения появилось место их предложить.** Чекпоинт: предложенные там критерии
человек подтверждает или правит, и данными они становятся только после ответа. У
обслуживания такого места нет — чекпоинта нет вовсе, — и там отсутствие критериев
называется строкой доклада: приёмка идёт по докладу. Правило «критерии приходят
снаружи» не ослаблено ни там, ни там; ослаблением было бы молчаливое сочинение
себе оракулов.
**Р252. У обслуживания вместе с критериями текст не даёт и границ**, а раздел
«Затрагивает» у него не украшение: границы обслуживания лежат не в коде — конфиг,
версия зависимости, команда сборки, файл CI. Поэтому границы называются в той же
первой реплике, что и тип. Невидимая граница расползание не удержит, а
обслуживание расползается чаще прочих сценариев.
## Следствия
**С237. Стоп «нашлась дельта» получил третий вариант ответа — и не получил
третьего решения.** Решений по-прежнему два ([Р226](63-maintenance-third-scenario.md)),
но «переформулировать запись» у текстовой постановки переформулировывать нечего:
человек либо запускает следующий прогон тем же текстом, и тот пойдёт решением,
либо заводит запись через `av-dev:task-track`. Выбор между этими двумя — его, не
исполнителя, потому что заводить запись скилл не вправе — Р248 выше.
**С238. Похожая запись в беклоге не разыскивается.** Человек назвал работу
текстом — предмет прогона этот текст, а не строка индекса, которая на него
похожа. Замеченная по ходу называется строкой доклада и не закрывается:
закрытие — это приёмка, и поручали её не исполнителю.
**С239. У разведки отсутствие записи безопаснее, чем кажется, но ровно по одной
причине.** Её след — не код, а записанный по названному адресу ответ, и он уезжает
в коммит. Если ответ записать было некуда и он остался в докладе, от прогона не
осталось ничего — и это говорится прямо, а не строкой среди прочих.
**С240. Доклад называет форму постановки.** Пришла текстом — сказано, как она
понята, что `ready` не гонялся и что закрывать было нечего. Иначе пропуск двух
шагов неотличим от их молчаливого обхода на задаче, у которой запись была.
+3 -2
View File
@@ -6,8 +6,8 @@
Три сквозные нумерации, и они не пересекаются: Три сквозные нумерации, и они не пересекаются:
- **Т** — требование: вход, который обязан быть удовлетворён. Живут здесь, ниже. - **Т** — требование: вход, который обязан быть удовлетворён. Живут здесь, ниже.
- **Р** — решение: что согласовано и почему. Р1–Р244 по темам в порядке журнала. - **Р** — решение: что согласовано и почему. Р1–Р252 по темам в порядке журнала.
- **С** — следствие: что из решения вытекает. С1–С236, тоже сквозным счётом. - **С** — следствие: что из решения вытекает. С1–С240, тоже сквозным счётом.
Номер закреплён за записью навсегда: журнал описывает прошлые состояния и задним Номер закреплён за записью навсегда: журнал описывает прошлые состояния и задним
числом не переписывается. Отсюда и разнобой формы — ранние темы держат решения числом не переписывается. Отсюда и разнобой формы — ранние темы держат решения
@@ -119,3 +119,4 @@
| 65 | [Перечень осей получил дом; две оси жили без владельца](65-axes-registry-home.md) | 2026-08-13 | | 65 | [Перечень осей получил дом; две оси жили без владельца](65-axes-registry-home.md) | 2026-08-13 |
| 66 | [`doc-canon` → `canon`: скилл формы вышел из семейства документов](66-canon-without-prefix.md) | 2026-08-13 | | 66 | [`doc-canon` → `canon`: скилл формы вышел из семейства документов](66-canon-without-prefix.md) | 2026-08-13 |
| 67 | [Цель упразднена, у проекта появилась стадия](67-goal-removed-project-stages.md) | 2026-08-13 | | 67 | [Цель упразднена, у проекта появилась стадия](67-goal-removed-project-stages.md) | 2026-08-13 |
| 68 | [Постановка текстом — вторая полноправная форма входа](68-task-from-plain-text.md) | 2026-08-13 |