Files
dev-skills/av-dev/shared/axes.md
T
av 94fa66b262 resolve: постановку текстом взяли полноправным входом
Задачу часто нужно решить прямо по описанию в разговоре, без файла в
каталоге — так её берёт и opsx:propose. Скилл вход текстом объявлял, но
прорабатывала его одна разведка: у решения и обслуживания шаг «прочитать
задачу» читал разделы записи, шаг закрытия закрывал запись, признак
обслуживания опирался на объявленный автором тип, а критерии приходили
«от проекта».

Форм постановки теперь две, и они равноправны. Отпадают ровно те шаги, у
которых пропал предмет: ready гонять нечего, закрывать нечего. Ни один
шаг с предметом не выпал — гейт, ревью, синк, чекпоинт и коммит идут как
обычно, а сценарий, метку и глубину форма не выбирает.

Взамен пропавшего — названное вслух первой репликой: как понята
постановка, каким типом её считаешь и где проводишь границу. Человек,
написавший текст, сидит в этом же разговоре и поправляет одной фразой;
названный после работы тип не признак, а объяснение готового диффа.

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

Записи в каталог скилл по-прежнему не заводит: ни перед работой, ни
задним числом ради закрытия. Похожую строку беклога не разыскивает.

Перечень осей пополнен формой постановки: по ней ветвятся готовность,
источник типа и наличие закрытия.
2026-08-13 19:20:25 +03:00

12 KiB
Raw Blame History

Оси процесса

Это дом перечня, а не значений. Что означает каждое значение и как оно работает, знает владелец оси — здесь только сама ось, её дом и чего она не решает. Второй пересказ механики разошёлся бы с первым; перечень же нужен целиком и в одном месте, потому что вопрос «а не задаёт ли это метку» задают из скилла, который метку не ведёт.

Ось — это закрытый перечень значений, по которому что-то ветвится. Признак проверяемый, и он отсекает похожее: темы ревью и документы проекта — списки открытые, их пополняет проект, и перечень в плагине протух бы на первом же своём документе. Модель прохода — не ось, а цена прогона; её дом — «Модель по проходу» в code-review, механизация — frontmatter.py.

Перечень

Ось Значения Дом
стадия проекта build support task-track/SKILL.md, «Две стадии»
тип записи feature fix chore research task-track/SKILL.md, «Тип записи»
форма постановки запись каталога · текст code-resolve/SKILL.md, «Вход»
сценарий решение · обслуживание · разведка code-resolve/SKILL.md, «Развилка»
метка small medium large code-review/SKILL.md, «Метки»
режим прогона с меткой · без метки здесь, ниже
стадия ревью дизайн · код code-review/SKILL.md, «Ревью дизайна»
категория документа тема · источник темы · процессный canon/references/canon.md
severity находки critical major minor nit code-review/references/finding-contract.md
коды выхода 0 1 2 3 4 здесь, ниже

Две оси стоят домом здесь, и обе по одной причине: владельца у них нет. Коды выхода делят восемь скриптов и три скилла, режим прогона — конвейер, сценарий обслуживания и два устава.

Что на что влияет

Клетка называет место, где связка описана; сама связка живёт там.

Влияет На что Где описано
стадия проекта что значит порядок строк беклога: зависимость или важность task-track/SKILL.md, «Две стадии»
стадия проекта сколько у беклога секций, как его пополняют, применим ли груминг там же и task-groom/SKILL.md, «Груминг — операция доработки»
стадия проекта метку и глубину — не влияет, и это записано явно task-track/SKILL.md, «Тип записи»
стадия проекта тип записи — не влияет, и это записано явно task-track/SKILL.md, «Две стадии»
стадия проекта как серьёзность находки ложится в список task-track/references/from-review.md
стадия проекта где сценарии кладут свой исход и чем закрывают переходное состояние code-resolve/references/research.md, task-track/references/adopt.md
форма постановки проверку готовности, кто называет тип, есть ли шаг закрытия code-resolve/SKILL.md, «Постановка текстом»
форма постановки сценарий, метку и глубину — не влияет, и это записано явно там же: развилка у обеих форм общая
тип записи сценарий — предлагает, подтверждает предмет работы task-track/SKILL.md, «Тип записи»
тип записи метку и глубину — не влияет, и это записано явно там же
сценарий режим прогона: обслуживание идёт без метки code-resolve/references/maintain.md
метка состав проходов обеих стадий code-review/SKILL.md, «Метки»
метка глубину темы: против чего смотрят и как там же
режим прогона состав проходов и саму возможность запуска прохода code-review/SKILL.md, «Прогон без change»
категория документа заводит ли документ направление проверки canon.md, «Три категории»
severity что с находкой делают дальше code-review/SKILL.md, «Что происходит с находками»

