хвосты после снятия спринтов: четыре штуки
resolve судил готовность записи глазами — текст писался до того, как появилась команда ready. Теперь зовёт её через av-dev-tasks:tasks, а отказ читает исходом «не доведена». Это ровно тот случай, где машина дешевле и точнее, а цена ошибки отложенная. canon.md всё ещё говорил, что невзятой запись делает sprint take. REMAINING перечислял три опоры против совпадения приёмщика с исполнителем, включая SPRINT.md под git. Опор осталось две, и третья не заменилась, а исчезла: у приёмки больше нет момента. Записано как есть. frontmatter.py: устаревший путь review-pipeline/SKILL.md в комментарии. В план добавлена дыра, которую открыло снятие сессии: двух агентов канона на живом проекте больше не зовёт никто, кроме adopt и upgrade.
This commit is contained in:
+8
-4
@@ -121,10 +121,14 @@ check` сверяет версию, но не то, что миграционн
|
||||
Граница объявляется вслух в каждом отчёте — это единственная защита от
|
||||
«соблюдено» на проекте с тремя лишними файлами.
|
||||
|
||||
**Приёмщик и исполнитель совпали.** Граница «пайплайн не закрывает задачу» снята
|
||||
сознательно (решение P); три защиты из раздела «Стимулы» держатся теперь текстом,
|
||||
а не механикой. Реальные опоры — сохранённый отчёт триажа, `SPRINT.md` под git и
|
||||
`reopen`. Это записано в самом скилле, а не спрятано.
|
||||
**Приёмщик и исполнитель совпали, и опор стало меньше.** Граница «пайплайн не
|
||||
закрывает задачу» снята сознательно (решение P); защиты держатся текстом, а не
|
||||
механикой. Реальных опор было три, осталось две: сохранённый отчёт триажа и
|
||||
`reopen` (индексы под git показывают закрытие, потому что оно коммитится
|
||||
отдельным коммитом учёта). Третья — приёмка шагом сессии — ушла вместе со
|
||||
спринтами: у неё больше **нет момента**, и происходит она только тогда, когда
|
||||
что-то бросилось в глаза на груминге. Это записано в самих скиллах, а не
|
||||
спрятано.
|
||||
|
||||
**Копия правила в шаблонах проекта.** `adr/README.md` и `review.md` уезжают в
|
||||
репозиторий и обязаны там что-то говорить, поэтому правило канона в них
|
||||
|
||||
@@ -71,6 +71,11 @@
|
||||
сам разбор. Наблюдение к первому прогону: **не выродился ли шаг 4 в
|
||||
«оставить как есть»** — признак тот, что доклад не называет ни одного
|
||||
движения с доводом
|
||||
- [ ] `av-dev-docs:canon` больше не имеет момента для двух своих агентов.
|
||||
`doc-consistency` и `doc-code-drift` звались шагом сессии раз в спринт;
|
||||
сессии нет, груминг их звать не вправе (чужой плагин), и на живом проекте
|
||||
их теперь не зовёт **никто**, кроме `adopt` и `upgrade`. Момент называет
|
||||
их владелец — решить, какой
|
||||
|
||||
## 3. Калибровка — блокирует переезд jellybit
|
||||
|
||||
|
||||
@@ -79,15 +79,21 @@ description: "Решить одну задачу от постановки до
|
||||
Ничего из этого не задано — попроси у вызывающего и остановись; сам в беклог не
|
||||
лезь и приоритеты не интерпретируй: что делать дальше, решает не этот скилл.
|
||||
|
||||
**Запись, не готовая к работе, в работу не берётся.** У типа `research` это
|
||||
проверяемо и потому обязательно: нет непустого раздела **«Вопрос»** — это не
|
||||
разведка, а сырьё, и его сперва доводят до вопроса. Скажи это исходом и назови,
|
||||
чего не хватает; штурмовать сырьё за автора — не работа этого скилла.
|
||||
**Запись из каталога сперва проверяется на готовность, и проверяет её машина.**
|
||||
Вызови Skill `av-dev-tasks:tasks` и попроси прогнать `ready <слаг>`: он смотрит
|
||||
тип, цель у `feature`, пустой ли раздел вопросов и собраны ли разделы схемы
|
||||
типа. Судить это глазами нельзя — ровно тот случай, где машина дешевле и точнее,
|
||||
а цена ошибки отложенная: недостающие критерии приёмки обнаружатся на приёмке,
|
||||
когда сверять уже не с чем.
|
||||
|
||||
У остальных типов схему держит `av-dev-tasks` (обязательные разделы, не меньше
|
||||
двух критериев приёмки). Прочитай запись и, если видно, что схема не выполнена,
|
||||
скажи это строкой — но работу не останавливай: у типов действия пробел лечится
|
||||
по ходу, а у разведки без вопроса лечить нечего.
|
||||
**`ready` отказал — это исход, а не препятствие для тебя.** Скажи, чего не
|
||||
хватает, и остановись: дописывать чужую запись за автора не твоя работа, а у
|
||||
сырья (`research` без раздела «Вопрос») и дописывать нечего — там сперва нужен
|
||||
вопрос. Исход — «не доведена», с названной причиной.
|
||||
|
||||
Плагина `av-dev-tasks` в проекте нет или задача пришла текстом — прогонять
|
||||
нечего. Тогда прочитай постановку сам и скажи строкой, что готовность машиной не
|
||||
проверялась; работу при этом не останавливай.
|
||||
|
||||
## Две ветки
|
||||
|
||||
|
||||
@@ -393,10 +393,10 @@ kebab-case.** Причина не эстетическая: имя файла с
|
||||
и второй её экземпляр разошёлся бы с первым (он и разошёлся: канон успел
|
||||
объявить цель у `fix` запрещённой, хотя она там необязательна).
|
||||
|
||||
Схема требуется **к взятию в спринт**, а не к заведению: беклог пополняется чаще,
|
||||
Схема требуется **к взятию в работу**, а не к заведению: беклог пополняется чаще,
|
||||
чем разбирается, и требование на входе выгоняло бы в заметки то, что должно
|
||||
лежать задачей. Запись, не собравшая разделы своего типа, — законное состояние
|
||||
беклога; невзятой её делает `sprint take`.
|
||||
беклога; невзятой её делает `tasks.py ready`.
|
||||
|
||||
Отдельного типа для незаполненной записи нет: «ещё не описано» — состояние, а не
|
||||
род работы, и называется оно **`research` без раздела «Вопрос»**. Такая запись в
|
||||
|
||||
@@ -42,7 +42,7 @@ from pathlib import Path
|
||||
|
||||
OK, DRIFT, USAGE, ENV, INTERNAL = 0, 1, 2, 3, 4
|
||||
|
||||
# Дом раскладки — «Модель по проходу» в review-pipeline/SKILL.md; здесь её
|
||||
# Дом раскладки — «Модель по проходу» в av-dev-code/skills/review/SKILL.md; здесь её
|
||||
# механизация. Порядок цветов — порядок стоимости прогона.
|
||||
PALETTE = {"sonnet": "green", "opus": "yellow"}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user