feat(skills): добавлен скилл cross-review для ревью моделью другого семейства
- Зачем: два плейбука оркестрации разошлись, а из них на практике нужно только независимое ревью моделью другого семейства. - Что: линзы для ревьюера (по задаче, по коду, форма и вкус, вычитание, план), общий мандат и перепроверка; разбор находок остаётся у автора. Механика запуска вынесена в адаптеры: 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>
This commit is contained in:
1 parent
144bc2515b
commit
158075e059
12 files changed
+658
No files matched your search
@@ -0,0 +1,89 @@
|
||||
# Запуск через 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.
|
||||
Reference in new issue
Block a user