Пять клеток пусты, и это сказано намеренно, а не забыто.

Категория документа × режим прогона. На прогоне с меткой своя тема проекта закрыта при любом значении: review-basics — приёмник проектных тем и при small, и при large, и при medium. На прогоне без метки план фиксирован сценарием — autotests, operations, conventions, — и своих тем проекта в нём нет. Значит, документ, заведённый проектом как тема, на обслуживании не смотрит никто, и строкой это нигде не называется.

Стадия проекта × метка. Изменение на стройке ничем не проще того же изменения на доработке: метку назначает разметка по факту изменения, и стадия в неё не входит. Заманчивая мысль «на стройке всё small, потому что приложения ещё нет» разбивается о первый же шаг, кладущий схему хранилища.

Стадия проекта × режим прогона и × стадия ревью. Не влияет ни на одну: режим выбирает сценарий, стадию ревью — наличие дизайна. Прогон обслуживания на стройке — обычное дело (первые шаги плана заводят гейт и сборку), и идёт он там так же, как на доработке.

Стадия проекта × категория документа, × коды выхода и × форма постановки. Не влияет: категория — свойство документа, коды — общий словарь скриптов, а форму постановки выбирает тот, кто зовёт скилл, и на стройке она такая же, как на доработке. Названо потому, что перечень объявлен полным, и клетка без ответа читается как забытая.

Режим прогона × severity. Триаж обязателен всегда, в том числе без метки. Но часть оснований critical — построенный путь к отказу, замер — добывается проходами, которые без метки не запускаются. Значит ли это, что critical на прогоне обслуживания не бывает, или что его основания там другие, не сказано.

Режим прогона

Прогон ревью идёт в одном из двух режимов, и режим — не глубина.

  • С меткой — обычный прогон по change: разметку сделал review-scope, состав обеих стадий выведен из метки.
  • Без метки — прогон сценария обслуживания: change нет, размечать нечего, план фиксирован и назван сценарием. Разметчик не запускается вовсе.

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

Режим правит не только состав, но и саму возможность запуска. Проход, у которого запуск задан меткой, без метки не имеет ответа на вопрос «запускаться ли» — и ответ ему даёт план сценария, а не умолчание.

Коды выхода

Коды выхода — общий словарь всех скриптов av-dev. Ветвись на коде, а не на тексте вывода.

Код Что случилось
0 сошлось
1 дрейф: рабочая ситуация, чинится
2 ошибка употребления: аргументы или нарушенное правило
3 окружение: не тот каталог, битый конфиг, нет инструмента
4 внутренний сбой — дефект скрипта, доложить

Различать 1 и 3 обязательно. «Дрейф» — рабочая ситуация, и чинится она правкой предмета; «окружение» — нерабочая, и повтор той же командой не поможет. Одинаковая реакция на них неверна в обоих случаях.

Словарь был объявлен «общим» в одиннадцати местах, и каждое объявление перечисляло свой набор соседей: «тот же, что у tasks.py», «тот же, что у tasks.py, docs.py и copies.py», «общий словарь скриптов av-dev». Ни одно из них не было домом, все — списки по памяти. Отсюда дом здесь: у словаря восемь скриптов-потребителей и ни одного владельца.