fix(codex-playbook): устранены жёсткие допущения в шаблонах

- Зачем:
  - shell-зависимые примеры и конвейерные формулировки сужали применимость оптики.
- Что:
  - сборка подсказок описана платформенно-нейтральным порядком файлов.
  - граница ревью и маршрут актуальных отчётов оставлены гибкими.
  - исправлены входная формулировка и локальная навигация по ролям.
- Проверка:
  - quick_validate.py, git diff --check, Markdown-ссылки и узкая перепроверка агентом.
This commit is contained in:
Dmitriy Dementiev committed 2026-07-13 13:25:33 +03:00
1 parent 6cc1b26ce4
commit 70b18b9e9a
5 files changed
+52 -35

No files matched your search

@@ -1,6 +1,6 @@
--- ---
name: codex-subagent-playbook name: codex-subagent-playbook
description: "Оптика тонкого мастера для одной нетривиальной задачи: исследование, планирование, реализация и независимая проверка через субагентов без поглощения контекста координатора." description: "Оптика тонкого мастера для одной нетривиальной задачи: как выбирать делегирование, независимую проверку и файловый обмен, сохраняя контекст координатора для решений."
--- ---
# Тонкий мастер # Тонкий мастер
@@ -34,7 +34,9 @@ description: "Оптика тонкого мастера для одной не
`$SCRATCH` — логический общий каталог одного прогона, доступный координатору и `$SCRATCH` — логический общий каталог одного прогона, доступный координатору и
назначенным агентам. Физически это скретчпад сессии, временный каталог ОС либо назначенным агентам. Физически это скретчпад сессии, временный каталог ОС либо
гарантированно игнорируемый каталог проекта. В нём живут временные промпты, гарантированно игнорируемый каталог проекта. В нём живут временные промпты,
отчёты, триаж и перепроверки; это не артефакты проекта. отчёты, триаж и перепроверки; это не артефакты проекта. Не предполагай
конкретную оболочку или синтаксис пути: файловый маршрут должен работать
нативными средствами текущей ОС.
- Временные обменные файлы веди на английском. Долговечные документы и текст - Временные обменные файлы веди на английском. Долговечные документы и текст
для партнёра пиши на языке проекта. для партнёра пиши на языке проекта.
@@ -1,6 +1,6 @@
interface: interface:
display_name: "Codex Subagent Playbook" display_name: "Codex Subagent Playbook"
short_description: "Делегирование без засорения контекста мастера" short_description: "Делегирование без засорения контекста мастера"
default_prompt: "Используй $codex-subagent-playbook, чтобы провести задачу через субагентов и сохранить контекст мастера чистым." default_prompt: "Используй $codex-subagent-playbook как оптику: выбери полезное делегирование и независимую проверку, сохранив контекст мастера для решений."
policy: policy:
allow_implicit_invocation: false allow_implicit_invocation: false
@@ -18,12 +18,13 @@
## Каталог прогона ## Каталог прогона
`$SCRATCH` определён в основном файле как общий временный каталог. Для задачи `$SCRATCH` определён в основном файле как общий временный каталог. Для задачи
создай уникальную подпапку: `D="$SCRATCH/<NN-slug>"`. `P` указывает на создай в нём уникальную подпапку, далее `D`. `P` обозначает каталог
`references/prompts` этого скилла. Каждый агент получает отдельный `REPORT`. `references/prompts` этого скилла. Каждый агент получает отдельный `REPORT`.
Собирай файлы механически, не читая полезную нагрузку в контекст координатора. Собирай файлы механически, не читая полезную нагрузку в контекст координатора.
Примеры ниже используют POSIX `cat`; в PowerShell применяй В схемах ниже `A + B -> C` означает текстовое объединение файлов в заданном
`Get-Content <paths> | Set-Content -Encoding utf8 <target>`. порядке нативным средством текущей ОС; `[A]` означает необязательный файл.
Схема не предписывает оболочку, синтаксис пути или отдельный этап процесса.
## Исполнитель или исследователь ## Исполнитель или исследователь
@@ -37,9 +38,11 @@ CHECKS: commands this agent should run
REPORT: absolute unique path REPORT: absolute unique path
``` ```
```bash ```text
cat "$D/params.md" "$P/result-contract.md" "$P/runtime-language.md" \ D/params.md
> "$D/prompt.md" + P/result-contract.md
+ P/runtime-language.md
-> D/prompt.md
``` ```
Самодостаточную постановку и подробное обязательное чтение добавляй только Самодостаточную постановку и подробное обязательное чтение добавляй только
@@ -53,11 +56,15 @@ cat "$D/params.md" "$P/result-contract.md" "$P/runtime-language.md" \
TITLE: short review title TITLE: short review title
WORKING DIRECTORY: absolute repo path WORKING DIRECTORY: absolute repo path
STATEMENT: task and parent spec paths STATEMENT: task and parent spec paths
SCOPE: changed files or task sections under review REVIEW INPUT: task sections, exact paths, a prepared diff path, or a diff command
BASELINE: what is explicitly outside this review OUT OF SCOPE: what is explicitly outside this review
CHECKS: commands and expected counters CHECKS: commands and expected counters
``` ```
`REVIEW INPUT` должен позволять отличить проверяемую работу от посторонних
изменений. Выбери достаточную форму для текущего дерева; диапазон коммитов не
обязателен, если точные пути, разделы или подготовленный diff уже задают границу.
`review-output.md` задаёт поля конкретной линии: `review-output.md` задаёт поля конкретной линии:
```text ```text
@@ -84,10 +91,13 @@ CODE LENS: seek correctness bugs, broken invariants, regressions, security
issues, and tests that can pass without proving the behavior. issues, and tests that can pass without proving the behavior.
``` ```
```bash ```text
cat "$D/review-common.md" "$D/review-focus.md" "$D/review-output.md" \ D/review-common.md
"$P/review-boilerplate.md" "$P/runtime-language.md" \ + D/review-focus.md
> "$D/review-prompt.md" + D/review-output.md
+ P/review-boilerplate.md
+ P/runtime-language.md
-> D/review-prompt.md
``` ```
Для двух слепых линий создай `review-focus-a.md` и `review-focus-b.md`, Для двух слепых линий создай `review-focus-a.md` и `review-focus-b.md`,
@@ -104,20 +114,20 @@ cat "$D/review-common.md" "$D/review-focus.md" "$D/review-output.md" \
## Триаж реализации ## Триаж реализации
Передай исполнителю исходные отчёты без пересказа. `triage-params.md` Передай исполнителю актуальные подробные отчёты без пересказа: исходные обзоры
содержит путь итогового отчёта и проверки. `coordinator-notes.md` добавляй в первом круге, отчёты перепроверки для оставшихся и новых находок в следующих.
только для совпадений, противоречий и новых решений уровня задачи. `triage-params.md` содержит путь итогового отчёта и проверки.
`coordinator-notes.md` добавляй только для совпадений, противоречий и новых
решений уровня задачи.
```bash ```text
cat "$P/triage-header.md" "$D/triage-params.md" \ P/triage-header.md
"$D/review-a.md" > "$D/fix-prompt.md" + D/triage-params.md
if [ -f "$D/review-b.md" ]; then + <current detailed report 1>
cat "$D/review-b.md" >> "$D/fix-prompt.md" + [<current detailed report 2>]
fi + [D/coordinator-notes.md]
if [ -f "$D/coordinator-notes.md" ]; then + P/runtime-language.md
cat "$D/coordinator-notes.md" >> "$D/fix-prompt.md" -> D/fix-prompt.md
fi
cat "$P/runtime-language.md" >> "$D/fix-prompt.md"
``` ```
## Узкая перепроверка ## Узкая перепроверка
@@ -126,9 +136,11 @@ cat "$P/runtime-language.md" >> "$D/fix-prompt.md"
исходному отчёту и файлу резолюций, нужную проверку и новый уникальный исходному отчёту и файлу резолюций, нужную проверку и новый уникальный
`REPORT`. `REPORT`.
```bash ```text
cat "$P/recheck-header.md" "$D/recheck-params.md" \ P/recheck-header.md
"$P/runtime-language.md" > "$D/recheck-prompt.md" + D/recheck-params.md
+ P/runtime-language.md
-> D/recheck-prompt.md
``` ```
Перепроверка следует решению координатора по договору ревью, а не номеру этапа. Перепроверка следует решению координатора по договору ревью, а не номеру этапа.
@@ -85,9 +85,9 @@ reviewer -> detailed report file -> triage owner
постановку. Продуктовый выбор и принятие риска выносит партнёру. постановку. Продуктовый выбор и принятие риска выносит партнёру.
**Реализация.** Пофиндинговый триаж делает исполнитель, у которого есть **Реализация.** Пофиндинговый триаж делает исполнитель, у которого есть
контекст кода. Координатор передаёт оба исходных отчёта без изменений и контекст кода. Координатор передаёт актуальные подробные отчёты выбранных линий
добавляет отдельную короткую шапку: совпадения, противоречия и возможный выход без изменений и добавляет отдельную короткую шапку: совпадения, противоречия и
за границы. Он не сливает и не удаляет «дубликаты». возможный выход за границы. Он не сливает и не удаляет «дубликаты».
Для каждого идентификатора исполнитель возвращает один статус: Для каждого идентификатора исполнитель возвращает один статус:
@@ -109,6 +109,9 @@ reviewer -> detailed report file -> triage owner
`APPROVED` либо явным принятием риска полномочным координатором или партнёром. `APPROVED` либо явным принятием риска полномочным координатором или партнёром.
Координатор получает по одной компактной строке со статусом каждого исходного Координатор получает по одной компактной строке со статусом каждого исходного
или нового идентификатора; подробности остаются в файле перепроверки. или нового идентификатора; подробности остаются в файле перепроверки.
Если идентификатор не закрыт либо появился рядом с исправлением, актуальный
отчёт перепроверки напрямую идёт владельцу следующего триажа. Координатор не
восстанавливает доказательства из компактной сводки.
Повторно поднятое аргументированно отклонённое замечание пометь как спор и Повторно поднятое аргументированно отклонённое замечание пометь как спор и
отправь на отдельную узкую проверку усиленного уровня. Полный новый обзор отправь на отдельную узкую проверку усиленного уровня. Полный новый обзор
@@ -11,7 +11,7 @@
- [Возможности хоста](#возможности-хоста) - [Возможности хоста](#возможности-хоста)
- [Выбор уровня](#выбор-уровня) - [Выбор уровня](#выбор-уровня)
- [Текущая маршрутизация](#текущая-маршрутизация) - [Текущая маршрутизация](#текущая-маршрутизация)
- [Роли](#роли) - [Возможные мандаты](#возможные-мандаты)
- [Файл пользовательского агента](#файл-пользовательского-агента) - [Файл пользовательского агента](#файл-пользовательского-агента)
- [Пределы параллельности](#пределы-параллельности) - [Пределы параллельности](#пределы-параллельности)