diff --git a/REMAINING.md b/REMAINING.md index 349f8ba..320f928 100644 --- a/REMAINING.md +++ b/REMAINING.md @@ -121,10 +121,14 @@ check` сверяет версию, но не то, что миграционн Граница объявляется вслух в каждом отчёте — это единственная защита от «соблюдено» на проекте с тремя лишними файлами. -**Приёмщик и исполнитель совпали.** Граница «пайплайн не закрывает задачу» снята -сознательно (решение P); три защиты из раздела «Стимулы» держатся теперь текстом, -а не механикой. Реальные опоры — сохранённый отчёт триажа, `SPRINT.md` под git и -`reopen`. Это записано в самом скилле, а не спрятано. +**Приёмщик и исполнитель совпали, и опор стало меньше.** Граница «пайплайн не +закрывает задачу» снята сознательно (решение P); защиты держатся текстом, а не +механикой. Реальных опор было три, осталось две: сохранённый отчёт триажа и +`reopen` (индексы под git показывают закрытие, потому что оно коммитится +отдельным коммитом учёта). Третья — приёмка шагом сессии — ушла вместе со +спринтами: у неё больше **нет момента**, и происходит она только тогда, когда +что-то бросилось в глаза на груминге. Это записано в самих скиллах, а не +спрятано. **Копия правила в шаблонах проекта.** `adr/README.md` и `review.md` уезжают в репозиторий и обязаны там что-то говорить, поэтому правило канона в них diff --git a/TODO.md b/TODO.md index 02c25ca..195cca5 100644 --- a/TODO.md +++ b/TODO.md @@ -71,6 +71,11 @@ сам разбор. Наблюдение к первому прогону: **не выродился ли шаг 4 в «оставить как есть»** — признак тот, что доклад не называет ни одного движения с доводом +- [ ] `av-dev-docs:canon` больше не имеет момента для двух своих агентов. + `doc-consistency` и `doc-code-drift` звались шагом сессии раз в спринт; + сессии нет, груминг их звать не вправе (чужой плагин), и на живом проекте + их теперь не зовёт **никто**, кроме `adopt` и `upgrade`. Момент называет + их владелец — решить, какой ## 3. Калибровка — блокирует переезд jellybit diff --git a/av-dev-code/skills/resolve/SKILL.md b/av-dev-code/skills/resolve/SKILL.md index 0b19681..b40abd5 100644 --- a/av-dev-code/skills/resolve/SKILL.md +++ b/av-dev-code/skills/resolve/SKILL.md @@ -79,15 +79,21 @@ description: "Решить одну задачу от постановки до Ничего из этого не задано — попроси у вызывающего и остановись; сам в беклог не лезь и приоритеты не интерпретируй: что делать дальше, решает не этот скилл. -**Запись, не готовая к работе, в работу не берётся.** У типа `research` это -проверяемо и потому обязательно: нет непустого раздела **«Вопрос»** — это не -разведка, а сырьё, и его сперва доводят до вопроса. Скажи это исходом и назови, -чего не хватает; штурмовать сырьё за автора — не работа этого скилла. +**Запись из каталога сперва проверяется на готовность, и проверяет её машина.** +Вызови Skill `av-dev-tasks:tasks` и попроси прогнать `ready <слаг>`: он смотрит +тип, цель у `feature`, пустой ли раздел вопросов и собраны ли разделы схемы +типа. Судить это глазами нельзя — ровно тот случай, где машина дешевле и точнее, +а цена ошибки отложенная: недостающие критерии приёмки обнаружатся на приёмке, +когда сверять уже не с чем. -У остальных типов схему держит `av-dev-tasks` (обязательные разделы, не меньше -двух критериев приёмки). Прочитай запись и, если видно, что схема не выполнена, -скажи это строкой — но работу не останавливай: у типов действия пробел лечится -по ходу, а у разведки без вопроса лечить нечего. +**`ready` отказал — это исход, а не препятствие для тебя.** Скажи, чего не +хватает, и остановись: дописывать чужую запись за автора не твоя работа, а у +сырья (`research` без раздела «Вопрос») и дописывать нечего — там сперва нужен +вопрос. Исход — «не доведена», с названной причиной. + +Плагина `av-dev-tasks` в проекте нет или задача пришла текстом — прогонять +нечего. Тогда прочитай постановку сам и скажи строкой, что готовность машиной не +проверялась; работу при этом не останавливай. ## Две ветки diff --git a/av-dev-docs/skills/canon/references/canon.md b/av-dev-docs/skills/canon/references/canon.md index b2e85c0..b234e88 100644 --- a/av-dev-docs/skills/canon/references/canon.md +++ b/av-dev-docs/skills/canon/references/canon.md @@ -393,10 +393,10 @@ kebab-case.** Причина не эстетическая: имя файла с и второй её экземпляр разошёлся бы с первым (он и разошёлся: канон успел объявить цель у `fix` запрещённой, хотя она там необязательна). -Схема требуется **к взятию в спринт**, а не к заведению: беклог пополняется чаще, +Схема требуется **к взятию в работу**, а не к заведению: беклог пополняется чаще, чем разбирается, и требование на входе выгоняло бы в заметки то, что должно лежать задачей. Запись, не собравшая разделы своего типа, — законное состояние -беклога; невзятой её делает `sprint take`. +беклога; невзятой её делает `tasks.py ready`. Отдельного типа для незаполненной записи нет: «ещё не описано» — состояние, а не род работы, и называется оно **`research` без раздела «Вопрос»**. Такая запись в diff --git a/scripts/frontmatter.py b/scripts/frontmatter.py index 6d5b567..1a7ca0c 100644 --- a/scripts/frontmatter.py +++ b/scripts/frontmatter.py @@ -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"}