- Зачем: два плейбука оркестрации разошлись, а из них на практике нужно только независимое ревью моделью другого семейства. - Что: линзы для ревьюера (по задаче, по коду, форма и вкус, вычитание, план), общий мандат и перепроверка; разбор находок остаётся у автора. Механика запуска вынесена в адаптеры: T3 Code, codex exec, claude -p. Следующие круги ревью идут продолжением сессии того же ревьюера. Старые плейбуки пока не удалены. - Проверка: запуск, запись отчёта и продолжение сессии прогнаны на codex-cli 0.163.0, Claude Code 2.1.302 и в T3 Code; два круга ревью скилла (gpt-6.1-sol, gpt-6-astra), находки исправлены; ссылки и YAML проверены скриптом. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
90 lines
5.3 KiB
Markdown
90 lines
5.3 KiB
Markdown
# Запуск через T3 Code
|
||
|
||
Для автора, который работает внутри T3 Code и видит инструменты
|
||
`orchestrator_capabilities` и `delegate_task` (имена могут идти с префиксом
|
||
вроде `mcp__t3-code__`). Приложение само следит за дочерней задачей, будит
|
||
тебя по её завершении, а пользователь видит ход ревью в отдельном разговоре.
|
||
Проверено 2026-10-17: Claude → Codex.
|
||
|
||
## Выбор модели
|
||
|
||
Модель и глубину выбирай по адаптеру семейства ревьюера:
|
||
[Codex](launch-codex.md#первый-запуск) или
|
||
[Claude](launch-claude.md#первый-запуск). Вызови `orchestrator_capabilities`,
|
||
найди у нужного провайдера эту модель (`providerInstanceId`, `model`) и
|
||
проверь, что она есть в списке. Ключ глубины у провайдеров разный —
|
||
смотри `options` модели: у Codex это `reasoningEffort`, у Claude —
|
||
`effort`.
|
||
|
||
## Запуск
|
||
|
||
Собери `prompt.md` так же, как для командной строки, и передай его путь:
|
||
|
||
```json
|
||
{
|
||
"task": "Прочитай /tmp/…/prompt.md и выполни.",
|
||
"target": {
|
||
"providerInstanceId": "codex",
|
||
"model": "<model>",
|
||
"options": { "reasoningEffort": "high" }
|
||
},
|
||
"role": "review",
|
||
"mode": "async",
|
||
"title": "cross-review: <что проверяем>",
|
||
"clientRequestId": "<уникальный id этого раунда>"
|
||
}
|
||
```
|
||
|
||
- **`isolation` не задавай** (по умолчанию — общий checkout). Отдельный
|
||
worktree строится от последнего коммита, и незакоммиченные правки
|
||
ревьюер не увидит.
|
||
- **`runtimeMode` не задавай.** Режимы с подтверждением остановят ревьюера
|
||
на первом же действии и будут ждать человека в его разговоре. Ограничения
|
||
задаёт мандат в поручении.
|
||
- После запуска заверши ход: уведомление о завершении придёт само.
|
||
`task_status` нужен, только если результат требуется посреди хода.
|
||
- Итоговое сообщение ревьюера приходит в `summary`; полный отчёт — в файле
|
||
`REPORT`.
|
||
|
||
## Следующие круги
|
||
|
||
Следующие круги — узкую перепроверку и полный проход по новой версии —
|
||
отправляй тому же ревьюеру, в его дочерний разговор, когда предыдущая
|
||
задача уже завершилась. Это `t3_thread_send`:
|
||
|
||
```json
|
||
{
|
||
"threadId": "<childThreadId из ответа delegate_task>",
|
||
"message": "Прочитай /tmp/…/recheck-prompt.md и выполни.",
|
||
"mode": "auto",
|
||
"clientRequestId": "<уникальный id этого круга>"
|
||
}
|
||
```
|
||
|
||
- В дочернем разговоре появляется новая задача со своим `taskId`; по
|
||
завершении она будит тебя так же, как исходная. Ребёнок помнит свои
|
||
прошлые ходы (проверено 2026-10-17 на Codex).
|
||
- Модель, глубина и режим остаются от исходной задачи, поменять их нельзя.
|
||
- `childThreadId` запиши в реестр сразу после запуска ревью: разговор
|
||
хранит T3, но его id нужен тебе.
|
||
- Что положить в поручение круга — в разделе «Следующие круги» SKILL.md.
|
||
|
||
Свежий ревьюер — новый `delegate_task` с новым `clientRequestId`. Когда он
|
||
нужен — там же, в SKILL.md. Если продолжить разговор не удалось, в
|
||
поручение свежей задачи положи пути к исходному `prompt.md`, отчёту
|
||
ревьюера и своим резолюциям.
|
||
|
||
Системные инструкции T3 и описание `t3_thread_send` говорят об этом
|
||
по-разному. Первые велят на каждый круг ревью заводить новый
|
||
`delegate_task` и не продолжать делегированное ревью через
|
||
`t3_thread_send`. Второе отдаёт `delegate_task` независимым кругам, а
|
||
продолжение, которому нужен разговор того же ребёнка, отправляет в
|
||
`childThreadId`. Этот скилл намеренно выбирает продолжение: круги ревью
|
||
идут по уже набранному контексту ревьюера, а это дешевле и глубже, чем
|
||
набирать его заново.
|
||
|
||
## Затраты
|
||
|
||
T3 сообщает только время выполнения. Токены и стоимость видны в выводе
|
||
командной строки — см. адаптеры Codex и Claude.
|