- Зачем: - следующая сессия должна управлять стоимостью субагентов без повторной загрузки длинных отчётов в контекст мастера. - Что: - разделены TOML-роли и разовые переопределения модели, уточнены fork и service tier. - добавлен файловый обмен, жизненный цикл временного каталога и нативные скелеты промптов. - синхронизированы полевые заметки и handoff с проверенной механикой Codex. - Проверка: - quick_validate.py agents/.agents/skills/codex-subagent-playbook. - git diff --cached --check. - независимое ревью: VERDICT: APPROVED.
8.9 KiB
8.9 KiB
Handoff: первая версия Codex Subagent Playbook
Дата: 2026-07-10. Для следующей сессии, которая добавит настоящие роли Codex и проверит полный конвейер на боевой задаче.
Состояние
Первая версия скилла готова и формально валидна:
- процесс тонкого мастера —
../SKILL.md; - выбор ролей и уровней —
../references/roles.md; - перенесённые уроки и открытые проверки —
../references/field-notes.md; - точные договоры нативных агентов —
../references/prompt-templates.md; - явный вызов скилла —
../agents/openai.yaml.
Нативные TOML-роли ещё не созданы. В интерфейсе пробной tool-backed сессии
хост скрыл поля agent_type, model, reasoning_effort и service_tier,
поэтому прогон использовал роли только как мандаты в промпте и честно
пометил стоимость как неуправляемую. Это не общее ограничение Codex:
нативная схема поддерживает все четыре поля.
Принятые решения
- Главная цель — сохранить контекст мастер-модели для требований, решений и синтеза. Внешняя модель остаётся необязательной дополнительной линией.
- Скилл запускается только явно. Текущий валидатор не принимает
disable-model-invocation; используетсяpolicy.allow_implicit_invocation: falseвopenai.yaml. - Модели закрепляются в файлах ролей, а не в
SKILL.md, чтобы процесс не зависел от смены модельной линейки. - Для TOML-роли передаётся
agent_type; для разового выбора —modelиreasoning_effortбез роли с закреплённой моделью. Плейбук используетfork_turns="none"ради чистого контекста; полный forkallнаследует модель мастера. - Один агент владеет рабочим деревом. До записи сохраняется точка отсчёта, включая хэши неотслеживаемых файлов.
- Полный отчёт ревьюера сохраняется файлом; сообщение содержит только
вердикт, счётчики и путь.
read-only-ревьюер возвращает короткий индекс один раз сообщением. - На прогон создаётся один обменный временный каталог. Полные отчёты и повторно используемые промпты передаются между агентами путями; мастер не вставляет их повторно в tool-call.
- После завершения или сохранения блокирующего handoff обменный каталог этого прогона удаляется.
- Нативный конвейер не зависит от вложенного запуска
codex exec.
Что проверено
quick_validate.pyзавершился сSkill is valid!.- Независимое ревью закрыло договор ревьюера, точку отсчёта, выбор стоимости и устранение лишних повторных прогонов.
- Безопасный пробный прогон этапов 1–2 поднял исследователя и ревьюера, сформировал самодостаточную постановку и не вынес сырые журналы в итог мастера. Файлы проекта не менялись.
- Прогон выявил лишний полный запуск тестов исследователем; ограничение роли уже внесено в процесс и справочник.
Следующая сессия
- Решить, входят ли Windows/chezmoi в первую поставку ролей. Пробная постановка ограничила первую поставку Linux/WSL.
- Выбрать модели для быстрого, рабочего и глубокого уровней. Локально
подтверждена только
gpt-5.6-sol; не считать это готовой таблицей ролей. - Создать шесть ролей:
fast-worker,explorer,worker,deep-reasoner,reviewer,verifier. - Разместить Linux/WSL-источник в
codex/.codex/agents/и узко открыть нужные TOML в.gitignore. Сейчас родительское правило игнорирует весь каталог. - Расширить
tests/test_install.sh: разобрать TOML черезtomllib, проверить смысловые договоры ролей, повторную установку, стороннюю роль и конфликт совпадающего имени. - Проверить обнаружение ролей установленным Codex CLI в отдельном
CODEX_HOME. Затем начать новую сессию и проверить, что её схемаspawn_agentоткрываетagent_type,model,reasoning_effortиservice_tier. Синтаксический разбор TOML не доказывает поддержку схемы. - Прогнать этапы 3–7 на подходящей задаче, обновить полевые заметки только подтверждёнными фактами и убрать поглощённый осадок.
- Измерить, сколько длинных отчётов реально попало в контекст мастера. Цель — каждый полный артефакт читается не более одного раза и больше не пересказывается между агентами.
Известные ловушки
- Простое исключение
!codex/.codex/agents/*.tomlможет не сработать, пока не раскрыты игнорируемые родительские каталоги. Нужны положительные и отрицательные проверкиgit check-ignore. - Текущее рабочее дерево dotfiles содержит посторонние изменения. Работать от сохранённой точки отсчёта, не очищать и не включать их в коммиты.
task_nameнативногоspawn_agent— имя треда, а не доказанный выбор пользовательской конфигурации агента.- Полный fork
allнесовместим с другой ролью, моделью и глубиной. Плейбук используетnoneдля свежего контекста; ограниченный fork числом технически допускает переопределения. - Некоторые tool-backed хосты скрывают поля управления моделью, хотя Codex их поддерживает. Проверять фактическую схему в начале сессии.
- Права
workspace-writeне гарантируют сеть. Проверку документации и поиск отмечать как непроверенные, если сеть недоступна. - Длинный текст в
spawn_agent,send_messageилиfollowup_taskостаётся в истории мастера. Передавать путь к файлу и короткий вопрос.
Suggested skills
$writing-great-skills— удерживать плотность и предсказуемость скилла.$skill-creator— валидировать структуру и проводить пробные прогоны.$tdd— сначала закрепить установку и договоры ролей тестами.$claude-team-review— независимое ревью после появления TOML и тестов.$conventional-commits— зафиксировать следующую завершённую поставку.