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
@@ -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.
|
||||
- Промпт — индекс находок **дословно** + «закрой перечисленное, больше
|
||||
ничего не меняй; отклонение — только аргументированно».
|
||||
|
||||
|
||||
Reference in new issue
Block a user