Files
dotfiles/agents/.agents/skills/codex-subagent-playbook/handoffs/20260710-1643-first-version.md
T
Dmitry Dementiev 60182ab493 fix(agents): исправлена оркестрация моделей и контекста
- Зачем:
  - следующая сессия должна управлять стоимостью субагентов без повторной загрузки длинных отчётов в контекст мастера.
- Что:
  - разделены TOML-роли и разовые переопределения модели, уточнены fork и service tier.
  - добавлен файловый обмен, жизненный цикл временного каталога и нативные скелеты промптов.
  - синхронизированы полевые заметки и handoff с проверенной механикой Codex.
- Проверка:
  - quick_validate.py agents/.agents/skills/codex-subagent-playbook.
  - git diff --cached --check.
  - независимое ревью: VERDICT: APPROVED.
2026-07-10 17:59:15 +03:00

8.9 KiB
Raw Blame History

Handoff: первая версия Codex Subagent Playbook

Дата: 2026-07-10. Для следующей сессии, которая добавит настоящие роли Codex и проверит полный конвейер на боевой задаче.

Состояние

Первая версия скилла готова и формально валидна:

Нативные 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" ради чистого контекста; полный fork all наследует модель мастера.
  • Один агент владеет рабочим деревом. До записи сохраняется точка отсчёта, включая хэши неотслеживаемых файлов.
  • Полный отчёт ревьюера сохраняется файлом; сообщение содержит только вердикт, счётчики и путь. read-only-ревьюер возвращает короткий индекс один раз сообщением.
  • На прогон создаётся один обменный временный каталог. Полные отчёты и повторно используемые промпты передаются между агентами путями; мастер не вставляет их повторно в tool-call.
  • После завершения или сохранения блокирующего handoff обменный каталог этого прогона удаляется.
  • Нативный конвейер не зависит от вложенного запуска codex exec.

Что проверено

  • quick_validate.py завершился с Skill is valid!.
  • Независимое ревью закрыло договор ревьюера, точку отсчёта, выбор стоимости и устранение лишних повторных прогонов.
  • Безопасный пробный прогон этапов 1–2 поднял исследователя и ревьюера, сформировал самодостаточную постановку и не вынес сырые журналы в итог мастера. Файлы проекта не менялись.
  • Прогон выявил лишний полный запуск тестов исследователем; ограничение роли уже внесено в процесс и справочник.

Следующая сессия

  1. Решить, входят ли Windows/chezmoi в первую поставку ролей. Пробная постановка ограничила первую поставку Linux/WSL.
  2. Выбрать модели для быстрого, рабочего и глубокого уровней. Локально подтверждена только gpt-5.6-sol; не считать это готовой таблицей ролей.
  3. Создать шесть ролей: fast-worker, explorer, worker, deep-reasoner, reviewer, verifier.
  4. Разместить Linux/WSL-источник в codex/.codex/agents/ и узко открыть нужные TOML в .gitignore. Сейчас родительское правило игнорирует весь каталог.
  5. Расширить tests/test_install.sh: разобрать TOML через tomllib, проверить смысловые договоры ролей, повторную установку, стороннюю роль и конфликт совпадающего имени.
  6. Проверить обнаружение ролей установленным Codex CLI в отдельном CODEX_HOME. Затем начать новую сессию и проверить, что её схема spawn_agent открывает agent_type, model, reasoning_effort и service_tier. Синтаксический разбор TOML не доказывает поддержку схемы.
  7. Прогнать этапы 3–7 на подходящей задаче, обновить полевые заметки только подтверждёнными фактами и убрать поглощённый осадок.
  8. Измерить, сколько длинных отчётов реально попало в контекст мастера. Цель — каждый полный артефакт читается не более одного раза и больше не пересказывается между агентами.

Известные ловушки

  • Простое исключение !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 — зафиксировать следующую завершённую поставку.