docs(skill): экономия контекста оркестратора по ретро прогона 2026-07-10
- Зачем:
- ретро трёх циклов конвейера показало: находки ревью проходили через
контекст оркестратора до шести раз, review-промпт дублировался, ~7
пустых ходов на idle-пингах teammate-ревьюера.
- Что:
- SKILL.md: механика «индекс у оркестратора, нагрузка файлами» — вердикты
в файлы обменного temp-каталога, fix-промпт конкатенацией, один
канонический review-промпт на обоих ревьюеров, idle-пинги как шум;
- новый references/prompt-templates.md — скелеты четырёх промптов;
- codex-exec.md: сборка промптов cat'ом, боевая модель gpt-5.5 явно
(фронтир из конфига не наследовать);
- codex-sandbox-fix-handover: рабочий AppArmor-фикс (ловушка memfd,
профиль на бинарь codex), проверен на обоих режимах;
- lessons.md: датированные записи ретро, казуса Sol и memfd.
- Проверка:
- чтение SKILL.md и references/, следующий прогон конвейера.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
4d074adda6
commit
15d5515925
5 files changed
+258
-22
No files matched your search
+23
-2
@@ -56,13 +56,30 @@ permission profiles requiring direct runtime enforcement are incompatible with -
|
||||
|
||||
— workspace-write требует именно bwrap-backend. Полный фикс — ниже, нужен sudo.
|
||||
|
||||
## Полный фикс (sudo; на исходной машине пока не применён)
|
||||
## Полный фикс (sudo; применён и проверен 2026-07-10)
|
||||
|
||||
**Вариант A — рекомендуемый, точечный**: AppArmor-профиль только для bwrap Codex'а, системное ограничение userns остаётся. Создать `/etc/apparmor.d/codex-bwrap`:
|
||||
**Ловушка, съевшая первую попытку**: профиль на путь vendored bwrap
|
||||
(`**/codex-resources/bwrap`) НЕ работает — Codex ≥0.144 исполняет
|
||||
**встроенный** bwrap из memfd (`linux-sandbox/src/bundled_bwrap.rs`,
|
||||
`memfd_create` в бинаре), и путевой attachment не цепляется никогда: в audit
|
||||
виден `profile="unconfined" comm="bwrap"` → transition в
|
||||
`unprivileged_userns`. Прямой запуск vendored bwrap с диска при этом
|
||||
проходит — ложное подтверждение, не верь ему.
|
||||
|
||||
**Рабочий вариант**: вешать профиль на **сам бинарь codex** (родителя) —
|
||||
memfd-exec'нутый ребёнок наследует метку через exec, и правило `userns,`
|
||||
разрешает namespace. Стандартный приём Ubuntu для браузеров/Electron.
|
||||
`/etc/apparmor.d/codex-bwrap`:
|
||||
|
||||
```
|
||||
abi <abi/4.0>,
|
||||
include <tunables/global>
|
||||
|
||||
profile codex-cli /home/dmitry/.npm-global/lib/node_modules/@openai/codex/**/bin/codex flags=(unconfined) {
|
||||
userns,
|
||||
include if exists <local/codex-cli>
|
||||
}
|
||||
|
||||
profile codex-bwrap /home/dmitry/.npm-global/lib/node_modules/@openai/codex/**/codex-resources/bwrap flags=(unconfined) {
|
||||
userns,
|
||||
include if exists <local/codex-bwrap>
|
||||
@@ -73,8 +90,12 @@ profile codex-bwrap /home/dmitry/.npm-global/lib/node_modules/@openai/codex/**/c
|
||||
|
||||
```
|
||||
codex sandbox -c 'sandbox_mode="workspace-write"' -- sh -c 'touch ./__p && rm ./__p && echo OK'
|
||||
codex sandbox -- sh -c 'touch ./__p 2>/dev/null && echo BROKEN || echo RO_OK'
|
||||
```
|
||||
|
||||
Проверено 2026-07-10: WRITE_OK, read-only блокирует запись, workspace-write
|
||||
не пускает в `/etc` — изоляция сохранена.
|
||||
|
||||
Переносимость: путь в профиле — под конкретную машину (`~/.npm-global/...`); glob `**` переживает обновления версий Codex, но если npm-global живёт в другом месте — путь поправить. Перезагружать профиль нужно только при смене самого расположения.
|
||||
|
||||
**Вариант B — грубый, не рекомендуется**: `sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0` (+ файл в `/etc/sysctl.d/`). Ослабляет защиту всей машины.
|
||||
|
||||
Reference in new issue
Block a user