fix(skills): claude-subagent-playbook — правила запуска Кодекса по месту
- Зачем: - два отказа вызова из прогона #39 повторялись оттого, что правило лежало не там, где собирают команду: -s дописывали в resume по образцу exec, а < /dev/null закрывал вход у вызова, который сам получает промпт через stdin. - Что: - в codex-exec рецепт resume снабжён строкой о том, что среда треда задана при создании, а перечень ручек хода уточнён по проверке на codex-cli 0.145.0. - к правилу «промпт через stdin» добавлено, что вход этого вызова должен оставаться открытым. - в SKILL.md этап 6 правило < /dev/null сужено условием «фоновой команде, которой нечего читать со входа». - в lessons исправлен неверный хвост записи #39 про смену песочницы ключом -c sandbox_mode. - Проверка: - codex exec resume <любой-id> -s workspace-write → exit 2. - echo "say hi" | codex exec - < /dev/null → No prompt provided via stdin.
This commit is contained in:
1 parent
36fc76ff90
commit
9642910194
3 files changed
+28
-14
No files matched your search
@@ -241,10 +241,11 @@ description: >-
|
||||
**своими глазами** (счётчик тестов, картинки, прогон CLI) — ревью не
|
||||
заменяет твою приёмку. Команды нового приёмочного сценария проверь на
|
||||
живом объекте до полного прогона; сложные вставки собирай файлами, не
|
||||
экранированием; фоновому запуску закрывай stdin (`< /dev/null`) —
|
||||
команда, дочитывающая ввод, из терминала зелёная, а в фоне виснет
|
||||
навсегда. Чекбоксы, статус и выжимку резолюций в тикет
|
||||
переносит fast-worker из файла отчёта исполнителя (не твой Write).
|
||||
экранированием; фоновой команде, которой нечего читать со входа,
|
||||
закрывай stdin (`< /dev/null`) — команда, дочитывающая ввод, из
|
||||
терминала зелёная, а в фоне виснет навсегда. Чекбоксы, статус и
|
||||
выжимку резолюций в тикет переносит fast-worker из файла отчёта
|
||||
исполнителя (не твой Write).
|
||||
Коммит — по `/conventional-commits`, пользователю — выжимка: вердикты,
|
||||
что принято/отклонено, что осталось — плюс короткая саморефлексия: что
|
||||
больше всего потратило контекст и что в следующий раз направить файлом
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
Проверено 2026-07-09 (codex-cli 0.142.5, Windows + Git Bash) и 2026-07-12
|
||||
(0.144.1, WSL2 Ubuntu: exec/resume/`-o`/фоновый Bash — весь конвейер);
|
||||
ключи `resume` перепроверены 2026-08-03 на 0.145.0;
|
||||
линукс-эмпирика 07-06/07-07 шла через companion-обёртку и отражена в уроках
|
||||
ниже.
|
||||
Прямой CLI надёжнее обёртки: её фоновая машина глючит (молчаливая подмена
|
||||
@@ -12,10 +13,12 @@
|
||||
|
||||
## Сквозные правила (любая ветка)
|
||||
|
||||
- **Промпт — файлом, шум — в файлы.** Промпт подавай через stdin (`-`);
|
||||
stdout/stderr — редиректами в `$SCRATCH`. В контекст оркестратора
|
||||
читается ровно один файл — финальный отчёт из `-o`. Промпт **собирай
|
||||
конкатенацией, а не переписывай**: скелеты — в
|
||||
- **Промпт — файлом, шум — в файлы.** Промпт подавай через stdin (`-`): вход
|
||||
этого вызова занят промптом и должен оставаться открытым — правило
|
||||
`< /dev/null` для фоновых команд сюда не относится (закроешь — получишь
|
||||
`No prompt provided via stdin`). stdout/stderr — редиректами в `$SCRATCH`.
|
||||
В контекст оркестратора читается ровно один файл — финальный отчёт из
|
||||
`-o`. Промпт **собирай конкатенацией, а не переписывай**: скелеты — в
|
||||
[prompt-templates.md](prompt-templates.md), Write'ом пиши только
|
||||
параметрический блок задачи; чужой контент (вердикты ревью, отчёты) в
|
||||
промпт попадает через `cat a.md b.md > prompt.md` — дословно и без
|
||||
@@ -144,14 +147,20 @@ fix-промпт конкатенацией, читай его один раз
|
||||
## Ветка «триаж/починка» (тем же тредом, что писал код)
|
||||
|
||||
```bash
|
||||
# resume продолжает тред: среда (-s, -C) задана при создании, не повторяй.
|
||||
cat "$D/fix-prompt.md" | codex exec resume --json <thread-id> \
|
||||
-o "$D/fix-result.md" - \
|
||||
> "$D/fix-stdout.jsonl" 2> "$D/fix-stderr.txt"
|
||||
```
|
||||
|
||||
- `resume` не принимает `-s`/`-C` — песочница и CWD наследуются от исходного
|
||||
треда (write-тред остаётся write); модель наследуется, но переопределяется
|
||||
`-m` при нужде.
|
||||
- **`resume` продолжает тред, а не заводит новый — среда принадлежит треду,
|
||||
не ходу.** Песочница и CWD заданы при создании и на продолжении не
|
||||
переуказываются: ключей `-s` и `-C` у `resume` просто нет, дописанные по
|
||||
образцу `exec` они дают `exit 2, unexpected argument`. Write-тред остаётся
|
||||
write. Ручки хода остаются: `-m` (модель), `-c model_reasoning_effort=…`
|
||||
(кэш треда не сбрасывает, см. выше), `-o`, `--json`. `-c sandbox_mode=…`
|
||||
разбирается без ошибки, но среду продолжения не меняет — не рассчитывай
|
||||
на него. Ключи сверены 2026-08-03 на codex-cli 0.145.0.
|
||||
- Промпт — индекс находок **дословно** + «закрой перечисленное, больше
|
||||
ничего не меняй; отклонение — только аргументированно».
|
||||
|
||||
|
||||
@@ -671,9 +671,13 @@ compose down`); отдельных событий эскалации в `--json`
|
||||
- **Два отказа вызова Кодекса, оба от чтения правил без разбора.**
|
||||
`< /dev/null` по правилу «фоновому запуску закрывай stdin» убивает промпт,
|
||||
который сам идёт через stdin (`No prompt provided via stdin`), — правило не
|
||||
про этот случай. И `codex exec resume` (0.145.0) не принимает `-s`: песочница
|
||||
только через `-c sandbox_mode="workspace-write"`, остальные ключи (`-m`, `-c`,
|
||||
`-o`, `--json`) те же, что у `exec`.
|
||||
про этот случай. И `codex exec resume` (0.145.0) не принимает `-s`/`-C`:
|
||||
среда треда задана при создании и на продолжении не переуказывается;
|
||||
остальные ключи (`-m`, `-c`, `-o`, `--json`) те же, что у `exec`. Уточнено
|
||||
2026-08-03: хвост «песочница только через `-c sandbox_mode=…`» был неверен —
|
||||
ключ разбирается, но среду продолжения не меняет. Оба отказа закрыты по
|
||||
месту: `codex-exec.md` (рецепт resume и правило stdin), `SKILL.md` этап 6
|
||||
(правило `< /dev/null` сужено условием «нечего читать со входа»).
|
||||
- Цифры: два ревью — 58 и 36 команд/инструментов, 10 находок (1 MAJOR,
|
||||
8 MINOR, 1 NIT); триаж — 10 FIXED; перепроверки на medium — 8 и 12; тесты
|
||||
297 → 353.
|
||||
|
||||
Reference in new issue
Block a user