docs(skill): экономия контекста оркестратора по ретро прогона 2026-07-10

- Зачем:
  - ретро трёх циклов конвейера показало: находки ревью проходили через
    контекст оркестратора до шести раз, review-промпт дублировался, ~7
    пустых ходов на idle-пингах teammate-ревьюера.
- Что:
  - SKILL.md: механика «индекс у оркестратора, нагрузка файлами» — вердикты
    в файлы обменного temp-каталога, fix-промпт конкатенацией, один
    канонический review-промпт на обоих ревьюеров, idle-пинги как шум;
  - новый references/prompt-templates.md — скелеты четырёх промптов;
  - codex-exec.md: сборка промптов cat'ом, боевая модель gpt-5.5 явно
    (фронтир из конфига не наследовать);
  - codex-sandbox-fix-handover: рабочий AppArmor-фикс (ловушка memfd,
    профиль на бинарь codex), проверен на обоих режимах;
  - lessons.md: датированные записи ретро, казуса Sol и memfd.
- Проверка:
  - чтение SKILL.md и references/, следующий прогон конвейера.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Dmitry DementievandClaude Fable 5 committed 2026-07-10 16:55:16 +03:00
1 parent 4d074adda6
commit 15d5515925
5 files changed
+258 -22

No files matched your search

