Files
dev-skills/decisions/61-research-and-solve-two-scenarios.md
T
av bf6a173115 журнал решений: разложен по теме на файл, метки решений стали номерами
- DECISIONS.md (4040 строк, 65 тем) → decisions/, файл на тему плюс указатель;
- буквенные метки решений заменены сквозными Р1–Р234, следствия получили
  префикс С при прежних номерах: схема букв выродилась до пятибуквенных и
  сломалась — `АЕАКЛ` была занята и темой 53, и темой 65;
- 42 перекрёстные ссылки переписаны под новые номера и стали живыми; где номер
  означал тему, а слово стояло «решение», формулировка исправлена.
2026-08-13 12:40:56 +03:00

6.5 KiB
Raw Blame History

61. Разведка и решение — два сценария одного скилла, а не два скилла (2026-08-11)

Скилл resolve вёл обе работы одной цепочкой: у исследовательской задачи были свои три шага и свой чекпоинт вариантов, после которого она вливалась в общую ветку и продолжалась кодом. Разведка тем самым была не работой со своим исходом, а прологом к коду: её ответ оседал в design.md будущего change, и разведка, кончившаяся знанием, документов проекта не касалась вовсе.

Сперва я развёл их на два скилла — resolve и research, с исходом и стопом с обеих сторон. Через час работы стало видно, чем это плохо: классифицировать задачу приходится человеку до вызова, а «есть ли у неё очевидный способ решения» видно только после чтения записи. Разделение переносило самое трудное суждение туда, где для него меньше всего данных.

Р213. Точка входа одна, сценария два, выбирает сценарий скилл. Оба сценария живут справочниками — references/solve.md и references/research.md, — а в SKILL.md остались вход, развилка и правила, не зависящие от сценария. Тем же приёмом сложен скилл задач: общая часть в SKILL.md, алгоритм каждого типа в references/task-*.md.

Р214. Порознь и одинаково — это отдельное решение. Сперва разведка уехала в справочник, а решение осталось в теле скилла: так вышло само, потому что решение там уже лежало. Асимметрия читается как старшинство — сценарий в теле выглядит основным, а сценарий в справочнике оговоркой, — и удерживает шестисотстрочный файл, который грузится целиком даже ради разведки.

Р215. Что у разведки появилось своего. Исход — знание, а не пролог: ответ уезжает в документы канона (av-dev-docs:docs), задачи заводятся и уточняются (av-dev-tasks:tasks), написанное коммитится, запись закрывается. Кода сценарий не пишет вовсе. OpenSpec ему не нужен — это единственное место скилла, где тот не предпосылка.

Р216. Переход между сценариями — событие с названным исходом. Решение, упёршееся в незнание способа, останавливается; разведка, выбравшая способ, доводится до конца и не переходит в код тем же прогоном — следующий запускает человек. Причина не в церемонии: разведка только что переписала постановку, и брать её в работу тем же заходом значит решать за человека, стоит ли делать это сейчас, — а это приоритет.

Р217. Канон пришлось тронуть, и это версия 14. ADR цитировал только архивный design.md. У решения, принятого разведкой, design.md нет по построению — change по нему не будет никогда, — и такое решение либо не попадало в adr/ вовсе, либо попадало сочинённым заново. Теперь источников два, и оба называются в записи.

Что из этого следует

С204. Разделять работы стоит по моменту для человека, а не по роду работы. У разведки и решения он разный: варианты обсуждают до первого требования, объяснение — после ревью дизайна. Всё остальное различие (пишем код или нет) из этого уже следует.

С205. Точку входа не разделяют по признаку, который виден только внутри. Классификация, требующая прочитать запись, не может быть условием вызова: человек либо ошибётся, либо прочитает запись сам — и тогда скилл ему не нужен.

С206. Сценарий в справочнике дешевле скилла. Скилл стоит описания, границ, копии правил и своего места в графе вызовов; справочник наследует их у хозяина. Заводить второй скилл имеет смысл, когда его зовут отдельно, а не когда он просто длинный.

С207. Равные сценарии лежат одинаково. Оставить один в теле скилла, а второй вынести — значит назначить первому старшинство, которого в замысле нет. Читатель это старшинство считывает, даже когда о нём не сказано ни слова.

С208. Работа без своего исхода вырождается в пролог. Разведка, кончавшаяся переходом к коду, не имела причины писать в документы: её ответ и так уезжал в design.md. Дом для исхода — вот что делает работу работой.