Детальная спецификация каждого скилла экосистемы: режим, задача, механика.
Обзор жизненного цикла и как скиллы сцепляются — в README.md;
принципы (Modes, Structured CoT, Grounding) — в
context-engineering.md.
Скиллы разделяются по стилю написания (детали стиля — в
../contributing/skill-writing.md):
- Процедурные (Procedural) — рутинные задачи с понятным концом (
/work,/step-done,/prime,/storyteller). Чистый императив: чёткий чек-листcase → action, модель исполняет шаги. - Judgment (требующие рассуждения) — планирование, обсуждение архитектуры,
capture (
/grill,/blueprint,/mem). Structured Chain-of-Thought: скилл задаёт когнитивную траекторию (назови допущения → опровергни/подтверди через поиск → интегрируй → предложи).
Атомарность (The Linux Way): скиллы не объединяются в комбайны, граница скилла = граница фазы. Модель физически не может убежать вперёд — текущий скилл не несёт инструкций следующей фазы.
Помимо Mode (Ask/Architect/Code/bespoke), скилл исполнения несёт ось interaction mode — может ли он блокироваться вопросом к человеку. Она не меняет, что скилл производит, только может ли он остановиться и спросить.
- attended — скилл вправе остановиться и спросить, затем продолжить с ответа.
- autonomous — никогда не блокируется: берёт лучший приемлемый дефолт и логирует, а при отсутствии дефолта завершается своим терминальным артефактом (вердикт, стоп, pointer-возврат), а не ожиданием человека.
Канал, а не флаг. Inline-вызов пользователем = attended (канал к человеку открыт). Спавн субагентом = всегда autonomous (возврат идёт родителю, не человеку — блокирующий вопрос некому ответить).
Реальная развилка attended↔autonomous — только у /work и /finalize (есть
ветка вопроса к человеку). У /validate//diagnose//step-done//prepare
слайс поведенчески no-op: их единственный выход — терминальный артефакт
(вердикт/файл-отчёт/стоп), они уже abort-safe. Планировочные
(/grill//storyteller//blueprint//prime) attended по природе — автономная
ветка там недостижима. /autopilot — вершина трека, держит канал к человеку и
свой run-режим (см. его спеку).
- Режим: — (System).
- Задача: подготовить рабочую среду сессии.
- Механика:
- Читает базовые спецификации (корень
specs/, без подпапок) и индексный файл единственногоactive-плана (если есть). Планыdraft(бэклог) иcompletedне грузятся. - Загружает доменную карту (
list_entities). - Не задаёт вопросов, не начинает обсуждение.
- Читает базовые спецификации (корень
- Режим: Ask Mode (сдвиг) → Architect Mode.
- Задача: утвердить архитектурный подход до написания плана. Файлов не пишет.
- Механика (Structured CoT):
- Задаёт вопросы по одному (Ask Mode).
- Shift Detection: как только обсуждение касается технической реализации (паттерны, таблицы, механизмы), модель переходит в Architect Mode.
- Memory Grounding: обязателен
searchпо затронутым сущностям; двухисточниковый — память и управляющая спека области, если глубже загруженного на/prime. - Synthesis Form: предлагая решение, модель сплетает находку с нарративом:
«Проверил
entity:X; согласно ADR[[id]]соблюдаем инвариант Y, поэтому предлагаю Z».
- Режим: Architect Mode.
- Задача: сконвертировать уже обсуждённые и согласованные требования (обычно
после
/grill) в формализованную System-Aware User Story. - Механика:
- Не ищет контекст и не задаёт вопросов — контекст уже загружен/обсуждён.
- Анализирует текущий контекст диалога.
- Создаёт
<id>-<slug>.mdвspecs/user-stories/(короткий id, свободная подпапка). - Строго соблюдает формат: каждый шаг несёт
action(наблюдаемое действие) иsystem_reaction(какие таблицы/джобы/сервисы затронуты). Формат и шаблон —../consumer-guide/user-stories.md.
- Режим: Architect Mode.
- Задача: оформить договорённости из
/grillв файлы планаplans/либо применить более поздний итог обсуждения к существующему плану. Траектория ветвится по одному сигналу — наличию@<path>. - Диспетчеризация:
- нет
@<path>→ создание нового плана. Сканирует все*-00-index.mdнаstatus: active: фокуса нет → новый планactive(берёт фокус); фокус есть → новый планdraft(бэклог, фокус не воруется). @<path>→ правка названного плана любого статуса;status:и закрытые[x]шаги не трогаются.- правка
draftпри отсутствии активного → после записи предложить перевести его вactive(подтверждение plain-text, prefill «да»).
- нет
- Механика:
- Финальный retrospective-чек (нет ли архитектурных антипаттернов).
- Обязателен
searchпо памяти для затрагиваемой области (особенно для нового «хвоста» при правке); Architecture Block в чат до записи — на правке это обоснование изменения плана относительно закрытых шагов, оно же ложится в## Отклонения. - Создание: генерирует
00-index.md(Цель, Контекст, блок## Groundingс двумя источниками —### Спецификациии### Память) иNN-step.mdна каждый этап (один этап = один осмысленный коммит). - Правка (use cases: расширение/урезание скоупа, «хвосты», ре-декомпозиция):
обновляет
00-index.md(шаги,Решения/Отклонения,Grounding), создаёт новыеNN-step.mdсо следующим свободнымNN, не ломая закрытые[x]шаги.
- Шаблоны индекса и step-файла —
../consumer-guide/formats.md.
- Декомпозиция — Tracer Bullets дефолт: этап = тонкий вертикальный слайс (микро-бэкенд + UI + E2E в одном коммите), а не слой; бэкенд-only этап — обоснованное исключение (инфраструктура, чистый алгоритм, миграция).
- Разметка этапа под автономный трек (заполняется при создании, питает
/autopilot):## Связанные истории—<id>System-Aware Stories, которые этап обязан удовлетворить (ссылка по id, путь не несущий).## Стратегия гейта— производна от историй, не свободный выбор: пусто →test(гейт по сырому выводу тестов); есть →e2eплюс указатель на механизм запуска приложения и севаprecondition.## Режим разработки— авторский выбор, три значения:standard(дефолт, он же пусто) — обычный поток;tdd— надстройка Red-Green-Refactor;ui— исследовательская вёрстка. Не производен от историй и независим от гейта (tdd-этап может иметьe2e-гейт).## Журнал проходови## Отложенные решения— оставляются стабами шаблона: ими владеет/autopilot.
- Режим: Reconnaissance (bespoke).
- Задача: собрать карту контекста текущего этапа (файлы, символы, заметки,
сущности) и записать её в
plans/<prefix>/run-<NN>.md, чтобы/workреализовывал, не переоткрывая территорию, и быстро возвращался в контекст после прерывания. Реализацию (HOW) не проектирует — это работа/work. - Дуальность: запуск пользователем (
/prepare) — инлайн в основном потоке (ручная подготовка); спавн субагентом из/work— делегированно (тяжёлая загрузка сгорает в одноразовом контексте). Скилл оркестрационно-нейтрален — спавн это работа вызывающего. - Механика (Structured CoT):
- Self-prime: резолв плана, индекс + файл шага, корень
specs/+RULES.md,list_entities. Назвать scope этапа одной строкой. - Назвать всю территорию-кандидатов из
## Groundingи## Затрагиваемые файлы / символы, не первые попавшиеся. - Пройти методично: anchored-поиск по узлам + full-text по симптому; ключевые файлы читать целиком, из полного чтения извлечь хинты.
- Вердикт релевантности по каждому кандидату — нужен/нет, почему, координаты (символы, строки). Без рецепта реализации.
- Валидация, реверс blind-spots: отдать карту читателю без контекста разведки → найти и закрыть слепые зоны; догадки отделить от проверенного.
- Валидация, достаточность: сверить карту с
## Цель шага,## Definition of done,## Подзадачи— каждый пункт DoD имеет координату. - Записать run-файл (+ компактное «Проверено и отброшено»).
- Презентовать супер-компактно: не дублировать файл, дать одну standout- находку — выбор лучшего и есть финальный self-check (ничего не выделяется → разведка поверхностна).
- Self-prime: резолв плана, индекс + файл шага, корень
- Мотивация (две морковки): спереди — полная карта, по которой исполнитель идёт прямо в HOW; сзади — неполная карта хуже, чем никакой: исполнитель жжёт контекст на доразведку, blind-spot всплывает сломанным инвариантом.
- Режим: Code Mode.
- Задача: исполнить первый незакрытый шаг плана.
- Механика:
- Читает
00-index.mdиNN-step.md. - Разведка: есть
run-<NN>.md→ использует; нет → оценивает этап: нетривиальный (дефолт) делегирует/prepare-субагенту, тривиальный читает сам; решение фиксирует явной строкой. - Загрузка контекста по ветке: делегация грузит только rules floor (корень
specs/+RULES.md, индекс) и не тянет полныйlist_entities— домен-карту приносит субагент в run-файле; self-read зовёт полный/prime. Полныйlist_entities— только через escape hatch. - Граундится по карте run-файла (координаты,
[[id]], сущности) и по### Спецификации-указателям — контекст в голову до кода. - Выводит HOW из карты и пишет код и обязательно тесты:
- Testing Discipline — тесты под требования, не под написанный код.
- Unit vs Feature — юнит для изолированных алгоритмов/DTO; фичевые для сценариев использования.
- State-Machine & Flow Coverage — для многошаговых визардов/пайплайнов запрещено тестировать только прямой проход: покрывать переходы состояний, шаги назад, повторные вызовы, невалидные переходы.
- Test Strategy Doc — перед сложным фичевым тестом кратко задокументировать, какие состояния/переходы покрываются.
- Red-Green — багфикс начинается с падающего теста.
- Режим разработки — маркер
## Режим разработки, три значения:standard(дефолт, он же пусто) → обычный поток, полная Testing Discipline без строгого test-first (багфиксный Red-Green действует);tdd→ надстройка Red-Green-Refactor (один падающий тест → минимум кода → рефактор) на всю новую функциональность;ui→ overlay выключен, этап исследовательский, проверяется UI-веткой/validate. Режим независим от стратегии гейта.
- Ведёт
## Рабочие заметкив файле шага. Запрещено писать туда пересказ диффа («переименовал переменную») — код виден в git. Только борьба и решения: что пробовал, почему упало, какие инварианты выяснились. - Останавливается только когда все тесты проходят.
- Читает
- Interaction mode (см. ниже): реальная ветка attended↔autonomous. Autonomous (спавн субагентом) — очевидный дефолт решает на месте + лог, нужно решение человека → pointer-возврат вызвавшему, без блокировки; attended (inline) — «при сомнении спроси».
- Режим: — (System).
- Задача: посреди этапа (контекст раздулся) сохранить состояние в файл шага,
чтобы свежий
/workперезапустился без переоткрытия. Держится отдельно от/step-done— терминальные эффекты противоположны. - Механика:
- Резолв плана; текущий шаг = первый без
[x]; чтение step-файла целиком. - Оценка готовности (инверсия finished-check
/step-done): какие подзадачи сделаны, какие пункты Definition of done закрыты, что осталось. - Проставляет
[x]готовым подзадачам; сносит находки и маркер «где встал / следующий шаг» в## Рабочие заметки. - Forbidden: не капчит в
/mem, не удаляет run-файл, не ставит[x]этапа, не трогаетspecs/.
- Резолв плана; текущий шаг = первый без
- Re-entry: свежий
/workстартует с первой неотмеченной подзадачи и читает рабочие заметки — отдельной resume-секции нет.
- Режим: Architect Mode (рефлексия).
- Задача: завершить этап, перенести знания.
- Механика:
- Читает
## Рабочие заметкииз файла шага. - Суммаризирует их в индекс (Решения / Отклонения / Открытые вопросы).
- Если приняты новые технические решения или найдены подводные камни —
вызывает
/memдля ADR-заметки. - Ставит
[x]в индексе.
- Читает
- Режим: Architect Mode.
- Задача: свести концы и закрыть план.
- Механика:
- Проверяет, что все шаги
[x]. - Разносит знания по водоразделу:
specs/(изменились бизнес-требования, контракты, роуты) и/mem(глобальные архитектурные решения плана). - Меняет статус плана на
completed. - Сметает run-файлы плана (
plans/<prefix>/run-<NN>.md) — per-step леса завершённого прогона; файлы-запись (индекс, шаги) остаются для ручного удаления.
- Проверяет, что все шаги
- Interaction mode: реальная ветка. Поднятие edge-кейсов/открытых вопросов
условно по режиму; autonomous-выход — surface + стоп без перевода в
completed(у скилла нет verdict-артефакта, как у/validate).
- Режим: Orchestration Mode (bespoke) — спавнит и решает.
- Задача: довести готовый
active-план до конца, спавня атомарные скиллы субагентами и маршрутизируя прогон по их вердиктам. Model-driven скилл, не harness-Workflow. Только исполнение; планирование ручное. - Инвариант тонкости: оркестратор читает только индекс, step-файлы, отчёты
субагентов и их pointer-возвраты; пишет только
## Журнал проходов,## Отложенные решенияи финальный отчёт. Тяжёлая работа (прогон тестов, рендер, чтение кода, диагностика) сгорает в одноразовых контекстах субагентов. - Механика:
- Резолв плана (
@path/ единственныйactive/ refuse при неоднозначности); план должен бытьactiveи полностью расписан. - Объявить run-режим видимой строкой: walk-away дефолт / attended по
позиционному слову
attended(/autopilot attended). - Цикл по этапам (первый без
[x]): на каждом — цикл этапа; когда этапов нет →/finalize, затем финальный отчёт.
- Резолв плана (
- Цикл этапа (спавн на пиннутом этапе
@<index>#NN— оркестратор владеет позицией, субагент не ре-резолвит; ветку не выбирает — она в маркерах step-файла):/work— реализация до зелёного в своём контексте./validate— вердикт из текста отчёта:green→/step-done, этап[x];blocked→ Tier C (стоп+эскалация);defect→ запись прохода → диагностика.- Запись прохода строкой в
## Журнал проходов. - Стоп-кран: 3 прохода без
green→ стоп + эскалация (решение читается из числа строк в файле, не из головы). /diagnose—located→ координаты для fix-forward;inconclusive→ Tier C./workfix-forward в текущем этапе (закрытые[x]не откатываются) → к гейту.
- 3-уровневая политика неоднозначности (mode-gated):
- Tier A — очевидный дефолт: решает
/workна месте + лог. - Tier B — отложить за мок: судит оркестратор как держатель плана по
downstream индекса; безопасно →
## Отложенные решения+ маркер в коде. - Tier C — не нашёл / угроза downstream (или задевает закрытый
[x]) → стоп + точный вопрос человеку.blocked/inconclusive— уже материализованный Tier C. - walk-away гоняет полную A/B/C; attended — Tier A сам, всё за ним → сразу стоп+вопрос человеку.
- Tier A — очевидный дефолт: решает
- Канал эскалации walk-away (Tier C): вопрос в
## Эскалацииотчёта → уведомление хоста (нет механизма → деградация в чистый стоп) → останов. - Resume бесплатный: повторный вызов стартует с первого этапа без
[x]по чекбоксам; спец-паузы/resume-маркера нет. - Keep-alive watchdog: kicked-таймер на
ScheduleWakeup, собственность автопилота — оживляет зависший/выдохшийся контекстом оркестратор в той же сессии (Spawn watchdog ловит лишь субагента). ARM на старте, KICK на каждом спавне, FIRE только на остановке. Payload всегда привязанный/autopilot @<index>(bare-форма как watchdog-payload запрещена — иначе fire после завершения подхватит чужой план). Повторный вход через wakeup — сперва guard завершения: все[x]/status≠active / естьautopilot-report.md→ снять wakeup и выйти, иначе возобновить. Снятие — терминальным шагом, что пишет отчёт. Guard читает только существующие артефакты, без resume-маркера. - Финальный отчёт
plans/<prefix>/autopilot-report.md— на любом завершении (finalize / Tier-C / стоп-кран): итог · прогон по этапам · отложенные (Tier B) · эскалации (Tier C) · счётчики стоп-крана. Ничто не теряется молча. - Interaction mode: attended живёт только на оркестраторе (держателе
канала к человеку); спавнимые субагенты всегда autonomous (нет канала),
передаётся пиннутый этап
@<index>#NN, не run-режим.
- Режим: Verification Mode (bespoke) — гейт; вердикт только под неподделываемый артефакт.
- Задача: прогнать гейт текущего этапа и отдать вердикт против фиксированных
артефактов. Код не правит, спеки/планы/истории не трогает — дефекты уходят в
/work, корень в/diagnose. - Дуальность: inline пользователем или спавн субагентом из
/autopilot; оркестрационно-нейтрален, единственный выход — файл-отчёта, в чат компактный указатель. - Механика:
- Резолв плана; текущий шаг = первый без
[x]; чтение step-файла (Цель/DoD/Связанные истории/Стратегия гейта). - Селектор ветки из
## Стратегия гейта(производна от наличия истории); кросс-чек presence — расхождение репортить, не угадывать. - Test-ветка: полный прогон, сырой stdout/stderr verbatim; любой упавший
или skipped →
defect. - E2E-ветка (она же UI validation branch для
ui-режима): по связанным историям через браузер (Playwright). Зависит от поднятого приложения + севаprecondition(механизм из## Стратегия гейта); отсутствует →blocked(Tier C), не суждение на ходу. Покрытие — всеnegative_paths, не только happy path; скриншот на каждыйexpected. - Observation/verdict split: «Что видно на экране» (нейтральная транскрипция) отдельно от «Соответствие expected» (вердикт) — оркестратор доверяет вердикту из текста, картинки не грузит.
- Отчёт в
plans/<prefix>/step-<NN>.md(Markdown), скриншоты вplans/<prefix>/screenshots/с префиксомstep-<NN>-.
- Резолв плана; текущий шаг = первый без
- Вердикт-контракт (читается из текста):
green/defect(гейт прошёл, поведение разошлось) /blocked(гейт не смог запуститься → Tier C).
- Режим: Diagnosis Mode (bespoke) — трасса к корню, карта координат, без рецепта и правок.
- Задача: проследить упавший гейт от симптома к первопричине через слои
(фронт/бэк/проводка) и отдать координаты для fix-forward. Карта — весь выход;
починка принадлежит
/work. - Дуальность: inline или спавн из
/autopilot; оркестрационно-нейтрален, единственный выход — файл-отчёта. - Принцип долговечного знания: корень реконструируется из долговечных
артефактов (якоря плана
## Затрагиваемые файлы/## Grounding,[[id]], коммитнутый код), переживших мёртвый контекст исполнителя; догадка по живому симптому запрещена. Fix-forward в текущем этапе, закрытые[x]не откатываются. - Механика (Structured CoT, 7 шагов):
- Self-prime + формулировка симптома из
## Дефектотчёта/validate. - Назвать всю подозреваемую территорию по слоям, не ближний слой.
- Трасса: anchored-поиск по узлам + full-text по симптому, чтение кода по координатам.
- Локализация: координаты корня отделены от поверхности симптома.
- Валидация корня: объясняет весь симптом; не локализуется из долговечных
артефактов →
inconclusive, не угадывать. - Отчёт
plans/<prefix>/diagnose-<NN>.md(+ «Проверено и отброшено»). - Презентация компактная: вердикт + путь.
- Self-prime + формулировка симптома из
- Вердикт-контракт (читается из текста):
located(корень на координате под долговечным артефактом) /inconclusive(не локализуется → Tier C, стоп + эскалация).
- Режим: Architect Mode.
- Задача: записать ADR-заметку в
.memory/. - Механика:
- Заполняет ролевую структуру: Контекст · Решение · Альтернативы · Инварианты · Антипаттерны.
- Якоря по двум осям:
entity:(концепт) иfile:/symbol:(реализация). - Вес
critical— только при наличии жёстких Инвариантов.
- Дисциплина содержания и шаблоны тела —
specs/04-note-authoring.md.
- Режим: Ask / Architect.
- Задача: дать стартовый seed памяти при подключении к уже существующему проекту (разовый многосессионный процесс).
- Механика: skill-driven процесс поверх существующих инструментов
(
search/create_note/create_entity/update_note); чанк-цикл с дедупом черезsearch include_drafts, заметки создаютсяdraft. Полный флоу —specs/06-onboarding.md.
- Режим: Ask / Architect.
- Задача: вывести диалог из тупика или галлюцинаций. Не часть штатного workflow — ручной тормоз, вызывается пользователем.
- Механика:
- Стоп-генерация предложений.
- Широкий retrieval по активным сущностям (
list_entities+search) и сверка со Specs /RULES.md. - Сопоставление последних 2–3 предложений модели с найденными инвариантами.
- Корректирующий дашборд расхождений. Ждёт указаний.