@@ -29,7 +29,17 @@ description: >-
- **Оркестратор (ты)** — план, постановка, синтез, коммит. Работай по
**индексу** (правило `/coordinator-loop`): в твой контекст входят вердикты
и находки `файл:строка`, а не diff, не полные логи и не нарратив. Шумные
команды — через файл-лог, в контекст только сводку.
команды — через файл-лог, в контекст только сводку. **Индекс — у тебя,
полезная нагрузка — файлами между агентами**: вердикты, отчёты и промпты
живут в `$SCRATCH` (обменный temp-каталог прогона с полуслучайным
префиксом — скретчпад сессии или `mktemp -d`; детали — в
[references/prompt-templates.md](references/prompt-templates.md)), ты
читаешь их один раз и дальше передаёшь путями и конкатенацией (`cat`), а
не переписываешь Write'ом — каждое переписывание дублирует контент в
твоём контексте (ретро 2026-07-10: находки ревью проходили через
оркестратора до шести раз). SendMessage возвращает эхом
весь текст сообщения — teammate'у шли короткое (вердикт, путь, вопрос),
длинное — файлом, который он прочтёт сам.
- **Codex** — реализация кода. У пользователя лимиты Codex больше, код он
пишет в целом лучше, но верхнеуровнево планирует хуже — поэтому
декомпозиция и постановка остаются у тебя. Механика вызова —
@@ -94,25 +104,39 @@ description: >-
Один писатель в дереве: пока Codex пишет — никто больше (казус с
форвардером — в [references/lessons.md](references/lessons.md)). Готово,
когда Codex вернул отчёт, а в дереве нет правок, которых он не называл.
4. **Два слепых ревью параллельно.** Каждому: путь к задаче-файлу + фокус
(математика/краевые случаи, соответствие критериям, честность тестов,
артефакты). Друг про друга не знают, твои выводы им не пересказывай.
Обоим поощряй безопасные эмпирические проверки (воспроизвести краевой
случай вне репо, сходить в документацию) — вердикт заметно твёрже;
менять исходники и окружение нельзя, после ревью сверь дерево
(`git status`). Клод-ревьюеру можно поручить смотреть артефакты
(картинки из ноутбука). Этап закрыт, когда оба вердикта у тебя индексами
и дерево нетронуто; вердикт без единой находки засчитывай только после
проверки его лога — работа, не отписка
4. **Два слепых ревью параллельно.** Промпт — **один канонический файл в
`$SCRATCH` на оба ревью** (скелет и обёртки вызова —
[references/prompt-templates.md](references/prompt-templates.md)): Codex
получает его через stdin, Клод-субагенту в prompt — короткая обёртка
«прочитай файл X и выполни; индекс — в файл Y» (не дублируй текст
промпта в параметре — это второй полный экземпляр в твоём контексте).
Содержание: путь к задаче-файлу + фокус (математика/краевые случаи,
соответствие критериям, честность тестов, артефакты). Друг про друга не
знают, твои выводы им не пересказывай. Обоим поощряй безопасные
эмпирические проверки (воспроизвести краевой случай вне репо, сходить в
документацию) — вердикт заметно твёрже; менять исходники и окружение
нельзя. Вердикты — файлами с **разными путями**: у Codex это его
`-o`-отчёт, Клод-ревьюеру обёртка разрешает запись файла вердикта в
`$SCRATCH` (вне репо — мандату не противоречит), финальным актом —
SendMessage только со строкой VERDICT, счётчиками и путём: его
idle-уведомления не содержат результата, не жди из них ничего. После
ревью сверь дерево (`git status`). Клод-ревьюеру можно поручить смотреть
артефакты (картинки из ноутбука). Этап закрыт, когда оба вердикта у тебя
индексами и дерево нетронуто; вердикт без единой находки засчитывай
только после проверки его лога — работа, не отписка
(приём — в [references/codex-exec.md](references/codex-exec.md)).
5. **Синтез и триаж.** Сведи вердикты по индексам: пересечения, противоречия.
Пофиндинговый триаж — у **исполнителя**, не у тебя (правило
`/claude-team-review` и `/coordinator-loop`: судит тот, у кого контекст
кода): перешли Codex индекс находок **дословно**, он чинит или
**аргументированно отклоняет** — через контракт и тест, не голословно;
промпт починки — «закрой перечисленное, больше ничего не меняй». Ты судишь
уровнем задачи: принять риск / вне скоупа. Повторная проверка — узкая
(см. «Свежесть»). Этап закрыт, когда по каждой находке обоих ревью есть
промпт починки — «закрой перечисленное, больше ничего не меняй».
«Дословно» — это конкатенация: `cat шапка.md вердикт-A.md вердикт-B.md >
fix-prompt.md` Bash'ем; Write'ом ты бы переписал те же находки в контекст
ещё раз. Свои замечания к триажу — только шапкой. Ты судишь уровнем
задачи: принять риск / вне скоупа. Повторная проверка — узкая (см.
«Свежесть»); её промпт не пересказывает резолюции — ссылается на файл
отчёта исполнителя. Этап закрыт, когда по каждой находке обоих ревью есть
решение: починено и перепроверено — или отклонено с доводом.
6. **Финал.** Артефакты проверь **своими глазами** (счётчик тестов, картинки,
прогон CLI) — ревью не заменяет твою приёмку. Обнови чекбоксы и статус
@@ -129,7 +153,9 @@ description: >-
(механика — [references/codex-exec.md](references/codex-exec.md)).
Подстраховка от молчаливой смерти агента — ScheduleWakeup сроком дольше
ожидаемой длительности: по пробуждению смотри логи сам, по приходу
результата таймер снимай.
результата таймер снимай. Idle-уведомления teammate-субагентов — шум, а не
событие: не докладывай о них пользователю и не действуй по ним, если
результат уже получен (ретро 2026-07-10: ~7 пустых ходов на idle-пингах).
## Соседние скиллы
@@ -150,6 +176,9 @@ description: >-
- [references/codex-exec.md](references/codex-exec.md) — прямой `codex exec`:
сквозные правила (шум в файлы, thread_id, resume по id, проверка отписки),
ветки исполнитель/ревьюер/триаж, раннер для переваривания шума.
- [references/prompt-templates.md](references/prompt-templates.md) — скелеты
четырёх промптов конвейера (задача/ревью/триаж/перепроверка): пиши только
параметрический блок на задачу, boilerplate не переписывай.
- [references/lessons.md](references/lessons.md) — датированная эмпирика
прогонов: что поймал каждый этап, казусы, цифры.
- [references/claude-agents.md](references/claude-agents.md) — определения