docs(skills): плейбук — уроки боевого прогона тикета #12 по песочнице Codex
- Зачем: - боевой прогон 2026-07-30 (тикет #12 v2) закрыл открытый вопрос: расширенный доступ Codex не нужен, штатной связки достаточно. - Что: - codex-exec.md: пункт про блок классификатора начинается с проверки песочницы; в рецепт исполнителя добавлено «шире не бери»; снят кавеат «боем не обкатано» — сеть и docker-сокет работают при штатной связке on-request + auto_review. - lessons.md: датированный урок 2026-07-30 с дополнением по итогам прогона. - Проверка: - чтение обновлённых разделов; факты — из JSONL-логов прогона тикета #12 (docker manifest inspect и make up завершились completed под workspace-write). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
97193eaa4b
commit
ef09a7832b
2 files changed
+54
-7
No files matched your search
@@ -84,9 +84,13 @@
|
||||
из файла рецептов (`!`-префикс в чат), после применения профиля напомни
|
||||
убрать `use_legacy_landlock`. Перед первым прогоном конвейера на новой
|
||||
Linux-машине прогони диагностику из файла рецептов превентивно.
|
||||
- **Блок классификатора — решение пользователя.** Если запуск не прошёл
|
||||
permission-гейт, дай пользователю готовую команду с префиксом `!` в чат
|
||||
или попроси сменить режим разрешений. Сработавший путь — прямой exec;
|
||||
- **Блок классификатора — сначала сузь песочницу, потом зови
|
||||
пользователя.** Первая проверка: нет ли в команде `-s
|
||||
danger-full-access` — классификатор его блокирует, и он не нужен:
|
||||
docker и сеть проходят эскалацией под штатной связкой из рецепта ниже
|
||||
(боевой прогон 2026-07-30, тикет #12 v2). Если блок не из-за
|
||||
песочницы — дай пользователю готовую команду с префиксом `!` в чат или
|
||||
попроси сменить режим разрешений. Сработавший путь — прямой exec;
|
||||
companion с `--write` блокируется и напрямую, и через раннера.
|
||||
|
||||
## Ветка «исполнитель» (пишет код)
|
||||
@@ -108,7 +112,10 @@ cat "$D/task-prompt.md" | codex exec --json --strict-config \
|
||||
`approval_policy="on-request"` отработала боевой прогон 2026-07-09).
|
||||
- Право записи + авто-ревьюер аппрувов. Скоуп ограничивай промптом («коммит
|
||||
не делай», границы из файла задачи), не песочницей — жёсткий read-only
|
||||
лишает исполнителя тестов и поиска.
|
||||
лишает исполнителя тестов и поиска. Шире тоже не бери: `-s
|
||||
danger-full-access` блокируется классификатором авторежима и не
|
||||
нужен — docker-сокет (`make up`) и сеть (`docker manifest inspect`)
|
||||
прошли эскалацией в боевом прогоне 2026-07-30 (тикет #12 v2).
|
||||
- Промпт: путь к файлу задачи; мандат — в этапе 3 SKILL.md.
|
||||
- До старта сними baseline `git status --porcelain`; после — сверь отчёт
|
||||
Кодекса с деревом: правок, которых он не называл, быть не должно.
|
||||
@@ -123,9 +130,12 @@ cat "$D/task-prompt.md" | codex exec --json --strict-config \
|
||||
[prompt-templates.md](prompt-templates.md)); Codex держит его надёжно
|
||||
(практика пользователя, 2026-07-10). Дешёвая подстраховка:
|
||||
`git status --porcelain` до ревью и сверка после — дерево должно остаться
|
||||
нетронутым. Кавеат: сеть под workspace-write по умолчанию закрыта; что
|
||||
поиск/документация проходят эскалацией через авто-аппрув — рабочая
|
||||
гипотеза, боем не обкатана (см.
|
||||
нетронутым. Кавеат снят 2026-07-30: сеть под workspace-write по
|
||||
умолчанию закрыта, но эскалация через авто-аппрув её проходит — в
|
||||
боевом прогоне тикета #12 (v2) у исполнителя прошли и сеть
|
||||
(`docker manifest inspect`), и docker-сокет (`make up`, `docker compose
|
||||
down`). Отдельных событий эскалации в `--json`-логе при этом нет —
|
||||
успешные команды выглядят обычными `completed` (история вопроса —
|
||||
[../handoffs/20260710-codex-revyuer-write-i-sliyanie-handoffov.md](../handoffs/20260710-codex-revyuer-write-i-sliyanie-handoffov.md)).
|
||||
|
||||
`-o`-файл вердикта — и есть обменный артефакт: на триаже он уходит в
|
||||
|
||||
@@ -406,3 +406,40 @@ Opus 5 по отдаче ближе к прежнему `xhigh`, а `medium` —
|
||||
Workflow», либо для каждой роли карты заводится определение с пришитым
|
||||
эффортом (и фолбэк «скептический general-purpose» из этапа 4 уходит).
|
||||
До проверки карту не переписывать — вопрос механики, не решения.
|
||||
|
||||
### 2026-07-30: классификатор авторежима блокирует `-s danger-full-access`
|
||||
|
||||
На запуске Codex-исполнителя (прогон тикета #12, кластер ClickHouse)
|
||||
классификатор авторежима Claude Code заблокировал команду с
|
||||
`-s danger-full-access`. Рабочая замена — не полный доступ, а песочница
|
||||
с поштучной эскалацией:
|
||||
|
||||
```
|
||||
-s workspace-write \
|
||||
-c 'approval_policy="on-request"' \
|
||||
-c 'approvals_reviewer="auto_review"'
|
||||
```
|
||||
|
||||
Команда, которую песочница не пустила (docker и т.п.), эскалируется, и
|
||||
авто-ревьюер Codex её одобряет — запуск уходит мимо песочницы штатно.
|
||||
|
||||
Почему это лучше, а не просто обход: привилегия меньше («всё разрешено
|
||||
заранее» → «поштучно и в логе»), и на приёмке можно посмотреть, какие
|
||||
именно команды прошли мимо песочницы, — с полным доступом такого списка
|
||||
не существует. Оговорка: `auto_review` делает песочницу совещательной —
|
||||
эскалации одобряет автоматика самого Codex, поэтому мандат «исходники
|
||||
вне ветки не трогать, окружение не ломать» по-прежнему держится на
|
||||
промпте, не на песочнице (см. правило в SKILL.md).
|
||||
|
||||
Классификатор при этом не враг: по отзывам сообщества, именно он в
|
||||
авторежиме иногда спасает данные от разрушительных команд. Считать его
|
||||
подсказкой «сузь привилегию», а не препятствием, которое надо обойти.
|
||||
|
||||
Дополнение по итогам прогона (тот же день): рецепт исполнителя в
|
||||
`codex-exec.md` штатную связку уже содержал — `danger-full-access` был
|
||||
отступлением сессии-оркестратора «на всякий случай» под docker. Прогон
|
||||
подтвердил, что запас не нужен: под штатной связкой у Codex прошли и
|
||||
сеть (`docker manifest inspect`), и docker-сокет (`make up`, `docker
|
||||
compose down`); отдельных событий эскалации в `--json`-логе нет —
|
||||
успешные команды выглядят обычными `completed`. Кавеаты в
|
||||
`codex-exec.md` обновлены, пометка «боем не обкатано» снята.
|
||||
Reference in new issue
Block a user