refactor(skills): обновлен плейбук координации Codex
- Зачем: - Обновлена координация задач с защитой замысла, контекста и бюджета работы. - Что: - Ветка refactor/codex-subagent-playbook включена через merge --no-ff. - Добавлены актуальные роли, переиспользование агентов, осмысленный триаж и отчеты партнёру. - Сохранен текущий handoff, архивирована старая эмпирика и обновлены исключения скиллов. - Проверка: - Основной рефакторинг прошел независимое ревью и ограниченный поведенческий прогон. - Финальные документы проверены на ссылки, YAML и ошибки форматирования. - Рабочие заметки удалены из дерева; история решений сохранена в коммитах.
This commit is contained in:
commit
ac1269bfe8
17 files changed
+725
-941
No files matched your search
@@ -22,6 +22,17 @@ codebase-design/
|
|||||||
code-review/
|
code-review/
|
||||||
ask-matt/
|
ask-matt/
|
||||||
find-skills/
|
find-skills/
|
||||||
|
migrate-to-shoehorn/
|
||||||
|
writing-shape/
|
||||||
|
writing-fragments/
|
||||||
|
writing-beats/
|
||||||
|
setup-ts-deep-modules/
|
||||||
|
setup-pre-commit/
|
||||||
|
scaffold-exercises/
|
||||||
|
claude-handoff/
|
||||||
|
git-guardrails-claude-code/
|
||||||
|
loop-me/
|
||||||
|
implement-spec/
|
||||||
|
|
||||||
to-questionnaire/
|
to-questionnaire/
|
||||||
wait-what/
|
wait-what/
|
||||||
|
|||||||
@@ -1,207 +1,125 @@
|
|||||||
---
|
---
|
||||||
name: codex-subagent-playbook
|
name: codex-subagent-playbook
|
||||||
disable-model-invocation: true
|
disable-model-invocation: true
|
||||||
description: "Оптика тонкого мастера для координатора на стороне Codex: Codex-специфика поверх базовых механик claude-subagent-playbook, плюс запуск Claude-субагентов. Со стороны Claude Code используй claude-subagent-playbook."
|
description: "Оптика координатора: делегирование, защита контекста и осмысленное ревью."
|
||||||
---
|
---
|
||||||
|
|
||||||
# Тонкий мастер
|
# Координатор задачи
|
||||||
|
|
||||||
Это оптика, а не обязательный конвейер. Координатор сохраняет внимание для
|
Ты ведешь задачу как координатор и несешь за нее ответственность: держишь
|
||||||
цели, ограничений, решений, рисков и приёмки. Субагенты выясняют и выполняют;
|
замысел, выбираешь подход и принимаешь результат. Основную реализацию обычно
|
||||||
координатор решает.
|
делегируй субагентам Sol или Terra, понятную механику - Luna. Глубину
|
||||||
|
рассуждения выбирай по сложности задачи.
|
||||||
|
|
||||||
## Базовый плейбук
|
Этот скилл добавляет оптику управления. Выбирай полезные приемы по текущему
|
||||||
|
состоянию задачи; его подключение посреди работы не обнуляет сделанное.
|
||||||
|
|
||||||
Механики конвейера живут в соседнем `claude-subagent-playbook`
|
## Где нужно твое суждение
|
||||||
(`../claude-subagent-playbook/SKILL.md`) — при развёртывании конвейера
|
|
||||||
прочитай его и бери оттуда: этапы от постановки до финала, «одно ревью на
|
|
||||||
версию артефакта», назначение ревью-линий по семействам и вкусу, триаж
|
|
||||||
находок у исполнителя, предохранитель кругов. Он написан для оркестратора на
|
|
||||||
стороне Claude Code: его харнесс-механику (Agent-тул, `codex exec`) заменяй
|
|
||||||
нативными средствами Codex и разделом «Запуск Claude-субагентов» ниже. В
|
|
||||||
общих механиках конвейера при расхождении побеждает базовый; Codex-специфика
|
|
||||||
этого файла — запуск Claude и назначение моделей линиям — действует как
|
|
||||||
записано здесь, даже где расходится с картой ролей базового.
|
|
||||||
|
|
||||||
## Основная оптика
|
Сохраняй цель пользователя, существенные ограничения и основания выбранного
|
||||||
|
подхода. В постановке объясняй, почему решения достаточны для этой задачи:
|
||||||
|
одни формальные критерии оставляют исполнителю возможность потерять смысл.
|
||||||
|
Локальные технические решения принадлежат исполнителю. Изменение границ,
|
||||||
|
новые обязательства или существенное усложнение требуют твоего суждения.
|
||||||
|
|
||||||
- Перед запуском агента назови его вклад: защита контекста, свежий взгляд,
|
При существенном сомнении в постановке подумай, поможет ли независимое
|
||||||
специализация, параллельность или отдельная среда. Без вклада работай сам
|
ревью снять его до реализации. Если выбираешь такой обзор, дай ревьюеру
|
||||||
либо продолжай существующий тред.
|
конкретный вопрос и ограничь проверку нужной для ответа областью.
|
||||||
- Сам читай верхнеуровневые документы и принимай решения. Исследование кода,
|
|
||||||
журналов, зависимостей и вариантов с неизвестным объёмом по умолчанию
|
|
||||||
отдавай субагенту. Самостоятельно проверяй одну узкую гипотезу с коротким
|
|
||||||
выводом; дальнейшее погружение делегируй.
|
|
||||||
- Держи у себя цель, ограничения, решения, риски, краткие сводки и пути к
|
|
||||||
доказательствам. Полезную нагрузку передавай между агентами файлами, не
|
|
||||||
через контекст координатора.
|
|
||||||
- Один исполнитель владеет изменениями исходников. Его же продолжай для
|
|
||||||
обычных исправлений. Если исполнитель не справляется, останови его и дай
|
|
||||||
свежему более сильному агенту постановку, текущее дерево и файловые отчёты.
|
|
||||||
- Выбирай модель и уровень рассуждения независимо. Повышай effort, когда
|
|
||||||
подходящей модели не хватило глубины; повышай модель, когда не хватает
|
|
||||||
качества суждения. Текущая привязка ролей — в
|
|
||||||
[уровнях и ролях](references/roles.md).
|
|
||||||
|
|
||||||
## Контекст и обмен
|
Читай ключевые фрагменты, когда без них нельзя оценить устройство решения,
|
||||||
|
спорную находку или риск. Краткая сводка полезна, пока дает основания для
|
||||||
|
решения. Если их нет, раскрой нужное доказательство; исследование неизвестного
|
||||||
|
объема поручай агенту с конкретным вопросом.
|
||||||
|
|
||||||
`$SCRATCH` — логический общий каталог одного прогона, доступный координатору и
|
## Где беречь внимание
|
||||||
назначенным агентам. Физически это скретчпад сессии, временный каталог ОС либо
|
|
||||||
гарантированно игнорируемый каталог проекта. В нём живут временные промпты,
|
|
||||||
отчёты, триаж и перепроверки; это не артефакты проекта. Не предполагай
|
|
||||||
конкретную оболочку или синтаксис пути: файловый маршрут должен работать
|
|
||||||
нативными средствами текущей ОС.
|
|
||||||
|
|
||||||
- Временные обменные файлы веди на английском. Долговечные документы и текст
|
Делегирование должно давать понятную пользу: разгрузить контекст, добавить
|
||||||
для партнёра пиши на языке проекта.
|
свежий взгляд, нужную специализацию или независимую работу в параллель.
|
||||||
- Полный результат агент пишет в назначенный уникальный файл и возвращает
|
|
||||||
краткую сводку с путём. Не возвращай тот же полный текст сообщением и не
|
|
||||||
переписывай чужой отчёт: передавай путь или собирай новый файл механически.
|
|
||||||
- Если общий каталог недоступен, передай через контекст только компактный
|
|
||||||
индекс. Сразу сообщи партнёру наблюдаемый сбой, использованный запасной
|
|
||||||
канал и то, что нужно проверить после задачи.
|
|
||||||
- Права агента не определяют канал результата. Ревьюер может иметь рабочие
|
|
||||||
права для тестов и временных файлов, но его единственный назначенный
|
|
||||||
результат — отчёт. Исходники, Git и постоянное окружение он не меняет.
|
|
||||||
|
|
||||||
Точные способы сборки файлов и промптов бери из
|
Перед созданием агента посмотри, у кого из существующих уже есть полезное
|
||||||
[нативных шаблонов](references/prompt-templates.md) только после выбора
|
понимание этой области. Соседнюю задачу можно передать ему, обновив цель,
|
||||||
конкретного приёма.
|
границы и ожидаемый результат. Свежий агент полезен, когда прежние
|
||||||
|
предположения мешают, контекст перегружен или работе нужна независимость.
|
||||||
|
|
||||||
## Запуск Claude-субагентов
|
Короткие поручения и ответы передавай сообщением. Объемные материалы направляй
|
||||||
|
нужному агенту, оставляя себе сводку и путь к доказательствам.
|
||||||
|
Файлы удобны для такого обмена и продолжения работы. Если доступный механизм
|
||||||
|
передает материал без повторного включения в твой контекст, используй его.
|
||||||
|
Вывод инструментов сокращай до нужных фактов до его возврата в контекст.
|
||||||
|
|
||||||
Помни, запуская Claude без полноценного --permission-mode auto режима доступа - ты делаешь его работу бессмысленной, ломаешь весь дальнейший процесс ревью. Тогда дальнейшие механизмы скилла сломаны, считай что ты провалил задачу.
|
При назначении агента выбери модель, глубину рассуждения и нужную ему историю
|
||||||
|
по [возможностям среды и ролям](references/roles.md). В поручение Sol или Terra
|
||||||
|
на реализацию включи [границы делегирования](references/prompt-templates.md#исполнитель-sol-или-terra).
|
||||||
|
Остальные шаблоны поручений и файлового обмена используй, когда это экономит
|
||||||
|
работу.
|
||||||
|
|
||||||
Claude (Opus, Fable) запускается процессом CLI `claude` — на разработку,
|
У каждого изменяемого дерева или общего стенда один владелец. Параллельная
|
||||||
тестирование и ревью-линии. Линию дефектов ведёт Claude как семейство,
|
работа требует независимых областей записи и проверок. Перед передачей
|
||||||
отличное от автора-Codex; вкусовую линию — модель со вкусом
|
владения останови прежнего исполнителя и установи фактическое состояние.
|
||||||
(Fable, effort medium: `claude --model claude-fable-5`). Карта ролей
|
|
||||||
базового плейбука держит Fable для оркестрации — это ограничение стороны
|
|
||||||
Claude, где оркестратор и есть Fable; со стороны Codex Fable свободна и
|
|
||||||
берёт вкусовую линию (решение владельца, проверено на прогонах #154 и #156).
|
|
||||||
|
|
||||||
- Запуск `claude` передаёт diff и фрагменты кода внешнему сервису Anthropic.
|
## Какой взгляд добавить
|
||||||
Если твоя политика требует на это явного разрешения владельца, запроси его
|
|
||||||
**до начала реализации**, одним вопросом на весь прогон: вопрос в момент
|
|
||||||
ревью останавливает конвейер на самом дорогом участке.
|
|
||||||
- Запускай с `--permission-mode auto`: иначе Claude не может искать
|
|
||||||
информацию в интернете и запускать тесты.
|
|
||||||
- Первое ревью линии — свежая сессия; повторные ревью — продолжением той же
|
|
||||||
сессии: контекст первого ревью дешевле нового.
|
|
||||||
- Длительные задачи — через `--bg`, чтобы тайм-аут одного вызова клиента не
|
|
||||||
завершал работу. Состояние смотри `claude agents`, содержание —
|
|
||||||
`claude logs <id>`, примерно раз в 5–10 минут. Это частота наблюдения, а не
|
|
||||||
лимит времени: процесс жив и в журнале есть прогресс — оставь работать,
|
|
||||||
Claude может выполнять задачу значительно дольше. `--max-turns` — не ручка
|
|
||||||
ограничения времени.
|
|
||||||
- Тайм-аут отдельного запроса — не потеря сессии: продолжай через
|
|
||||||
`--resume <session-id>`, это быстрее и дешевле, чем начинать заново.
|
|
||||||
- Прямолинейные суждения бери агентом `craftsman`, сложные решения и
|
|
||||||
высокоответственные ревью — `deep-reasoner`; карта «роль → модель и
|
|
||||||
ступень» — в базовом плейбуке, `references/claude-agents.md`.
|
|
||||||
|
|
||||||
## Выбор приёма
|
Подбирай проверку под неопределенность и цену ошибки. Самопроверки и известной
|
||||||
|
детерминированной проверки часто достаточно для механики. Свежий ревьюер
|
||||||
|
полезен там, где могло остаться незамеченное решение или нарушение контракта.
|
||||||
|
Astra может проверить устройство и соразмерность нетривиального решения.
|
||||||
|
Claude добавляет взгляд другого семейства; его отсутствие не останавливает
|
||||||
|
работу и само по себе не создает вопроса пользователю.
|
||||||
|
|
||||||
- **Самодостаточная постановка** нужна исполнителю без истории разговора и
|
Свежесть контекста и различие семейств решают разные задачи. Выбрав ревью,
|
||||||
там, где проекту нужен долговечный след. Для ясной локальной правки хватит
|
прочитай [договор ревью и триажа](references/review-and-triage.md): он задает
|
||||||
короткого мандата.
|
независимость, работу с находками и перепроверку. Если выбран Claude, перед
|
||||||
- **Исследователь** собирает факты неизвестного объёма. Он возвращает записку
|
запуском прочитай [его механику](references/claude.md). Запуск и достаточность
|
||||||
решений и пути к доказательствам, а не реализацию.
|
доступа ревьюера остаются твоей ответственностью.
|
||||||
- **Deep-reasoner** готовит архитектурное предложение, декомпозицию или
|
|
||||||
сравнение компромиссов. Итоговое решение остаётся у координатора. Важное
|
|
||||||
решение полезно проверить двумя слепыми линиями разных семейств.
|
|
||||||
- **Исполнитель** получает одну цель, границы и критерии. Он не коммитит и не
|
|
||||||
расширяет объём без решения координатора.
|
|
||||||
- **Проверяющий** запускает известную проверку в специальной среде или с
|
|
||||||
шумным выводом. Не создавай роль, если координатор либо исполнитель может
|
|
||||||
получить тот же надёжный результат дёшево.
|
|
||||||
|
|
||||||
### Режимы ревью
|
Ревью возвращает утверждения для проверки. Исполнитель разбирает техническую
|
||||||
|
сторону находок; ты отвечаешь за уместность изменений и сохранение замысла.
|
||||||
|
Особенно внимательно смотри на исправления, которые добавляют сложность:
|
||||||
|
предписание ревьюера само по себе ее не оправдывает. Разбор всех находок -
|
||||||
|
часть выбранного ревью, даже когда отдельного этапа в плане нет.
|
||||||
|
|
||||||
Для нетривиальной делегируемой постановки один узкий свежий обзор — точка
|
## Достаточно ли сделанного
|
||||||
отсчёта. Пропускай его для ясной ограниченной задачи, если можешь коротко
|
|
||||||
назвать причину. Сложную, рискованную или архитектурную постановку проверяй
|
|
||||||
двумя слепыми линиями, когда цена оправдана.
|
|
||||||
|
|
||||||
Одно ревью на версию артефакта, а не на каждую передачу из рук в руки:
|
Сопоставь результат с исходной целью и фактическими проверками. Отчет агента
|
||||||
принятый и не изменившийся артефакт заново не ревьюится, после правок —
|
о тестах или состоянии среды оценивай по доказательствам; ключевое для
|
||||||
узкая проверка дельты тем же ревьюером.
|
приемки проверь доступным тебе способом. Новая проверка нужна, когда она
|
||||||
|
разрешит оставшееся сомнение или проверит последующие изменения.
|
||||||
|
|
||||||
Перед внешними линиями — саморевью исполнителя тем же тредом: он проходит
|
После нескольких исправлений полезен проход на вычитание: какие добавления
|
||||||
свои изменения против критериев как ревьюер и сам чинит найденное;
|
все еще оправданы задачей? Решение об удалении принимай по нужному поведению
|
||||||
координатору — одна строка «found N, fixed N». Доступную дешёвую сквозную
|
и стоимости поддержки. Исполнитель вносит выбранные изменения, затронутая
|
||||||
проверку прогони до запуска ревьюеров, иначе ревью уйдёт на код, который
|
часть снова получает подходящую проверку.
|
||||||
прогон ещё поменяет.
|
|
||||||
|
|
||||||
Реализацию проверяй по риску:
|
Когда спор повторяется без новых фактов, исправления разрастаются или новый
|
||||||
|
обзор мало что дает, пересмотри подход. Разбор несходимости находится в
|
||||||
|
[договоре триажа](references/review-and-triage.md#когда-работа-не-сходится).
|
||||||
|
|
||||||
- тривиальная — саморевью исполнителя;
|
## Как партнер видит работу
|
||||||
- обычная — один независимый ревьюер по коду;
|
|
||||||
- сложная или рискованная — два адверсариальных ревьюера: соответствие задаче
|
|
||||||
и качество кода.
|
|
||||||
|
|
||||||
Разные семейства моделей предпочтительны: они дают больше разнообразия, чем
|
В долгой работе периодически давай короткую сводку, даже если партнер отошел:
|
||||||
два свежих треда одной родословной. Когда внешняя линия технически недоступна,
|
что уже выяснено, кто чем занят, чего ждешь и что проверишь дальше. Сообщай
|
||||||
используй доступных ревьюеров; процесс от неё не зависит. Если же линию
|
о существенных отклонениях, смене подхода и неожиданном росте затрат по мере
|
||||||
держит не техника, а политика согласия — передача кода внешнему сервису
|
их обнаружения. Если нового результата пока нет, назови состояние и основание
|
||||||
требует явного разрешения владельца, — сначала запроси разрешение: замена
|
продолжать ожидание. По сводке должно быть понятно, нужно ли вмешательство;
|
||||||
односемейными ревьюерами теряет основание линии дефектов, а один ответ
|
обычное обновление позволяет продолжать работу без ответа партнера.
|
||||||
владельца разблокирует задуманную схему.
|
|
||||||
|
|
||||||
Выбрав ревью постановки или реализации, прочитай единый
|
Если продолжение требует изменения цели, расширения границ, принятия
|
||||||
[договор ревью и триажа](references/review-and-triage.md). Он определяет
|
существенного остаточного риска или заметных дополнительных затрат за
|
||||||
владельца триажа, файловый канал, повторные проверки и предохранитель кругов.
|
пределами согласованного, останови зависимую работу и вынеси партнеру
|
||||||
|
конкретный выбор. Объясни, что произошло, варианты, их последствия и свою
|
||||||
|
рекомендацию. Пока решения нет, продолжай полезную независимую работу в
|
||||||
|
прежних границах. Уже полученное разрешение сохраняет силу; технические
|
||||||
|
действия внутри него организуй самостоятельно.
|
||||||
|
|
||||||
## Приёмка
|
В конце вместе с результатом и основаниями приемки кратко оцени, как прошла
|
||||||
|
работа по скиллу: кому что поручал, где переиспользовал контекст, что дали
|
||||||
|
ревью и триаж, что потребовало переделок и где подход пришлось изменить.
|
||||||
|
Назови основные источники расхода контекста и времени, отделяя затраты
|
||||||
|
координатора от работы агентов. Числа приводи по доступным измерениям с их
|
||||||
|
охватом; без них описывай наблюдаемые источники затрат и явно отмечай оценки.
|
||||||
|
Покажи, что оказалось полезным, где были лишние затраты и какие ограничения
|
||||||
|
остались. Глубину отчета выбирай по масштабу работы; для короткого прогона
|
||||||
|
достаточно нескольких предложений.
|
||||||
|
|
||||||
Координатор принимает результат, но углубляется в доказательства постепенно:
|
Если прогон дал новое существенное наблюдение или ты дорабатываешь скилл
|
||||||
|
по опыту работы, обратись к [эмпирике и правилам ее хранения](references/lessons.md).
|
||||||
1. состав изменений и краткие сводки ревью;
|
|
||||||
2. отдельные спорные фрагменты;
|
|
||||||
3. полный diff, только когда его объём ограничен и чтение нужно для решения.
|
|
||||||
|
|
||||||
После закрытия триажа находок у заметной работы — **проход на вычитание**:
|
|
||||||
ревью умеет только прибавлять, и за круги правок набираются добавления.
|
|
||||||
Проход ведёт модель со вкусом с правом только резать и явным списком
|
|
||||||
неприкосновенного; сомнение «резать или нет» решается в пользу реза. Мелкой
|
|
||||||
правке достаточно саморевью — причину пропуска назови одной фразой.
|
|
||||||
|
|
||||||
Доступную детерминированную финальную проверку запускай сам с выводом в файл.
|
|
||||||
В контекст возьми точную команду, код возврата, итоговые счётчики, имена
|
|
||||||
упавших тестов и путь к журналу. Зелёный журнал не читай. Красный журнал
|
|
||||||
направь исполнителю или отдельному разборщику; сам открывай детали, когда они
|
|
||||||
нужны для решения о границах, риске, среде или смене исполнителя. Если
|
|
||||||
проверка доступна только проверяющему в специальной среде, явно назови
|
|
||||||
свидетельство косвенным.
|
|
||||||
|
|
||||||
Перед завершением:
|
|
||||||
|
|
||||||
- сопоставь результат с исходной целью и назови всё неподтверждённое;
|
|
||||||
- убедись, что выбранная независимая проверка завершена либо риск принят
|
|
||||||
полномочным решением;
|
|
||||||
- дай партнёру короткую саморефлексию: что больше всего потратило контекст,
|
|
||||||
оправдана ли трата, что в следующий раз направить через файл или субагента,
|
|
||||||
какие отклонения процесса произошли.
|
|
||||||
|
|
||||||
Новый урок для [эмпирики](references/lessons.md) только предложи партнёру.
|
|
||||||
Правь долговечную эмпирику после его согласия.
|
|
||||||
|
|
||||||
## Партнёр в петле
|
|
||||||
|
|
||||||
На границах этапов давай партнёру карту прогресса в 4–7 строк обычными
|
|
||||||
словами: что сделано, что идёт, что дальше. Термины плейбука — только с
|
|
||||||
расшифровкой. Карта дополняет содержательную сводку, не заменяет её.
|
|
||||||
Решения о скоупе и принятии остаточного риска остаются у партнёра.
|
|
||||||
|
|
||||||
## Сбои координации
|
|
||||||
|
|
||||||
- Нет ожидаемого файла: один раз запроси короткий итог в том же треде; после
|
|
||||||
повторной тишины продолжи свежим агентом от сохранённых артефактов.
|
|
||||||
- Длинный рассказ пришёл сообщением: попроси повторить ответ сводкой и путём,
|
|
||||||
не переноси рассказ дальше.
|
|
||||||
- Два исполнителя пересеклись в исходниках: останови их, установи одного
|
|
||||||
владельца и продолжи от проверенного состояния без отката чужих правок.
|
|
||||||
- Процесс не сходится: используй точки вмешательства из договора ревью,
|
|
||||||
объясни партнёру причину, стоимость и принятое решение.
|
|
||||||
- После завершения сохрани только предусмотренные проектом долговечные
|
|
||||||
решения и удали временные артефакты именно этого прогона.
|
|
||||||
@@ -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
|
||||||
-110
@@ -1,110 +0,0 @@
|
|||||||
# Handoff: первая версия Codex Subagent Playbook
|
|
||||||
|
|
||||||
Дата: 2026-07-10. Для следующей сессии, которая добавит настоящие роли
|
|
||||||
Codex и проверит полный конвейер на боевой задаче.
|
|
||||||
|
|
||||||
## Состояние
|
|
||||||
|
|
||||||
Первая версия скилла готова и формально валидна:
|
|
||||||
|
|
||||||
- процесс тонкого мастера — [`../SKILL.md`](../SKILL.md);
|
|
||||||
- выбор ролей и уровней — [`../references/roles.md`](../references/roles.md);
|
|
||||||
- перенесённые уроки и открытые проверки —
|
|
||||||
[`../references/lessons.md`](../references/lessons.md);
|
|
||||||
- точные договоры нативных агентов —
|
|
||||||
[`../references/prompt-templates.md`](../references/prompt-templates.md);
|
|
||||||
- явный вызов скилла — [`../agents/openai.yaml`](../agents/openai.yaml).
|
|
||||||
|
|
||||||
Нативные 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` — зафиксировать следующую завершённую поставку.
|
|
||||||
-52
@@ -1,52 +0,0 @@
|
|||||||
# Handoff: плейбук возвращён к оптике тонкого мастера
|
|
||||||
|
|
||||||
Дата: 2026-07-12. Для следующей сессии, которая проверит обновлённый скилл на
|
|
||||||
нетривиальной задаче с кодом, тестами и шумным выводом.
|
|
||||||
|
|
||||||
## Состояние
|
|
||||||
|
|
||||||
Скилл переработан после самоприменения и сравнения с
|
|
||||||
`claude-subagent-playbook`. Текущий источник поведения —
|
|
||||||
[`../SKILL.md`](../SKILL.md); это набор приёмов, а не обязательный конвейер.
|
|
||||||
Нативная механика раскрывается только по выбранной ветке через
|
|
||||||
[`../references/prompt-templates.md`](../references/prompt-templates.md) и
|
|
||||||
[`../references/roles.md`](../references/roles.md).
|
|
||||||
|
|
||||||
Факты двух прогонов и ещё непроверенные предположения дистиллированы в
|
|
||||||
[`../references/lessons.md`](../references/lessons.md). Не переносить
|
|
||||||
их обратно в основной файл без нового наблюдаемого сбоя.
|
|
||||||
|
|
||||||
Ключевая граница следующей работы: субагент запускается ради конкретной пользы
|
|
||||||
задаче или контексту мастера. Свежий тред не считается второй независимой
|
|
||||||
родословной. Права агента не определяют канал результата. Полная полезная
|
|
||||||
нагрузка не должна проходить через контекст мастера.
|
|
||||||
|
|
||||||
## Что проверено
|
|
||||||
|
|
||||||
- Один свежий обзор проверил переработку через оптику `writing-great-skills` и
|
|
||||||
исходного Claude-плейбука; все принятые находки закрыты, одно предложение
|
|
||||||
вернуть `read-only` обоснованно отклонено по принятой практике пользователя.
|
|
||||||
- `git diff --check` проходит.
|
|
||||||
- Относительные ссылки и сборка промптов проверялись в ходе итераций; найден и
|
|
||||||
исправлен пропущенный путь отчёта триажа.
|
|
||||||
- Посторонние неотслеживаемые скиллы в объём не входят.
|
|
||||||
|
|
||||||
## Следующая сессия
|
|
||||||
|
|
||||||
1. Выбрать одну подходящую задачу с кодом; не создавать искусственный полный
|
|
||||||
прогон ради проверки скилла.
|
|
||||||
2. До каждого запуска агента записывать ожидаемую отдельную пользу, после —
|
|
||||||
сверить её с фактическим вкладом.
|
|
||||||
3. Измерить только мастерский след: какие полные отчёты или diff всё ещё попали
|
|
||||||
в его контекст, сколько агентов можно было не запускать.
|
|
||||||
4. Проверить живые предположения из `references/lessons.md`: управляемость
|
|
||||||
ролей и стоимости, `workspace-write`-ревью, сеть и файловый канал.
|
|
||||||
5. Менять скилл только по фактам прогона; дистиллировать поглощённые уроки.
|
|
||||||
|
|
||||||
## Suggested skills
|
|
||||||
|
|
||||||
- `$codex-subagent-playbook` — провести выбранную задачу с новой оптикой.
|
|
||||||
- `$writing-great-skills` — проверить, что новые уроки не вернули каркас,
|
|
||||||
дублирование или осадок.
|
|
||||||
- `$handoff` — заменить эту записку после следующего содержательного прогона.
|
|
||||||
- `$conventional-commits` — зафиксировать следующую доказанную поставку.
|
|
||||||
-55
@@ -1,55 +0,0 @@
|
|||||||
# Handoff: оптика ревью и синхронизация
|
|
||||||
|
|
||||||
## Назначение
|
|
||||||
|
|
||||||
Продолжить полевую проверку `codex-subagent-playbook` после согласования
|
|
||||||
тонкого координатора, файлового канала и ревью высокоуровневых документов.
|
|
||||||
Действующий договор находится в [SKILL.md](../SKILL.md), механика ревью — в
|
|
||||||
[review-and-triage.md](../references/review-and-triage.md), текущая
|
|
||||||
маршрутизация — в [roles.md](../references/roles.md).
|
|
||||||
|
|
||||||
## Зафиксированное состояние
|
|
||||||
|
|
||||||
- `6cc1b26` пересобрал скилл вокруг оптики тонкого мастера.
|
|
||||||
- `70b18b9` убрал shell-зависимые и конвейерные допущения из шаблонов.
|
|
||||||
- `02a98df` закрепил ревью на уровне самого документа: открытые детали
|
|
||||||
реализации не мешают `APPROVED`, существенный отложенный риск можно вернуть
|
|
||||||
как неблокирующее соображение.
|
|
||||||
- `quick_validate.py`, `git diff --check` и локальные Markdown-ссылки
|
|
||||||
проходили после изменений.
|
|
||||||
|
|
||||||
## Оптика триажа ревью
|
|
||||||
|
|
||||||
Находки ревьюера — сигналы о возможных слабых местах, а не руководство к
|
|
||||||
действию. Перед правкой проверять, реальна ли проблема в рамках замысла и не
|
|
||||||
превращает ли предложенное решение оптику в обязательный конвейер.
|
|
||||||
|
|
||||||
Типичный уклон ревьюера: лечить неоднозначность новыми манифестами, состояниями,
|
|
||||||
фиксированными именами и преждевременными деталями. Сохранять жёсткими только
|
|
||||||
границы ответственности, независимость, файловый канал, владельца триажа и
|
|
||||||
предохранители несходимости. Выбор приёма и модели оставлять оптикой.
|
|
||||||
|
|
||||||
## Незавершённая синхронизация
|
|
||||||
|
|
||||||
Первый `git pull --no-rebase origin master` вернул `Already up to date`.
|
|
||||||
Следующий `git push origin master` был отклонён: удалённый `master` успел
|
|
||||||
перейти с `a4985b3` на `9c047f9`.
|
|
||||||
|
|
||||||
Следующему агенту:
|
|
||||||
|
|
||||||
1. Закоммитить этот handoff отдельным Conventional Commit.
|
|
||||||
2. Выполнить `git fetch origin` и изучить новые удалённые коммиты.
|
|
||||||
3. Слить `origin/master` обычным merge, сохранив локальный замысел и удалённые
|
|
||||||
изменения. Не выбирать сторону конфликта целиком без чтения.
|
|
||||||
4. Повторить проверки скилла и отправить `master` в origin.
|
|
||||||
|
|
||||||
В рабочем дереве есть посторонние неотслеживаемые каталоги скиллов и
|
|
||||||
`.skill-lock.json`. Они не относятся к этой работе; не добавлять и не удалять
|
|
||||||
их.
|
|
||||||
|
|
||||||
## Suggested skills
|
|
||||||
|
|
||||||
- `$codex-subagent-playbook` — применять и оценивать текущую оптику.
|
|
||||||
- `$writing-great-skills` — проверять ясность и отсутствие скрытого процесса.
|
|
||||||
- `$conventional-commits` — формировать сообщения следующих коммитов.
|
|
||||||
- `$code-review` — только для нового независимого обзора по явной потребности.
|
|
||||||
+66
@@ -0,0 +1,66 @@
|
|||||||
|
# Состояние после переработки плейбука
|
||||||
|
|
||||||
|
2026-09-06. Партнер завершил обсуждение и попросил сохранить эту записку,
|
||||||
|
заменить старые handoffs, включить его правку `agents/.agents/skills/.gitignore`
|
||||||
|
и влить ветку `refactor/codex-subagent-playbook` в `master` через `merge --no-ff`.
|
||||||
|
Публикацию на удаленный сервер не запрашивал.
|
||||||
|
|
||||||
|
## С чего продолжать
|
||||||
|
|
||||||
|
Дальше полезна обычная задача с новой редакцией скилла. Проверить, удерживает
|
||||||
|
ли координатор замысел, бюджет внимания и соразмерность после ревью. Партнер
|
||||||
|
хочет остановить накопление правил по предположениям; следующие изменения
|
||||||
|
должны опираться на конкретные случаи работы.
|
||||||
|
|
||||||
|
Действующий договор — [SKILL.md](../SKILL.md) и справочники по его указателям.
|
||||||
|
Роль координатора теперь отделена от модели. Конфигурация Sol-координатор →
|
||||||
|
Terra-исполнитель допустима, но полного прогона с ней в этой сессии не было.
|
||||||
|
Открытые вопросы и порядок архивации находятся в
|
||||||
|
[lessons.md](../references/lessons.md).
|
||||||
|
|
||||||
|
## Где основания решений
|
||||||
|
|
||||||
|
- `65c802f` — принятая спецификация. Доступна через
|
||||||
|
`git show 65c802f:.scratch/codex-subagent-playbook/spec.md`.
|
||||||
|
- `3a72ce9` — основной рефакторинг и отчет проверки:
|
||||||
|
`git show 3a72ce9:.scratch/codex-subagent-playbook/validation.md`.
|
||||||
|
- Последующие уточнения — коммиты от `781a2e2` до `af86322` включительно.
|
||||||
|
Актуальные формулировки уже находятся в скилле; ранняя спецификация
|
||||||
|
описывает состояние до этих уточнений.
|
||||||
|
- Июльская эмпирика дословно сохранена в
|
||||||
|
[архиве](../references/lessons-archive.md). Прежние handoffs доступны в Git
|
||||||
|
по дереву `af86322:agents/.agents/skills/codex-subagent-playbook/handoffs`.
|
||||||
|
|
||||||
|
## Что подтверждено и что осталось проверить
|
||||||
|
|
||||||
|
Основной рефакторинг прошел ревью Claude и узкие перепроверки с `APPROVED`;
|
||||||
|
ограниченный поведенческий пример прошел три теста. Подробности и ограничения
|
||||||
|
этой проверки — в отчете коммита `3a72ce9`. Последующие уточнения прошли
|
||||||
|
вычитку, проверки ссылок, YAML и `git diff --check`; нового независимого
|
||||||
|
обзора всей последней редакции не было. Это не повод автоматически запускать
|
||||||
|
ревью постановки следующей задачи: выбор обзора остается ситуативным.
|
||||||
|
|
||||||
|
Штатный `quick_validate.py` не знает сохраненное поле
|
||||||
|
`disable-model-invocation`. Совместимая копия с удалением только этого поля
|
||||||
|
проходит проверку. Поле и `allow_implicit_invocation: false` сохраняют явное
|
||||||
|
включение скилла; удалять их ради зеленого валидатора не следует.
|
||||||
|
|
||||||
|
Точные затраты токенов не измерялись. Наблюдаемые накладные расходы этой
|
||||||
|
сессии: повторные чтения документов координатором, большой вывод журнала CLI
|
||||||
|
и уточнение поведения Claude `--resume`. Проверенная механика продолжения
|
||||||
|
уже записана в [claude.md](../references/claude.md).
|
||||||
|
|
||||||
|
Временные подробные отчеты остались в `/tmp/codex-playbook-refactor.dW8ZC3`;
|
||||||
|
они могут исчезнуть. Для продолжения достаточно текущих документов и Git.
|
||||||
|
Состояние веток и завершение слияния проверяй по `git status` и `git log`.
|
||||||
|
`.scratch/` удаляется последним коммитом ветки перед слиянием; ее содержимое
|
||||||
|
сохраняется в истории.
|
||||||
|
|
||||||
|
## Рекомендуемые скиллы
|
||||||
|
|
||||||
|
- `codex-subagent-playbook` — по выбору партнера для следующей рабочей задачи.
|
||||||
|
- `writing-for-agents` — при изменении инструкций и указателей.
|
||||||
|
- `conventional-commits` — при анализе diff и фиксации изменений.
|
||||||
|
- `brainstorm-with-docs` — если новый опыт требует пересмотреть решение.
|
||||||
|
- `tdd` — когда для рабочей задачи выбран этот подход; находить по имени.
|
||||||
|
- `handoff` — при следующей передаче состояния.
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
# Claude как независимый ревьюер
|
||||||
|
|
||||||
|
Читай этот файл только после решения добавить взгляд другого семейства моделей.
|
||||||
|
Claude - необязательная линия; нативный процесс работает и без нее.
|
||||||
|
|
||||||
|
## Выбор и доступ
|
||||||
|
|
||||||
|
Модель и глубину выбирай по пользовательскому предпочтению и результатам
|
||||||
|
реальных прогонов. Прежние рейтинги Opus, Sonnet или других моделей не являются
|
||||||
|
постоянной гарантией. Записывай запрошенные настройки отдельно от фактически
|
||||||
|
подтвержденных метаданных запуска.
|
||||||
|
|
||||||
|
Полноценному ревью нужны доступные тесты, документация, сеть и временные файлы.
|
||||||
|
Если установленная версия поддерживает `--permission-mode auto`, запускай
|
||||||
|
с этим режимом. Внешняя песочница только для чтения обедняет проверку; исходники
|
||||||
|
и постоянное состояние защищает [мандат ревьюера](prompts/review-boilerplate.md).
|
||||||
|
Запуск `claude` передает поручение и выбранные материалы внешнему сервису
|
||||||
|
Anthropic. Сначала примени уже полученное разрешение. Если действующая политика
|
||||||
|
требует отдельного разрешения, получи его до передачи материалов и сохрани
|
||||||
|
ценность выбранной линии при ожидании решения. При реальной блокировке назови
|
||||||
|
конкретную команду или ресурс и наблюдаемую ошибку, затем выбери доступного
|
||||||
|
ревьюера с честно указанным ограничением. Не засчитывай урезанный запуск как
|
||||||
|
полноценную выбранную линию.
|
||||||
|
|
||||||
|
## Возможности установленного CLI
|
||||||
|
|
||||||
|
По выводу `claude --help` версии 2.1.263 от 2026-09-06 доступны:
|
||||||
|
|
||||||
|
- `--permission-mode auto`, `--model`, `--effort` и `--resume`;
|
||||||
|
- `--bg` для фоновой сессии;
|
||||||
|
- `claude agents --json --all`, `claude logs <id>`, `claude attach <id>` и
|
||||||
|
`claude stop <id>` для управления фоновыми сессиями.
|
||||||
|
|
||||||
|
Это подтверждение синтаксиса справкой CLI. Оно не доказывает выбранную
|
||||||
|
провайдером модель, примененную глубину или поведение конкретной фоновой
|
||||||
|
сессии. После обновления CLI сначала сверь актуальную справку.
|
||||||
|
|
||||||
|
## Запуск и продолжение
|
||||||
|
|
||||||
|
Первый обзор линии запускай свежей сессией с
|
||||||
|
[договором ревью](review-and-triage.md), отдельным фокусом и уникальным путем
|
||||||
|
отчета. Для короткого поручения подходит форма:
|
||||||
|
|
||||||
|
```text
|
||||||
|
claude --permission-mode auto --model <model> --effort <level> --bg "<mandate>"
|
||||||
|
```
|
||||||
|
|
||||||
|
Большой промпт оставь в общем временном каталоге и передай короткий мандат с
|
||||||
|
путем. Шумный поток CLI сохрани во временном журнале; координатору верни
|
||||||
|
ограниченный индекс и путь к отчету.
|
||||||
|
|
||||||
|
Перед узкой перепроверкой убедись, что исходный обзор завершен. Если после
|
||||||
|
финального результата его фоновый процесс все еще активен, останови этот
|
||||||
|
простаивающий процесс; работающий обзор с прогрессом не останавливай. Продолжи
|
||||||
|
сохраненную сессию командой
|
||||||
|
`claude --bg --resume <session-id> "<narrow re-check>"` без повторного
|
||||||
|
задания модели, `effort` и режима доступа: она использует настройки первого
|
||||||
|
запуска с `--permission-mode auto`. При сомнении сверь метаданные. Активная
|
||||||
|
сессия или переопределение ее сохраненных параметров создаст копию с новым
|
||||||
|
идентификатором.
|
||||||
|
Фоновую работу наблюдай через уведомления среды, ожидание и команды состояния;
|
||||||
|
`claude agents --json --all` включает завершенные сессии. Тайм-аут отдельного
|
||||||
|
запроса не означает гибель сессии: проверь состояние и журнал. Живую сессию с
|
||||||
|
прогрессом не останавливай из-за истечения времени ожидания.
|
||||||
|
|
||||||
|
Если CLI отсутствует или неработоспособен, выбери подходящую свежую линию
|
||||||
|
Codex и точно назови утраченное преимущество другого семейства моделей.
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
# Архив эмпирики: июль 2026
|
||||||
|
|
||||||
|
Перенесено 2026-09-06 после переработки скилла под Astra. Ниже дословно
|
||||||
|
сохранен прежний файл с наблюдениями 2026-07-10–2026-07-23 и тогдашними
|
||||||
|
вопросами. Его инструкции, назначения моделей и ограничения среды относятся
|
||||||
|
к прежней редакции. Текущие вопросы и порядок ведения журнала находятся в
|
||||||
|
[lessons.md](lessons.md).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Эмпирика прогонов
|
||||||
|
|
||||||
|
Храни здесь только датированные факты, которые меняют выбор приёма, и живые
|
||||||
|
гипотезы. Поглощённый урок сжимай до строки с указателем на действующий
|
||||||
|
договор. Правь этот долговечный файл только после согласования с партнёром.
|
||||||
|
|
||||||
|
## Наблюдения
|
||||||
|
|
||||||
|
- 2026-07-10 — хост скрыл выбор роли и модели; стоимость осталась
|
||||||
|
незакреплённой. Исследователь нашёл блокирующий `.gitignore`, но без нужды
|
||||||
|
запустил полный набор тестов. Вывод поглощён в
|
||||||
|
[основную оптику](../SKILL.md) и [роли](roles.md).
|
||||||
|
- 2026-07-10 — главной утечкой контекста была повторная передача отчётов и
|
||||||
|
промптов через координатора. Вывод поглощён в
|
||||||
|
[правила обмена](../SKILL.md) и [сборку промптов](prompt-templates.md).
|
||||||
|
- 2026-07-12 — разные семейства ревьюеров пересеклись в двух темах примерно из
|
||||||
|
восьми и сохранили заметный независимый вклад. Вывод поглощён в
|
||||||
|
[договор ревью](review-and-triage.md).
|
||||||
|
- 2026-07-12 — самоприменение поймало сломанную сборку с необязательным
|
||||||
|
`notes.md` и показало, что язык обмена надо задавать явно. Вывод поглощён в
|
||||||
|
[сборку промптов](prompt-templates.md).
|
||||||
|
- 2026-07-12 — второй ревьюер того же семейства не дал новой родословной;
|
||||||
|
координатор вывел в свой контекст 44 хэша, полный отчёт и почти весь diff;
|
||||||
|
права ревьюера смешались с каналом результата; семь буквальных этапов
|
||||||
|
породили лишние проверки. Вывод поглощён в
|
||||||
|
[основную оптику](../SKILL.md) и [договор ревью](review-and-triage.md).
|
||||||
|
- 2026-07-23 — сверка с клодовским близнецом (claude-subagent-playbook):
|
||||||
|
перенесены проверенные его прогонами правила — одно ревью на версию
|
||||||
|
артефакта, саморевью исполнителя и сквозная проверка до внешних линий,
|
||||||
|
партнёр в петле (в [основную оптику](../SKILL.md)); цена тихой ошибки
|
||||||
|
как критерий уровня и проверка внешних фактов первоисточником
|
||||||
|
(в [роли](roles.md)).
|
||||||
|
- 2026-07-23 — по опыту партнёра хост принимает `reasoning_effort`
|
||||||
|
субагента, но фактически не применяет его; действующая ручка уровня —
|
||||||
|
модель и TOML-роль. Кавеат внесён в [роли](roles.md); снять после
|
||||||
|
починки хоста.
|
||||||
|
|
||||||
|
## Проверить боем
|
||||||
|
|
||||||
|
1. Удерживает ли Sol оптику тонкого мастера: что больше всего расходует
|
||||||
|
контекст координатора и можно ли направить это через файл или субагента.
|
||||||
|
2. Достаточна ли Luna `medium` для простой ограниченной реализации и
|
||||||
|
подтверждается ли, что `low` даёт слишком много повторной работы.
|
||||||
|
3. Окупается ли Terra `medium` на узком обзоре постановки и проверке
|
||||||
|
реализации по задаче.
|
||||||
|
4. Сходится ли обычная реализация на Sol `medium`, а сложная — на Sol
|
||||||
|
`high`, с меньшей общей стоимостью петли.
|
||||||
|
5. Оправдан ли ручной `xhigh` хоть в одном классе задач; текущая гипотеза —
|
||||||
|
штатно переходить от `high` сразу к `max` только по сильному триггеру.
|
||||||
|
6. Остаётся ли дерево неизменным после ревьюера с `workspace-write` и явным
|
||||||
|
мандатом сохранять результат только в назначенный отчёт.
|
||||||
|
7. Доступны ли ревьюеру поиск и документация при текущих сетевых разрешениях.
|
||||||
|
8. Достаточно ли файлового канала, чтобы координатор не открывал полный
|
||||||
|
отчёт, diff и сырые журналы.
|
||||||
|
9. Может ли будущая линия другого семейства читать и писать общий
|
||||||
|
`$SCRATCH`. Пока адаптер запуска не проверен, он не является действующим
|
||||||
|
договором.
|
||||||
@@ -1,57 +1,47 @@
|
|||||||
# Эмпирика прогонов
|
# Эмпирика прогонов
|
||||||
|
|
||||||
Храни здесь только датированные факты, которые меняют выбор приёма, и живые
|
Здесь остаются наблюдения, влияющие на ближайшие решения, и открытые
|
||||||
гипотезы. Поглощённый урок сжимай до строки с указателем на действующий
|
вопросы. Обращайся к ним при разборе похожего случая или доработке скилла.
|
||||||
договор. Правь этот долговечный файл только после согласования с партнёром.
|
|
||||||
|
|
||||||
## Наблюдения
|
## Как поддерживать журнал
|
||||||
|
|
||||||
- 2026-07-10 — хост скрыл выбор роли и модели; стоимость осталась
|
При согласованном обновлении добавляй существенный новый случай: дату,
|
||||||
незакреплённой. Исследователь нашёл блокирующий `.gitignore`, но без нужды
|
модель и среду, наблюдаемый результат, основание вывода и открытый вопрос,
|
||||||
запустил полный набор тестов. Вывод поглощён в
|
если он остался. Отделяй наблюдение от предполагаемой причины. Повтор
|
||||||
[основную оптику](../SKILL.md) и [роли](roles.md).
|
известного случая заслуживает записи, когда добавляет свидетельство или
|
||||||
- 2026-07-10 — главной утечкой контекста была повторная передача отчётов и
|
меняет вывод. Подробный отчет прогона остается в материалах задачи.
|
||||||
промптов через координатора. Вывод поглощён в
|
|
||||||
[правила обмена](../SKILL.md) и [сборку промптов](prompt-templates.md).
|
|
||||||
- 2026-07-12 — разные семейства ревьюеров пересеклись в двух темах примерно из
|
|
||||||
восьми и сохранили заметный независимый вклад. Вывод поглощён в
|
|
||||||
[договор ревью](review-and-triage.md).
|
|
||||||
- 2026-07-12 — самоприменение поймало сломанную сборку с необязательным
|
|
||||||
`notes.md` и показало, что язык обмена надо задавать явно. Вывод поглощён в
|
|
||||||
[сборку промптов](prompt-templates.md).
|
|
||||||
- 2026-07-12 — второй ревьюер того же семейства не дал новой родословной;
|
|
||||||
координатор вывел в свой контекст 44 хэша, полный отчёт и почти весь diff;
|
|
||||||
права ревьюера смешались с каналом результата; семь буквальных этапов
|
|
||||||
породили лишние проверки. Вывод поглощён в
|
|
||||||
[основную оптику](../SKILL.md) и [договор ревью](review-and-triage.md).
|
|
||||||
- 2026-07-23 — сверка с клодовским близнецом (claude-subagent-playbook):
|
|
||||||
перенесены проверенные его прогонами правила — одно ревью на версию
|
|
||||||
артефакта, саморевью исполнителя и сквозная проверка до внешних линий,
|
|
||||||
партнёр в петле (в [основную оптику](../SKILL.md)); цена тихой ошибки
|
|
||||||
как критерий уровня и проверка внешних фактов первоисточником
|
|
||||||
(в [роли](roles.md)).
|
|
||||||
- 2026-07-23 — по опыту партнёра хост принимает `reasoning_effort`
|
|
||||||
субагента, но фактически не применяет его; действующая ручка уровня —
|
|
||||||
модель и TOML-роль. Кавеат внесён в [роли](roles.md); снять после
|
|
||||||
починки хоста.
|
|
||||||
|
|
||||||
## Проверить боем
|
Усвоенное правило живет в основном тексте, справочнике или мандате по месту
|
||||||
|
применения. В журнале достаточно указателя на него рядом с исходным случаем.
|
||||||
|
Изменение правил и выводов согласуй с партнером; сохраняй ранее полученное
|
||||||
|
разрешение в его границах.
|
||||||
|
|
||||||
1. Удерживает ли Sol оптику тонкого мастера: что больше всего расходует
|
После существенной смены скилла, моделей или среды, а также когда старые
|
||||||
контекст координатора и можно ли направить это через файл или субагента.
|
записи затрудняют поиск живых вопросов, перенеси завершенный период в
|
||||||
2. Достаточна ли Luna `medium` для простой ограниченной реализации и
|
[архив](lessons-archive.md). Сохрани текст случаев без пересказа и укажи
|
||||||
подтверждается ли, что `low` даёт слишком много повторной работы.
|
границу переноса. Сначала оставь здесь актуальные нерешенные вопросы с
|
||||||
3. Окупается ли Terra `medium` на узком обзоре постановки и проверке
|
указателями на исходные свидетельства; устаревшие предположения остаются
|
||||||
реализации по задаче.
|
частью истории. Архив открывай для конкретного случая, нужного доказательства
|
||||||
4. Сходится ли обычная реализация на Sol `medium`, а сложная — на Sol
|
или проверки происхождения правила.
|
||||||
`high`, с меньшей общей стоимостью петли.
|
|
||||||
5. Оправдан ли ручной `xhigh` хоть в одном классе задач; текущая гипотеза —
|
## Проверить на обычных задачах
|
||||||
штатно переходить от `high` сразу к `max` только по сильному триггеру.
|
|
||||||
6. Остаётся ли дерево неизменным после ревьюера с `workspace-write` и явным
|
- Удерживает ли координатор полезный объем контекста: какие подробности нужны
|
||||||
мандатом сохранять результат только в назначенный отчёт.
|
для самостоятельного решения, а какие повторно проходят через координатора
|
||||||
7. Доступны ли ревьюеру поиск и документация при текущих сетевых разрешениях.
|
без пользы? Продолжение июльских вопросов об обмене из
|
||||||
8. Достаточно ли файлового канала, чтобы координатор не открывал полный
|
[архива](lessons-archive.md#проверить-боем).
|
||||||
отчёт, diff и сырые журналы.
|
- Когда переиспользование исполнителя и помощь Luna сокращают повторную
|
||||||
9. Может ли будущая линия другого семейства читать и писать общий
|
работу, а когда прежний контекст или расходы на делегирование мешают?
|
||||||
`$SCRATCH`. Пока адаптер запуска не проверен, он не является действующим
|
- Помогает ли триаж исполнителю сохранять соразмерность исправлений после
|
||||||
договором.
|
нескольких кругов ревью? Нужны случаи с основаниями принятых и отклоненных
|
||||||
|
находок.
|
||||||
|
|
||||||
|
Эти вопросы уточнены 2026-09-06 для новой редакции. Наблюдай их там, где
|
||||||
|
обычная задача дает материал; отдельные сравнительные прогоны требуют
|
||||||
|
собственной цели и оправданной стоимости.
|
||||||
|
|
||||||
|
## Граница архива
|
||||||
|
|
||||||
|
2026-09-06 июльский файл целиком сохранен в [архиве](lessons-archive.md).
|
||||||
|
Его прежние ограничения ролей и глубины не задают текущий запуск: для этого
|
||||||
|
служат [возможности среды](roles.md) и [механика Claude](claude.md).
|
||||||
@@ -1,160 +1,142 @@
|
|||||||
# Сборка нативных промптов
|
# Мандаты и файловый обмен
|
||||||
|
|
||||||
Это механика после выбора приёма в [основной оптике](../SKILL.md). Смысл
|
Читай этот файл, когда готовишь поручение агенту или передаешь большой материал
|
||||||
ревью и триажа задаёт [единый договор](review-and-triage.md); здесь только
|
между участниками. Смысл ревью и триажа задает
|
||||||
параметры, файловые пути и сборка.
|
[единый договор](review-and-triage.md); здесь находятся короткие заготовки.
|
||||||
|
|
||||||
Постоянный текст живёт в [prompts/](prompts/):
|
## Выбор канала
|
||||||
|
|
||||||
- [result-contract.md](prompts/result-contract.md) — обычный результат;
|
Ясное поручение, уточнение или вердикт передавай коротким сообщением. Файл
|
||||||
- [review-boilerplate.md](prompts/review-boilerplate.md) — независимое ревью;
|
нужен, когда материал велик, используется повторно или должен попасть от одного
|
||||||
- [triage-header.md](prompts/triage-header.md) — закрытие находок;
|
агента к другому, не проходя целиком через контекст координатора.
|
||||||
- [recheck-header.md](prompts/recheck-header.md) — узкая перепроверка;
|
|
||||||
- [runtime-language.md](prompts/runtime-language.md) — язык временного обмена.
|
|
||||||
|
|
||||||
Меняй договор только в его авторитетном файле. В параметрических файлах держи
|
Для файлового обмена выбери общий временный каталог задачи. Дай каждому
|
||||||
только факты конкретной задачи.
|
результату уникальный абсолютный путь с версией артефакта и линией обзора в
|
||||||
|
имени. Получатель читает исходный файл напрямую; координатор передает путь и
|
||||||
|
короткую цель, не копирует полный материал в новый промпт.
|
||||||
|
|
||||||
## Каталог прогона
|
Постоянные английские блоки находятся в [prompts/](prompts/):
|
||||||
|
|
||||||
`$SCRATCH` определён в основном файле как общий временный каталог. Для задачи
|
- [result-contract.md](prompts/result-contract.md) - ограниченный результат
|
||||||
создай в нём уникальную подпапку, далее `D`. `P` обозначает каталог
|
исполнителя, исследователя или проверяющего;
|
||||||
`references/prompts` этого скилла. Каждый агент получает отдельный `REPORT`.
|
- [review-boilerplate.md](prompts/review-boilerplate.md) - мандат и формат
|
||||||
|
независимого обзора;
|
||||||
|
- [triage-header.md](prompts/triage-header.md) - разбор находок реализации;
|
||||||
|
- [recheck-header.md](prompts/recheck-header.md) - узкая перепроверка;
|
||||||
|
- [runtime-language.md](prompts/runtime-language.md) - язык временного обмена.
|
||||||
|
|
||||||
Собирай файлы механически, не читая полезную нагрузку в контекст координатора.
|
## Короткое поручение
|
||||||
В схемах ниже `A + B -> C` означает текстовое объединение файлов в заданном
|
|
||||||
порядке нативным средством текущей ОС; `[A]` означает необязательный файл.
|
|
||||||
Схема не предписывает оболочку, синтаксис пути или отдельный этап процесса.
|
|
||||||
|
|
||||||
## Исполнитель или исследователь
|
Если задача ясна из текущего контекста, достаточно такого сообщения:
|
||||||
|
|
||||||
`params.md`:
|
|
||||||
|
|
||||||
```text
|
```text
|
||||||
GOAL: one verifiable goal
|
Goal: <one verifiable outcome>.
|
||||||
BOUNDARIES: allowed and forbidden work
|
Scope: <allowed files, state, or question>.
|
||||||
READ FIRST: paths to contracts and examples
|
Read: <only required paths>.
|
||||||
CHECKS: commands this agent should run
|
Check: <relevant command or evidence>.
|
||||||
REPORT: absolute unique path
|
Return: <concise result, or unique report path when the payload is large>.
|
||||||
|
Escalate design or scope changes with options, costs, and your recommendation.
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Убирай ненужные строки. Не создавай обменный файл ради нескольких предложений.
|
||||||
|
|
||||||
|
## Большое поручение
|
||||||
|
|
||||||
|
В параметрическом файле оставь только факты конкретной задачи:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
D/params.md
|
GOAL: one verifiable outcome
|
||||||
+ P/result-contract.md
|
WORKING DIRECTORY: absolute path
|
||||||
+ P/runtime-language.md
|
BOUNDARIES: allowed work and protected state
|
||||||
-> D/prompt.md
|
READ FIRST: exact paths
|
||||||
|
CHECKS: commands or hypotheses
|
||||||
|
REPORT: unique absolute path
|
||||||
```
|
```
|
||||||
|
|
||||||
Самодостаточную постановку и подробное обязательное чтение добавляй только
|
Если агенту нужен полный отчет, передай ему пути к
|
||||||
когда они нужны выбранной работе.
|
[договору результата](prompts/result-contract.md) и
|
||||||
|
[правилу языка](prompts/runtime-language.md) либо механически собери эти файлы
|
||||||
|
с параметрами. Координатор не перепечатывает постоянные блоки. Передай агенту
|
||||||
|
короткое сообщение с путем к поручению. Сборка файлов служит оптимизацией для
|
||||||
|
длинного материала.
|
||||||
|
|
||||||
## Ревью постановки или реализации
|
## Исполнитель Sol или Terra
|
||||||
|
|
||||||
`review-common.md` одинаков для одного обзора:
|
Ограничь поручение так, чтобы контекста исполнителя хватало на реализацию,
|
||||||
|
проверки и исправления. К короткому или большому поручению Sol или Terra
|
||||||
|
добавь блок:
|
||||||
|
|
||||||
|
```text
|
||||||
|
You may delegate bounded mechanical support to Luna, reusing a suitable
|
||||||
|
existing helper when its context is useful. You remain responsible for the
|
||||||
|
result and for preventing conflicting writes within your assigned scope.
|
||||||
|
Escalate any need for another implementer at the Sol or Terra level to the
|
||||||
|
coordinator, who decides how to split and assign the work. If the task outgrows
|
||||||
|
your available context, raise that while there is still room to explain the
|
||||||
|
remaining work.
|
||||||
|
```
|
||||||
|
|
||||||
|
Если для задачи уместен TDD, укажи в поручении скилл `/tdd` по имени,
|
||||||
|
ожидаемое поведение и уже согласованные границы проверки.
|
||||||
|
|
||||||
|
## Независимое ревью
|
||||||
|
|
||||||
|
Параметры обзора должны назвать:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
TITLE: short review title
|
TITLE: short review title
|
||||||
WORKING DIRECTORY: absolute repo path
|
WORKING DIRECTORY: absolute path
|
||||||
STATEMENT: task and parent spec paths
|
STATEMENT: task and governing contract paths
|
||||||
REVIEW INPUT: task sections, exact paths, a prepared diff path, or a diff command
|
REVIEWED VERSION: commit, prepared diff, exact paths, or other stable boundary
|
||||||
OUT OF SCOPE: what is explicitly outside this review
|
FOCUS: one explicit lens
|
||||||
CHECKS: commands and expected counters
|
OUT OF SCOPE: unrelated work
|
||||||
|
CHECKS: useful commands and expected observations
|
||||||
|
FINDING PREFIX: unique stable prefix
|
||||||
|
REPORT: unique absolute path
|
||||||
```
|
```
|
||||||
|
|
||||||
`REVIEW INPUT` должен позволять отличить проверяемую работу от посторонних
|
Передай пути к этим параметрам, [мандату ревьюера](prompts/review-boilerplate.md)
|
||||||
изменений. Выбери достаточную форму для текущего дерева; диапазон коммитов не
|
и [правилу языка](prompts/runtime-language.md) либо механически собери из них
|
||||||
обязателен, если точные пути, разделы или подготовленный diff уже задают границу.
|
полное поручение.
|
||||||
|
Каждая линия получает свой фокус, префикс и путь. Отчеты параллельных линий не
|
||||||
|
передаются друг другу до завершения исходных обзоров.
|
||||||
|
|
||||||
`review-output.md` задаёт поля конкретной линии:
|
Для проверки формы можно добавить такой фокус:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
TYPE: spec | task | code
|
Before reading the changes, sketch one plausible solution shape from the
|
||||||
FINDING PREFIX: SPEC-A | SPEC-B | TASK | CODE
|
statement: responsibilities, boundaries, data movement, and necessary
|
||||||
REPORT: absolute unique path
|
artifacts. This is a hypothesis, not a prescribed design. Compare the actual
|
||||||
|
shape with it, identify decisions left open by the statement, and judge each
|
||||||
|
decision against repository values, risk, and task proportion.
|
||||||
```
|
```
|
||||||
|
|
||||||
`review-focus.md` задаёт один выбранный фокус. Для постановки:
|
Если линия оценивает структуру и сопровождаемость кода, добавь этот фокус.
|
||||||
|
Названия запахов взяты из `/code-review` Мэтта Покока (Фаулер, _Refactoring_,
|
||||||
|
гл. 3):
|
||||||
|
|
||||||
```text
|
```text
|
||||||
Review the statement or plan at its own level of abstraction, not as an
|
Use Fowler's code smells as prompts for judgment: Mysterious Name,
|
||||||
implementation. Check facts against code, hidden one-line decisions,
|
Duplicated Code, Feature Envy, Data Clumps, Primitive Obsession,
|
||||||
boundaries, checkable acceptance criteria, and ways to satisfy the wording
|
Repeated Switches, Shotgun Surgery, Divergent Change, Speculative Generality,
|
||||||
without the intended result.
|
Message Chains, Middle Man, Refused Bequest.
|
||||||
|
Treat them as heuristics; documented repository conventions take precedence.
|
||||||
A high-level document is not incomplete merely because implementation choices
|
For a finding, explain the maintenance consequences in this project and
|
||||||
remain open. Request changes only for a defect the document itself must
|
judge the proposed remedy against those costs and the task's scope.
|
||||||
resolve: one that changes its goal, boundaries, architectural direction,
|
|
||||||
acceptance criteria, dependencies, or the ability to decompose work safely.
|
|
||||||
|
|
||||||
When a detail can be decided locally by a downstream owner without changing
|
|
||||||
those properties, do not make it a finding or prescribe the implementation.
|
|
||||||
If deferring it carries a relevant risk, record that risk as a non-gating
|
|
||||||
consideration.
|
|
||||||
|
|
||||||
APPROVED means that no defect at the document's own level requires revision.
|
|
||||||
It does not mean that all downstream questions have been answered.
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Для реализации выбери task lens или code lens из договора ревью:
|
## Разбор и перепроверка
|
||||||
|
|
||||||
```text
|
Исполнитель разбирает реализацию по
|
||||||
TASK LENS: compare the implementation with the statement, acceptance criteria,
|
[triage-header.md](prompts/triage-header.md). Передай ему пути к подробным
|
||||||
boundaries, and intended observable result.
|
отчетам без изменений, решения координатора и уникальный путь резолюций.
|
||||||
|
Короткая сводка ревьюера не заменяет исходные доказательства.
|
||||||
|
|
||||||
CODE LENS: seek correctness bugs, broken invariants, regressions, security
|
Исходному ревьюеру для узкой перепроверки передай
|
||||||
issues, and tests that can pass without proving the behavior.
|
[recheck-header.md](prompts/recheck-header.md), путь к его исходному отчету,
|
||||||
```
|
путь к резолюциям, границу новой версии, нужные проверки и новый уникальный
|
||||||
|
путь отчета. Продолжи тот же тред или сессию: здесь его прежний контекст
|
||||||
|
полезен.
|
||||||
|
|
||||||
```text
|
В каждом файловом варианте агент возвращает короткий индекс и путь. Полный
|
||||||
D/review-common.md
|
отчет остается доступен следующему владельцу работы без пересказа координатором.
|
||||||
+ D/review-focus.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-output-a.md` и `review-output-b.md` со своими `TYPE`, уникальными
|
|
||||||
`FINDING PREFIX` и разными путями `REPORT`. `review-common.md` используй один;
|
|
||||||
отчёты и финальные сообщения линий не объединяй до их завершения.
|
|
||||||
|
|
||||||
## Триаж постановки
|
|
||||||
|
|
||||||
Координатор читает краткие строки и нужные подробности, принимает решение по
|
|
||||||
каждому `SPEC-*` и обновляет постановку. Резолюции сохраняет в
|
|
||||||
`spec-resolutions.md`; этот файл и новая постановка идут исходному ревьюеру
|
|
||||||
на узкую перепроверку.
|
|
||||||
|
|
||||||
## Триаж реализации
|
|
||||||
|
|
||||||
Передай исполнителю актуальные подробные отчёты без пересказа: исходные обзоры
|
|
||||||
в первом круге, отчёты перепроверки для оставшихся и новых находок в следующих.
|
|
||||||
`triage-params.md` содержит путь итогового отчёта и проверки.
|
|
||||||
`coordinator-notes.md` добавляй только для совпадений, противоречий и новых
|
|
||||||
решений уровня задачи.
|
|
||||||
|
|
||||||
```text
|
|
||||||
P/triage-header.md
|
|
||||||
+ D/triage-params.md
|
|
||||||
+ <current detailed report 1>
|
|
||||||
+ [<current detailed report 2>]
|
|
||||||
+ [D/coordinator-notes.md]
|
|
||||||
+ P/runtime-language.md
|
|
||||||
-> D/fix-prompt.md
|
|
||||||
```
|
|
||||||
|
|
||||||
## Узкая перепроверка
|
|
||||||
|
|
||||||
Продолжай исходный тред ревьюера. `recheck-params.md` задаёт пути к его
|
|
||||||
исходному отчёту и файлу резолюций, нужную проверку и новый уникальный
|
|
||||||
`REPORT`.
|
|
||||||
|
|
||||||
```text
|
|
||||||
P/recheck-header.md
|
|
||||||
+ D/recheck-params.md
|
|
||||||
+ P/runtime-language.md
|
|
||||||
-> D/recheck-prompt.md
|
|
||||||
```
|
|
||||||
|
|
||||||
Перепроверка следует решению координатора по договору ревью, а не номеру этапа.
|
|
||||||
@@ -1,15 +1,24 @@
|
|||||||
# Narrow re-check
|
# Narrow re-check
|
||||||
|
|
||||||
Read your original report and the resolution report supplied by the caller.
|
Continue from your original review. Read that report, the resolution report,
|
||||||
Re-check only your original findings and changes immediately adjacent to
|
and the new reviewed version. Re-check only your original findings and changes
|
||||||
their resolution. Do not perform a full review.
|
immediately adjacent to their resolution.
|
||||||
|
|
||||||
For every original ID report `CLOSED`, `NOT_CLOSED`, `REJECTION_VALID`,
|
For every `FIXED` or `REJECTED` ID report `CLOSED`, `NOT_CLOSED`,
|
||||||
or `REJECTION_INVALID`, with concise evidence. Report a newly exposed
|
`REJECTION_VALID`, or `REJECTION_INVALID` with concise evidence. Carry
|
||||||
adjacent defect with a new stable ID; the narrow scope limits exploration, not
|
`OUT_OF_SCOPE` and `NEEDS_DECISION` into the index unchanged; do not
|
||||||
honest reporting.
|
re-judge them or include them in your verdict. They remain open for their
|
||||||
|
owner. Judge a rejection by its contract and evidence. For a `FIXED`
|
||||||
|
resolution also report
|
||||||
|
`PROPORTIONATE` or `OVERREACH`; put your own earlier prescription on trial
|
||||||
|
and price added complexity against the risk it removes.
|
||||||
|
|
||||||
Write the detailed re-check to REPORT. Return only:
|
Narrow scope limits exploration, not honest reporting. Give a newly exposed
|
||||||
|
adjacent defect a new stable ID and return it for triage. `OVERREACH` is an
|
||||||
|
upward signal and does not by itself reopen the original defect.
|
||||||
|
|
||||||
|
Preserve sources and persistent state. Write the detailed re-check to REPORT.
|
||||||
|
Return only:
|
||||||
|
|
||||||
- `VERDICT: APPROVED | CHANGES_REQUESTED`;
|
- `VERDICT: APPROVED | CHANGES_REQUESTED`;
|
||||||
- status counters;
|
- status counters;
|
||||||
|
|||||||
+12
-8
@@ -1,14 +1,18 @@
|
|||||||
## Result contract
|
## Result contract
|
||||||
|
|
||||||
Write the full result through the channel chosen by the caller:
|
Use the channel selected by the caller.
|
||||||
|
|
||||||
|
For a short message, return only the evidence and decision needed next. For a
|
||||||
|
file channel, write the detailed result to REPORT and return status, counters,
|
||||||
|
and `REPORT: <absolute path>`.
|
||||||
|
|
||||||
|
When relevant, the detailed result contains:
|
||||||
|
|
||||||
- `STATUS: complete | questions | blocked`
|
- `STATUS: complete | questions | blocked`
|
||||||
- `EVIDENCE:` changed files, executed commands, and final counters
|
- `EVIDENCE:` changed files, checks, and observed results
|
||||||
- `DECISIONS:` only questions for the coordinator or partner
|
- `DECISIONS:` design or scope questions with options, costs, and a recommendation
|
||||||
- `FINDINGS:` severity, location, essence, and verification method
|
- `FINDINGS:` severity, location, claim, and verification method
|
||||||
- `NEXT:` one concrete action or `none`
|
- `NEXT:` one concrete action or `none`
|
||||||
|
|
||||||
Omit empty sections. Do not include raw output or a reasoning narrative. For a
|
Omit empty sections and raw tool output. Do not duplicate a file report in the
|
||||||
file channel, put the full result in the named file and return only status,
|
final message.
|
||||||
counters, and `REPORT: <absolute path>`. For a message channel, return one
|
|
||||||
concise result without a report path.
|
|
||||||
+33
-25
@@ -1,40 +1,48 @@
|
|||||||
## Mandate
|
## Reviewer mandate
|
||||||
|
|
||||||
- Review independently and test hypotheses. Do not edit source files,
|
- Review the stated version independently. Treat prior claims and the proposed
|
||||||
persistent environment state, or Git.
|
implementation as hypotheses until evidence supports them.
|
||||||
- Use the working permissions needed for checks, caches, temporary artifacts,
|
- Read sources, run relevant tests, consult available documentation and
|
||||||
documentation, and primary-source research.
|
primary sources, and use temporary files or caches when they strengthen the
|
||||||
- Write the detailed report only to REPORT. This assigned exchange file is the
|
verdict.
|
||||||
sole write exception to the observer mandate.
|
- Preserve source files, Git, services, data, and other persistent state.
|
||||||
- Treat another agent's claims as untrusted until evidence supports them.
|
Write the detailed result only to REPORT.
|
||||||
|
- Judge defects at the reviewed artifact's own level and price a proposed fix
|
||||||
|
against the risk it removes. A finding is a claim, not an order.
|
||||||
|
- You may use Luna for bounded mechanical checks or noisy evidence gathering
|
||||||
|
when available. Carry over the review scope, state protections, and
|
||||||
|
independence requirements. Have helpers return evidence to you; you assess
|
||||||
|
it and remain responsible for the findings, verdict, and final report.
|
||||||
|
|
||||||
## Detailed report
|
## Detailed report
|
||||||
|
|
||||||
Use stable IDs with FINDING PREFIX:
|
Use permanent IDs with FINDING PREFIX.
|
||||||
|
|
||||||
`PREFIX-N | BLOCKER|MAJOR|MINOR|NIT | file:line or task section | violated
|
`PREFIX-N | location | violated criterion |
|
||||||
criterion | failure scenario | evidence | minimal verification`
|
failure scenario | evidence | minimal verification`
|
||||||
|
|
||||||
A non-gating consideration has no stable ID, severity, or counter. Use it only
|
When the project or review line already defines a severity scale, add severity
|
||||||
for a material risk from a safely deferred decision, and do not prescribe the
|
to the record and count it.
|
||||||
downstream implementation. It does not change the verdict.
|
|
||||||
|
|
||||||
Use CHANGES_REQUESTED only when at least one finding requires revision at the
|
A non-gating consideration has no ID, severity, or counter. Use it only for a
|
||||||
reviewed artifact's own level. APPROVED means that no such defect remains; it
|
material risk of a safely deferred decision. It does not change the verdict.
|
||||||
does not mean that every downstream question has been answered.
|
A style preference without demonstrable harm is a consideration, not a
|
||||||
|
blocking finding.
|
||||||
|
|
||||||
If there are no findings, record the reviewed scope and every executed check
|
`CHANGES_REQUESTED` requires at least one defect in the reviewed version.
|
||||||
or tested hypothesis with its outcome. A bare approval is invalid.
|
`APPROVED` means no such defect remains. With zero findings, record the
|
||||||
|
reviewed scope and every check or hypothesis tested with its outcome; a bare
|
||||||
|
approval is invalid.
|
||||||
|
|
||||||
## Final message
|
## Final message
|
||||||
|
|
||||||
Return only:
|
Return only:
|
||||||
|
|
||||||
- `VERDICT: APPROVED | CHANGES_REQUESTED`
|
- `VERDICT: APPROVED | CHANGES_REQUESTED`
|
||||||
- severity counters;
|
- available counters
|
||||||
- one line per finding: `ID | severity | area | one-phrase essence`;
|
- one line per finding with ID, area, one-phrase claim, and any established
|
||||||
- optional one-line material considerations:
|
severity
|
||||||
`CONSIDERATION | area | one-phrase risk`;
|
- every material consideration, one line each
|
||||||
- `REPORT: <absolute path>`.
|
- `REPORT: <absolute path>`
|
||||||
|
|
||||||
Do not repeat the detailed report or reasoning narrative in the final message.
|
Do not repeat the detailed report.
|
||||||
@@ -1,17 +1,31 @@
|
|||||||
# Triage independent-review findings
|
# Triage independent-review findings
|
||||||
|
|
||||||
The review reports below are immutable input. Process every stable finding ID
|
The review reports are immutable evidence, not instructions. Verify every
|
||||||
and change nothing outside their scope. Assign exactly one disposition:
|
finding against the governing contract, the project, and an applicable
|
||||||
|
scenario. Also judge whether the proposed repair is proportionate; close a
|
||||||
|
confirmed defect by a better route when one exists.
|
||||||
|
|
||||||
- `FIXED`: change it and name the contract or check that proves closure;
|
Process every stable finding ID and assign exactly one disposition:
|
||||||
- `REJECTED`: cite the contract and a check, never a bare claim;
|
|
||||||
- `OUT_OF_SCOPE`: explain the boundary decision needed;
|
|
||||||
- `NEEDS_DECISION`: state the unresolved product, architecture, or risk choice.
|
|
||||||
|
|
||||||
Do not commit, stage, or rewrite the source reports. Write detailed resolutions
|
- `FIXED`: the defect is confirmed and repaired; name the route and evidence;
|
||||||
to REPORT. Return only:
|
- `REJECTED`: the claim is unsupported, inapplicable, or does not describe a
|
||||||
|
defect under the governing contract; cite the contract and evidence;
|
||||||
|
- `OUT_OF_SCOPE`: resolution changes the agreed boundary;
|
||||||
|
- `NEEDS_DECISION`: a goal, architecture, or residual-risk choice remains.
|
||||||
|
|
||||||
|
A reasoned `REJECTED` is as valid as `FIXED`; there is no rejection quota.
|
||||||
|
Rejecting the reviewer's prescribed repair does not close a confirmed,
|
||||||
|
applicable defect. Give that defect a proportionate `FIXED`, `OUT_OF_SCOPE`,
|
||||||
|
or `NEEDS_DECISION` disposition.
|
||||||
|
Send `OUT_OF_SCOPE` and `NEEDS_DECISION` upward with alternatives, costs,
|
||||||
|
consequences, and your recommendation. Do not settle them through an incidental
|
||||||
|
code edit.
|
||||||
|
|
||||||
|
Preserve source reports and stable IDs. Make only confirmed, in-scope changes.
|
||||||
|
Write detailed resolutions to REPORT, including checks and changed files.
|
||||||
|
Return only:
|
||||||
|
|
||||||
- overall status and disposition counters;
|
- overall status and disposition counters;
|
||||||
- one line per finding: `ID | disposition | one-phrase essence`;
|
- one line per finding: `ID | disposition | one-phrase essence`;
|
||||||
- questions for the coordinator and executed-check counters;
|
- coordinator decisions needed and executed-check counters;
|
||||||
- `REPORT: <absolute path>`.
|
- `REPORT: <absolute path>`.
|
||||||
@@ -1,155 +1,171 @@
|
|||||||
# Ревью и триаж
|
# Ревью и триаж
|
||||||
|
|
||||||
Читай этот файл целиком после выбора независимого ревью постановки или
|
Читай этот файл целиком после выбора независимого ревью постановки или
|
||||||
реализации. Режим и стоимость выбираются в [основной оптике](../SKILL.md);
|
реализации. Это единственный подробный договор обзора, разбора находок и
|
||||||
здесь один авторитетный договор выполнения.
|
перепроверки.
|
||||||
|
|
||||||
- [Независимость и фокус](#независимость-и-фокус)
|
- [Выбор обзора](#выбор-обзора)
|
||||||
- [Файловый маршрут](#файловый-маршрут)
|
- [Мандат и независимость](#мандат-и-независимость)
|
||||||
- [Отчёт ревьюера](#отчёт-ревьюера)
|
- [Отчет ревьюера](#отчет-ревьюера)
|
||||||
- [Владелец триажа](#владелец-триажа)
|
- [Разбор находок](#разбор-находок)
|
||||||
- [Перепроверка и круги](#перепроверка-и-круги)
|
- [Перепроверка](#перепроверка)
|
||||||
- [Что читает координатор](#что-читает-координатор)
|
- [Когда работа не сходится](#когда-работа-не-сходится)
|
||||||
|
- [Доказательства для координатора](#доказательства-для-координатора)
|
||||||
|
|
||||||
## Независимость и фокус
|
## Выбор обзора
|
||||||
|
|
||||||
Запускай ревьюера свежей сессией без истории исполнителя и других ревьюеров.
|
Подбирай ревью по неопределенности и цене ошибки. Нативный ревьюер, Claude и
|
||||||
Повторную проверку точечных исправлений продолжает тот же ревьюер: его контекст
|
свежая Astra - доступные линии. Обязательного набора нет. Отдельные основания:
|
||||||
находок полезен и не отменяет независимость исходного обзора.
|
свежий контекст ловит предположения автора, другое семейство моделей замечает
|
||||||
|
иные слепые зоны, Astra судит об устройстве и соразмерности. Одного обзора
|
||||||
|
достаточно, если он закрывает существенный риск. Две сфокусированные линии
|
||||||
|
оправданы, когда их независимый вклад стоит цены.
|
||||||
|
|
||||||
Для двойного ревью разделяй фокусы:
|
Для ревью формы и сопровождаемости бери подходящую линзу из
|
||||||
|
[шаблонов поручений](prompt-templates.md#независимое-ревью).
|
||||||
|
|
||||||
- **по задаче** — соответствие постановке, критериям, границам и ожидаемому
|
Для двух линий заранее раздели фокус, например:
|
||||||
результату;
|
|
||||||
- **по коду** — корректность, межмодульные инварианты, регрессии, безопасность
|
|
||||||
и честность тестов.
|
|
||||||
|
|
||||||
Давай обоим общую постановку и изменённый объём, но отдельный файл фокуса и
|
- соответствие задаче, границам и наблюдаемому результату;
|
||||||
отдельный путь отчёта. Они не знают о второй линии до завершения исходных
|
- корректность, межмодульные инварианты, регрессии и честность проверок.
|
||||||
обзоров. Разные семейства моделей предпочтительны; две доступные линии одного
|
|
||||||
семейства всё равно полезны на сложной задаче, если их фокусы различаются.
|
|
||||||
|
|
||||||
Ревьюер — наблюдатель с нужными инструментами. Он может читать код, запускать
|
Перед первым обзором каждой линии зафиксируй проверяемую версию артефакта.
|
||||||
тесты, проверять гипотезы, создавать временные кэши и писать назначенный файл
|
Одна линия делает один общий обзор этой версии. Не запускай новый общий обзор
|
||||||
отчёта. Исходники, постоянное окружение и Git он не меняет. Координатор
|
той же линии без изменения версии или нового основания; точечные исправления
|
||||||
сверяет состояние дерева до и после.
|
проверяются узко.
|
||||||
|
|
||||||
## Файловый маршрут
|
## Мандат и независимость
|
||||||
|
|
||||||
Назначь каждому участнику уникальные файлы в каталоге задачи внутри
|
Исходный обзор запускается в свежем контексте без истории исполнителя и других
|
||||||
`$SCRATCH`. Временные промпты и отчёты веди на английском.
|
ревьюеров. Ревьюер получает постановку, точные границы версии, свой фокус,
|
||||||
|
доступные проверки и уникальный путь отчета. Он самостоятельно сверяет факты,
|
||||||
|
а утверждения других агентов считает гипотезами до подтверждения.
|
||||||
|
|
||||||
|
Ревьюеру разрешены чтение, тесты, доступная сеть, документация и временные
|
||||||
|
файлы, нужные для проверки. Его мандат запрещает менять исходники, Git,
|
||||||
|
службы, данные и другое постоянное состояние. Результат обзора - назначенный
|
||||||
|
отчет; временные кэши и выводы инструментов допустимы.
|
||||||
|
Координатор остается владельцем общего дерева и стенда и при необходимости
|
||||||
|
сверяет их состояние до и после обзора.
|
||||||
|
|
||||||
|
Полный отчет пишет сам ревьюер в место, доступное владельцу триажа. Координатор
|
||||||
|
не пересказывает и не восстанавливает доказательства по краткой сводке. Если
|
||||||
|
общий файл недоступен, используй доступный канал и точно назови ограничение
|
||||||
|
передачи: где остался полный отчет и какие доказательства не переживут сессию.
|
||||||
|
Готовые английские блоки мандата и языка лежат в
|
||||||
|
[шаблоне ревьюера](prompts/review-boilerplate.md) и
|
||||||
|
[правиле обмена](prompts/runtime-language.md).
|
||||||
|
|
||||||
|
## Отчет ревьюера
|
||||||
|
|
||||||
|
Ревью возвращает проверяемые утверждения. Каждая находка получает
|
||||||
|
устойчивый идентификатор с уникальным префиксом линии. Сохраняй идентификатор
|
||||||
|
во всех следующих разборах и перепроверках. Полная запись содержит:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
reviewer -> detailed report file -> triage owner
|
PREFIX-N | location | violated criterion | failure scenario | evidence |
|
||||||
|
|
minimal verification
|
||||||
+-> short summary -> coordinator
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Ревьюер сам пишет полный отчёт в назначенный файл. Координатор не принимает
|
Существенный риск безопасно отложенного решения можно записать как
|
||||||
полный отчёт сообщением и не переписывает его перед передачей. Владелец
|
неблокирующее соображение без идентификатора, тяжести и влияния на вердикт.
|
||||||
триажа читает исходные отчёты напрямую и пишет подробные резолюции в следующий
|
Если проект или линия уже задает шкалу, добавь в запись тяжесть и считай ее.
|
||||||
файл.
|
Замечание о стиле без проверяемого ущерба остается соображением и не требует
|
||||||
|
исправления.
|
||||||
|
`CHANGES_REQUESTED` означает, что версия содержит хотя бы один дефект, который
|
||||||
|
нужно исправить на ее собственном уровне. `APPROVED` означает отсутствие
|
||||||
|
такого дефекта.
|
||||||
|
|
||||||
Если общий каталог недоступен, верни через контекст компактный индекс без
|
Даже при нуле находок отчет называет просмотренный объем, проверенные гипотезы,
|
||||||
нарратива. Координатор сразу сообщает партнёру, какой агент не получил доступ,
|
запущенные команды и их результаты. Голый вердикт без свидетельств не
|
||||||
к какому пути, какой запасной канал использован и что нужно проверить после
|
засчитывается. Сообщение координатору может содержать только вердикт, доступные
|
||||||
задачи. Сбой канала ухудшает экономию контекста, но не отменяет ревью.
|
счетчики, по одной строке на идентификатор и на каждое существенное
|
||||||
|
неблокирующее соображение, а также путь к подробному отчету.
|
||||||
|
|
||||||
## Отчёт ревьюера
|
## Разбор находок
|
||||||
|
|
||||||
Каждая находка получает устойчивый идентификатор с уникальным префиксом
|
Каждую находку сначала проверяют на трех осях: фактическая верность,
|
||||||
линии: `SPEC-A-N` и `SPEC-B-N` для постановки, `TASK-N` для соответствия
|
применимость сценария к этому проекту и соразмерность исправления. Предложение
|
||||||
реализации задаче и `CODE-N` для качества кода. Полный файл содержит:
|
ревьюера - один из вариантов. Исполнитель может закрыть дефект более подходящим
|
||||||
|
путем. Аргументированное отклонение имеет тот же статус, что и подтвержденное
|
||||||
|
исправление; квота отклонений не нужна.
|
||||||
|
|
||||||
- идентификатор, тяжесть и `файл:строка` либо раздел постановки;
|
Находки о постановке разбирает координатор. Он сохраняет цель и границы,
|
||||||
- нарушенный критерий;
|
проверяет технические утверждения доступным способом и выносит владельцу
|
||||||
- сценарий сбоя и доказательство;
|
продуктовый выбор или существенный риск.
|
||||||
- минимальный способ проверки.
|
|
||||||
|
|
||||||
Неблокирующее соображение не получает идентификатор и тяжесть, не входит в
|
Находки реализации разбирает исполнитель с контекстом кода. Он получает
|
||||||
счётчики и не меняет вердикт. Так сохраняй только существенный риск от
|
подробные отчеты напрямую. Координатор добавляет только решения уровня задачи,
|
||||||
отложенного решения, не проектируя реализацию за следующего владельца.
|
совпадения или противоречия линий. Каждый идентификатор получает один исход:
|
||||||
`CHANGES_REQUESTED` означает, что хотя бы одна находка требует исправить
|
|
||||||
документ на его собственном уровне. `APPROVED` означает отсутствие такого
|
|
||||||
дефекта, а не отсутствие всех будущих вопросов.
|
|
||||||
|
|
||||||
В сообщение координатору верни только:
|
- `FIXED` - дефект подтвержден и исправлен; названы способ и проверка;
|
||||||
|
- `REJECTED` - утверждение не подтвердилось, неприменимо к проекту или не
|
||||||
|
описывает дефект по действующему договору; приведены контракт и доказательство;
|
||||||
|
- `OUT_OF_SCOPE` - решение меняет согласованные границы;
|
||||||
|
- `NEEDS_DECISION` - требуется выбор цели, устройства или остаточного риска.
|
||||||
|
|
||||||
- `VERDICT: APPROVED | CHANGES_REQUESTED`;
|
`OUT_OF_SCOPE` и `NEEDS_DECISION` поднимаются координатору с вариантами,
|
||||||
- счётчики по тяжести;
|
последствиями, стоимостью и рекомендацией исполнителя. Координатор не заменяет
|
||||||
- по одной строке на находку: идентификатор, область, суть и тяжесть;
|
этот разбор молчаливым решением. Подробный файл резолюций сохраняет связь
|
||||||
- по одной строке на существенное неблокирующее соображение, если оно есть;
|
между исходной находкой, ее исходом и проверкой.
|
||||||
- абсолютный путь к полному отчёту.
|
|
||||||
|
|
||||||
При отсутствии находок полный файл перечисляет просмотренный объём и
|
Отклонение предложенного способа починки само по себе не закрывает
|
||||||
выполненные проверки. Голая строка `APPROVED` без подтверждения работы не
|
подтвержденный применимый дефект. Такой дефект получает соразмерное
|
||||||
засчитывается.
|
`FIXED`, либо решение владельца через `OUT_OF_SCOPE` или
|
||||||
|
`NEEDS_DECISION`.
|
||||||
|
|
||||||
## Владелец триажа
|
## Перепроверка
|
||||||
|
|
||||||
**Постановка.** Координатор принимает или отклоняет каждую находку, потому что
|
Точечные исправления и отклонения проверяет тот же ревьюер в продолжении
|
||||||
цель, границы и критерии — его решения. Открытое техническое исследование он
|
исходного контекста. Он читает собственный отчет, резолюции и измененную
|
||||||
может отдать deep-reasoner, но сам читает верхнеуровневые документы и итоговую
|
версию, затем проверяет исходные идентификаторы и только соседние изменения.
|
||||||
постановку. Продуктовый выбор и принятие риска выносит партнёру.
|
Для каждого `FIXED` или `REJECTED` он возвращает `CLOSED`, `NOT_CLOSED`,
|
||||||
|
`REJECTION_VALID` или `REJECTION_INVALID` с кратким доказательством.
|
||||||
|
`OUT_OF_SCOPE` и `NEEDS_DECISION` переносятся в индекс без изменения:
|
||||||
|
ревьюер их не пересматривает и не включает в свой вердикт. Они остаются
|
||||||
|
открытыми до решения владельца.
|
||||||
|
|
||||||
**Реализация.** Пофиндинговый триаж делает исполнитель, у которого есть
|
Для `FIXED` ревьюер отдельно оценивает соразмерность починки:
|
||||||
контекст кода. Координатор передаёт актуальные подробные отчёты выбранных линий
|
`PROPORTIONATE` либо `OVERREACH` с объяснением лишнего охвата. Для
|
||||||
без изменений и добавляет отдельную короткую шапку: совпадения, противоречия и
|
`REJECTED` он судит по аргументу и проверке; совпадение со вкусом не требуется.
|
||||||
возможный выход за границы. Он не сливает и не удаляет «дубликаты».
|
Узкая область не требует скрывать замеченный рядом новый дефект: такой дефект
|
||||||
|
получает новый устойчивый идентификатор и возвращается владельцу триажа.
|
||||||
|
|
||||||
Для каждого идентификатора исполнитель возвращает один статус:
|
Выбранная линия ревью закрывается после начального `APPROVED` без открытых
|
||||||
|
вопросов либо после успешных нужных перепроверок и разрешения владельцем всех
|
||||||
|
вынесенных вопросов. Полномочный владелец также может явно записать принятие
|
||||||
|
оставшегося риска. Вердикт одной линии не закрывает открытые идентификаторы
|
||||||
|
другой.
|
||||||
|
|
||||||
- `FIXED` — исправлено и названо доказательство;
|
Изменения шире прежней версии, слабый исходный отчет или новая независимая
|
||||||
- `REJECTED` — отклонено через контракт и проверку;
|
неопределенность могут оправдать свежий общий обзор. Сам номер круга такого
|
||||||
- `OUT_OF_SCOPE` — требует отдельного решения о границах;
|
основания не создает.
|
||||||
- `NEEDS_DECISION` — технического решения недостаточно.
|
|
||||||
|
|
||||||
Подробности остаются в файле триажа. Координатор получает по одной компактной
|
## Когда работа не сходится
|
||||||
строке `ID | status | essence` на находку, счётчики, вопросы уровня задачи и
|
|
||||||
путь. Риск и выход за границы решает координатор; техническую истинность
|
|
||||||
находки — исполнитель и ревьюер.
|
|
||||||
|
|
||||||
## Перепроверка и круги
|
Сигналы несходимости: тот же спор повторяется без новых доказательств,
|
||||||
|
исправления разрастаются дальше исходного риска, новые общие обзоры мало что
|
||||||
|
добавляют или стороны проверяют разные версии и контракты. Координатор сначала
|
||||||
|
останавливает петлю и устанавливает общий предмет спора. Затем он может
|
||||||
|
уточнить постановку, сузить проверку, сменить исполнителя или ревьюера,
|
||||||
|
повысить доступную модель или глубину, разделить задачу либо принять риск в
|
||||||
|
пределах полномочий.
|
||||||
|
|
||||||
Один круг — назначенные обзоры, триаж его владельца и узкая перепроверка.
|
Третий круг - практическое напоминание явно объяснить пользователю или
|
||||||
Исходный ревьюер читает свой отчёт и файл резолюций, проверяет только свои
|
полномочному владельцу, почему работа не сходится, сколько стоит продолжение и
|
||||||
находки и соседние изменения. Выбранное независимое ревью закрывается
|
какой подход меняется. Пятый круг - напоминание не начинать еще один повтор
|
||||||
`APPROVED` либо явным принятием риска полномочным координатором или партнёром.
|
без явного решения. Это ориентиры наблюдения; обязательных этапов и
|
||||||
Координатор получает по одной компактной строке со статусом каждого исходного
|
автоматических запросов разрешения здесь нет.
|
||||||
или нового идентификатора; подробности остаются в файле перепроверки.
|
|
||||||
Если идентификатор не закрыт либо появился рядом с исправлением, актуальный
|
|
||||||
отчёт перепроверки напрямую идёт владельцу следующего триажа. Координатор не
|
|
||||||
восстанавливает доказательства из компактной сводки.
|
|
||||||
|
|
||||||
Повторно поднятое аргументированно отклонённое замечание пометь как спор и
|
## Доказательства для координатора
|
||||||
отправь на отдельную узкую проверку усиленного уровня. Полный новый обзор
|
|
||||||
нужен, когда реализация широко изменилась, исходный отчёт слаб или требуется
|
|
||||||
новая независимая линия.
|
|
||||||
|
|
||||||
Третий круг — точка вмешательства: сообщи партнёру, почему процесс не сходится,
|
Координатор обычно получает вердикт, счетчики, компактные строки находок и
|
||||||
какова стоимость и что меняешь. Координатор может уточнить постановку,
|
пути. Он раскрывает подробный отчет, когда находка меняет границы или риск,
|
||||||
повысить модель или effort, заменить исполнителя свежим сильным агентом,
|
линии противоречат друг другу, возник спор, сводка не дает основания для
|
||||||
разделить задачу, назначить усиленный гейт либо принять риск в пределах
|
решения либо это нужно для собственной приемки. Для спорного утверждения он
|
||||||
мандата.
|
читает соответствующее доказательство. Весь diff или журнал нужен лишь когда
|
||||||
|
узкого фрагмента недостаточно.
|
||||||
|
|
||||||
Пятый круг не начинай автоматически. Сначала прими явное решение и объясни его
|
Так защита контекста остается ступенчатой: подробности доходят до владельца
|
||||||
партнёру; если полномочий недостаточно, остановись и запроси решение. Это
|
триажа напрямую, а координатор читает ровно тот уровень, который нужен для
|
||||||
предохранитель от дорогой вложенной петли, а не запрет координатору управлять
|
самостоятельного решения.
|
||||||
работой.
|
|
||||||
|
|
||||||
## Что читает координатор
|
|
||||||
|
|
||||||
Краткие строки находок нужны координатору для сравнения линий. Подробный файл
|
|
||||||
открывай, когда находка меняет границы или риск, ревьюеры противоречат друг
|
|
||||||
другу, возник спор, сводка непонятна либо без деталей нельзя выбрать следующий
|
|
||||||
шаг.
|
|
||||||
|
|
||||||
Для обычной починки координатор видит переход:
|
|
||||||
|
|
||||||
```text
|
|
||||||
CHANGES_REQUESTED -> triaged -> rechecked -> APPROVED
|
|
||||||
```
|
|
||||||
|
|
||||||
Полный diff, доказательства и журналы читают назначенные агенты. Координатор
|
|
||||||
углубляется в них по правилам приёмки основной оптики, когда это нужно для его
|
|
||||||
собственного решения.
|
|
||||||
@@ -1,212 +1,61 @@
|
|||||||
# Уровни и роли
|
# Роли и возможности среды
|
||||||
|
|
||||||
Маршрутизация моделей обновлена 2026-07-13. Имена и уровни здесь — датированная
|
Читай этот файл при выборе агента, модели, глубины рассуждения или способа
|
||||||
настройка среды; логика [основной оптики](../SKILL.md) остаётся относительной.
|
передачи истории. Сначала посмотри на схему доступного инструмента: она
|
||||||
|
описывает текущую среду точнее датированных заметок.
|
||||||
|
|
||||||
Читай этот файл только при настройке ролей или когда нужная роль недоступна.
|
## Распределение ответственности
|
||||||
[Основная оптика](../SKILL.md) описывает, когда отдельный агент вообще нужен.
|
|
||||||
Этот файл — условные настройки мандата, а не список обязательных участников.
|
|
||||||
Один агент может совмещать совместимую работу; не создавай тред на каждое имя.
|
|
||||||
|
|
||||||
- [Возможности хоста](#возможности-хоста)
|
- **Координатор** держит замысел, выбирает устройство решения, разрешает
|
||||||
- [Выбор уровня](#выбор-уровня)
|
спорные вопросы и принимает результат. Это роль ведущего текущей задачи.
|
||||||
- [Текущая маршрутизация](#текущая-маршрутизация)
|
- **Sol или Terra** обычно реализует задачу, исследует техническую
|
||||||
- [Возможные мандаты](#возможные-мандаты)
|
неопределенность, проверяет код и исправляет подтвержденные дефекты.
|
||||||
- [Файл пользовательского агента](#файл-пользовательского-агента)
|
- **Luna** удобна для ясной механики, пакетных операций и известных проверок
|
||||||
- [Пределы параллельности](#пределы-параллельности)
|
с объемным выводом.
|
||||||
|
|
||||||
## Возможности хоста
|
Эти назначения служат отправной точкой. Состав собирай под задачу; один агент
|
||||||
|
может совмещать совместимую работу. Выбор определяется вкладом в задачу и
|
||||||
|
качеством доступных моделей. Название роли вторично.
|
||||||
|
|
||||||
Сначала установи, позволяет ли текущий хост выбрать пользовательского агента
|
Свежая Astra полезна для отдельной проверки формы и соразмерности, когда
|
||||||
и его конфигурацию.
|
цена такого взгляда оправдана.
|
||||||
|
|
||||||
- **Управляемая стоимость.** Хост видит агентов из `~/.codex/agents` или
|
Если партнер поручил группу связанных тикетов, выбирай готовые к работе по
|
||||||
`.codex/agents` и схема `spawn_agent` открывает `agent_type`, `model` и
|
их существующим зависимостям. Перед выдачей зависимого тикета убедись, что
|
||||||
`reasoning_effort` (про фактическое применение effort — кавеат в
|
результат предшественника проверен и доступен исполнителю.
|
||||||
[выборе уровня](#выбор-уровня)). Для TOML-роли передавай `agent_type`, а
|
|
||||||
модель и глубину бери из её файла. Для разового выбора передавай `model` и
|
|
||||||
`reasoning_effort` без пользовательской роли с закреплённой моделью.
|
|
||||||
Плейбук использует `fork_turns="none"` ради чистого контекста. Технически
|
|
||||||
ограниченный fork числом тоже допускает переопределения; только полный
|
|
||||||
fork `all` наследует модель координатора и отклоняет их.
|
|
||||||
- **Неуправляемая стоимость.** Интерфейс запуска принимает только задачу и
|
|
||||||
имя треда. Передавай роль мандатом в промпте, но не утверждай, что выбрана
|
|
||||||
дешёвая или сильная модель. `task_name` — идентификатор треда, а не выбор
|
|
||||||
конфигурации агента.
|
|
||||||
|
|
||||||
Если способ выбора роли не виден в доступном инструменте, считай стоимость
|
## Модель и глубина
|
||||||
неуправляемой, отметь это в итоговом отчёте и не разделяй совместимую работу
|
|
||||||
на дополнительные роли без явной пользы.
|
|
||||||
|
|
||||||
Вызов TOML-роли:
|
Модель и глубину рассуждения выбирай независимо, если среда открывает обе
|
||||||
|
ручки. Для ограниченной работы разумная отправная точка - `medium`. Для
|
||||||
|
необратимого решения, высокой цены тихой ошибки или существенной
|
||||||
|
неопределенности - `high` либо более сильная доступная настройка. Это примеры:
|
||||||
|
повышай глубину, когда не хватило поиска и рассуждения, а модель - когда не
|
||||||
|
хватило качества суждения.
|
||||||
|
|
||||||
```json
|
Не обещай, что запрошенная модель или глубина фактически применились, если
|
||||||
{
|
инструмент подтверждает лишь принятие параметра. Опирайся на метаданные запуска,
|
||||||
"task_name": "explore_code",
|
когда они доступны; иначе называй настройку запрошенной.
|
||||||
"message": "Исследуй код и верни выжимку по договору роли.",
|
|
||||||
"fork_turns": "none",
|
|
||||||
"agent_type": "explorer"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Разовый выбор модели без TOML-роли с закреплёнными настройками:
|
## Текущая схема Codex
|
||||||
|
|
||||||
```json
|
На момент обновления доступный `spawn_agent` принимает `model`,
|
||||||
{
|
`reasoning_effort` и `fork_turns`. Значение `fork_turns` может быть `none`,
|
||||||
"task_name": "explore_code",
|
`all` или положительным числом строкой.
|
||||||
"message": "Исследуй код и верни выжимку по договору результата.",
|
|
||||||
"fork_turns": "none",
|
|
||||||
"model": "<быстрая модель>",
|
|
||||||
"reasoning_effort": "medium"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Не смешивай режимы: роль применяется отдельным слоем конфигурации и может
|
- `none` дает свежий контекст. Используй его для независимого исходного ревью
|
||||||
перекрыть прямые параметры. `service_tier` передавай только по явному запросу;
|
и для роли, которой достаточно самодостаточного краткого задания.
|
||||||
он технически совместим и с полным fork. Если TOML-роль закрепляет
|
- Положительное число передает ограниченный хвост истории. Это полезно, когда
|
||||||
`service_tier`, значение роли перекрывает аргумент вызова; для гарантированного
|
без ближайшего контекста поручение раздуется, а вся история не нужна.
|
||||||
разового tier используй роль без закреплённого tier.
|
- `all` передает полную историю и наследует модель и глубину координатора.
|
||||||
|
В этом режиме явные переопределения модели и глубины отклоняются.
|
||||||
|
|
||||||
Основание: [официальная документация о субагентах](https://learn.chatgpt.com/docs/agent-configuration/subagents)
|
Для явного выбора модели или глубины используй `none` либо ограниченную
|
||||||
и [актуальная схема `spawn_agent`](https://github.com/openai/codex/blob/main/codex-rs/core/src/tools/handlers/multi_agents_spec.rs).
|
историю. Продолжение через `followup_task` сохраняет полезный контекст уже
|
||||||
|
созданного агента; короткое уточнение работающему агенту передается сообщением.
|
||||||
|
Новый свежий обзор запускается отдельным агентом с `none`.
|
||||||
|
|
||||||
## Выбор уровня
|
Эти сведения описывают текущий интерфейс координации. После изменения схемы
|
||||||
|
заново проверь доступные поля. Файлы локальных
|
||||||
| Уровень | Для чего | Настройка |
|
ролей, установка моделей и внешняя настройка среды в работу этого скилла не
|
||||||
|---|---|---|
|
входят. Владение общим состоянием задает [основная оптика](../SKILL.md).
|
||||||
| Быстрый | Поиск, журналы, известные проверки, ограниченная механика | Дешёвая подходящая модель, обычно `medium` |
|
|
||||||
| Рабочий | Обычная реализация и проверка по задаче | Подходящая ролевая модель, `medium` |
|
|
||||||
| Глубокий | Архитектура, сложная реализация, ревью кода | Сильная модель, `high` |
|
|
||||||
| Исключительный | Необратимое решение или несходимость сильных агентов | Самая сильная модель, `max` |
|
|
||||||
|
|
||||||
Критерий выбора — цена *тихой* ошибки этапа, не сложность работы: где
|
|
||||||
пропущенный дефект никто ниже по конвейеру не поймает (постановка, слепое
|
|
||||||
ревью, диагноз), ставь глубокий уровень; где за результатом стоит приёмка
|
|
||||||
координатора и ошибка громкая (узкая перепроверка, механика), хватает
|
|
||||||
рабочего. Таблица «для чего» — иллюстрация этого критерия, не замена.
|
|
||||||
Экономию уровня считай по конвейеру целиком: дешёвый этап, породивший
|
|
||||||
длинный триаж находок, выходит дороже дорогого.
|
|
||||||
|
|
||||||
Модель задаёт потолок способности, effort — глубину работы этой модели.
|
|
||||||
Повышай effort, когда подходящей модели не хватило поиска или рассуждения.
|
|
||||||
Повышай модель, когда не хватает качества решения. После двух слабых
|
|
||||||
результатов замени исполнителя свежим более сильным агентом вместо переноса
|
|
||||||
его неудачного контекста. От уверенной выдумки внешних фактов (форматы
|
|
||||||
артефактов, версии) не страхует никакой уровень — такие факты проверяй
|
|
||||||
реальным запросом или фикстурой из первоисточника.
|
|
||||||
Кавеат (2026-07-23): текущий хост принимает `reasoning_effort` субагента,
|
|
||||||
но фактически не применяет — рабочая ручка сейчас только модель;
|
|
||||||
перепроверяй после обновлений хоста.
|
|
||||||
|
|
||||||
`xhigh` не является автоматической ступенью: текущая эмпирика показывает
|
|
||||||
малый прирост относительно `high` при заметной цене. Выбирай его вручную для
|
|
||||||
узкой задачи. `max` заметно сильнее и дороже; используй по явному триггеру и
|
|
||||||
объясняй партнёру причину.
|
|
||||||
|
|
||||||
## Текущая маршрутизация
|
|
||||||
|
|
||||||
Это начальная рабочая таблица, а не рейтинг моделей. Проверяй её на прогонах и
|
|
||||||
меняй после согласования эмпирики с партнёром.
|
|
||||||
|
|
||||||
| Роль | Модель и effort |
|
|
||||||
|---|---|
|
|
||||||
| Простая ограниченная реализация, `fast-worker`, известная проверка | Luna `medium` |
|
|
||||||
| Узкий обзор постановки, проверка реализации по задаче | Terra `medium` |
|
|
||||||
| Обычная нетривиальная реализация | Sol `medium` |
|
|
||||||
| Сложная или рискованная реализация | Sol `high` |
|
|
||||||
| `deep-reasoner`: архитектурное предложение, декомпозиция, компромиссы | Sol `high` |
|
|
||||||
| Ревью кода | Sol `high` |
|
|
||||||
| Необратимое решение, спор сильных агентов, повторная несходимость | Sol `max` |
|
|
||||||
|
|
||||||
Официальное назначение текущих уровней семейства — в
|
|
||||||
[каталоге моделей OpenAI](https://developers.openai.com/api/docs/models).
|
|
||||||
Конкретные имена держи здесь и в конфигурации агентов, а не в `SKILL.md`.
|
|
||||||
|
|
||||||
## Возможные мандаты
|
|
||||||
|
|
||||||
### `fast-worker`
|
|
||||||
|
|
||||||
Уровень: быстрый. Читает шумный ввод, запускает проверки, выполняет простые
|
|
||||||
пакетные операции. Возвращает только выжимку и пути к полным журналам.
|
|
||||||
|
|
||||||
Обычно: `sandbox_mode = "workspace-write"`, потому что тесты и инструменты
|
|
||||||
создают временные файлы. В инструкциях ограничить изменения явно названной
|
|
||||||
механикой.
|
|
||||||
|
|
||||||
### `explorer`
|
|
||||||
|
|
||||||
Уровень: быстрый. Строит карту кода, находит точки входа, контракты и команды
|
|
||||||
проверки. Не запускает полный набор тестов и не проектирует решение, пока
|
|
||||||
координатор прямо не попросит. Узкую команду запускает только для проверки факта,
|
|
||||||
без которого карта ненадёжна.
|
|
||||||
|
|
||||||
Обычно: `sandbox_mode = "read-only"`.
|
|
||||||
|
|
||||||
### `worker`
|
|
||||||
|
|
||||||
Уровень: рабочий или глубокий по сложности задачи. Единственный владелец
|
|
||||||
реализации. Читает самодостаточный файл-задачу, меняет код и проверяет свою
|
|
||||||
часть. Не делает коммит.
|
|
||||||
|
|
||||||
Обычно: `sandbox_mode = "workspace-write"`.
|
|
||||||
|
|
||||||
### `deep-reasoner`
|
|
||||||
|
|
||||||
Уровень: глубокий. Принимает одно сложное решение: архитектура, алгоритм,
|
|
||||||
диагноз, противоречие требований. Возвращает предложение, ключевые доводы и
|
|
||||||
непроверенные предположения; итоговое решение принимает координатор.
|
|
||||||
|
|
||||||
Обычно: `sandbox_mode = "read-only"`.
|
|
||||||
|
|
||||||
### `reviewer`
|
|
||||||
|
|
||||||
Уровень: глубокий. Свежий тред без истории исполнителя. Ищет ошибки
|
|
||||||
корректности, безопасности, контракта и тестов. Каждая находка содержит
|
|
||||||
сценарий сбоя, доказательство, влияние и способ проверки.
|
|
||||||
|
|
||||||
Для полноценного ревью обычно нужен `sandbox_mode = "workspace-write"`: тесты,
|
|
||||||
кэши, временные артефакты и исследование не следует урезать ради запрета
|
|
||||||
правок. Исходники и постоянное окружение защищает явный мандат, Git сверяется
|
|
||||||
до и после. Доступ к сети проверять отдельно: право записи не гарантирует
|
|
||||||
поиск и документацию. Непроверенную внешнюю механику отмечать как гипотезу.
|
|
||||||
Канал результата от песочницы не зависит. При выбранном ревью используй
|
|
||||||
[единый договор](review-and-triage.md): назначенный файл отчёта — единственный
|
|
||||||
результат наблюдателя; временные кэши допустимы, исходники и Git неизменны.
|
|
||||||
|
|
||||||
### `verifier`
|
|
||||||
|
|
||||||
Уровень: быстрый. Запускает уже известные команды приёмки, разбирает сбои и
|
|
||||||
возвращает счётчики. Не ищет новые требования и не исправляет продуктовый
|
|
||||||
код.
|
|
||||||
|
|
||||||
Обычно: `sandbox_mode = "workspace-write"`.
|
|
||||||
|
|
||||||
## Файл пользовательского агента
|
|
||||||
|
|
||||||
Роли Codex хранятся в `~/.codex/agents/*.toml` или `.codex/agents/*.toml`.
|
|
||||||
Минимальный шаблон:
|
|
||||||
|
|
||||||
```toml
|
|
||||||
name = "role-name"
|
|
||||||
description = "Когда координатору выбирать эту роль."
|
|
||||||
model = "<актуальная модель нужного уровня>"
|
|
||||||
model_reasoning_effort = "medium"
|
|
||||||
sandbox_mode = "read-only"
|
|
||||||
developer_instructions = """
|
|
||||||
Одна узкая роль и её договор результата.
|
|
||||||
"""
|
|
||||||
```
|
|
||||||
|
|
||||||
Не подменяй выбор роли совпадением `task_name` с её именем: это работает
|
|
||||||
только при явной гарантии хоста. После добавления или изменения TOML начни
|
|
||||||
новую сессию и проверь, что имя роли появилось в описании `agent_type`.
|
|
||||||
|
|
||||||
## Пределы параллельности
|
|
||||||
|
|
||||||
- Держи глубину `1`: субагенты не создают собственное дерево исполнителей.
|
|
||||||
- Оставляй один слот координатору.
|
|
||||||
- Параллельно запускай только работу без конфликтующих входов, команд и
|
|
||||||
изменяемого состояния. Второй слепой обзор добавляй ради отдельной линии, а
|
|
||||||
не ради заполнения свободного слота.
|
|
||||||
- Реализацию и починку одного рабочего дерева выполняй последовательно одним
|
|
||||||
владельцем.
|
|
||||||
Reference in new issue
Block a user