Commit Graph
54 Commits
Author SHA1 Message Date
Dmitry Dementiev 26fdb7584c fix(skills): исправлена настройка песочницы Codex через AppArmor
- Зачем:
  - Профили на пути установки Codex ломались после переустановки, а прежние проверки могли давать ложный успех.
- Что:
  - Штатный профиль системного bwrap выбран основным способом настройки; исторические обходы ограничены подтверждёнными случаями.
  - Уточнены диагностика, переход со старых профилей и проверки режимов и границ записи.
  - Обновлены связанные инструкции и записан результат применения на Ubuntu 24.04.4 с Codex 0.154.0.
- Проверка:
  - Пройдены quick_validate, проверка ссылок, синтаксиса Bash и git diff --check.
  - Штатный профиль применён; старые профили выгружены. Оба режима и запреты записи проверены из процесса unconfined; подтверждены метки AppArmor у bwrap и дочерней команды.
2026-09-10 14:56:36 +03:00
Dmitry Dementiev 67aa5e67d5 docs(claude-subagent-playbook): уточнён запуск продолжения Codex
- Зачем:
  - продолжение треда не должно получать неподходящие модель и effort из конфига.
- Что:
  - добавлено предупреждение явно указывать модель и effort при resume.
- Проверка:
  - git diff --cached --check.
2026-09-09 18:23:19 +03:00
Dmitry Dementiev 2bb0ff6a1a docs(claude-subagent-playbook): уточнены правила координатора
- Зачем:
  - уточнены границы ответственности координатора и правила работы с effort.
- Что:
  - добавлено принятие результата как обязанность координатора.
  - уточнена рекомендация по смене effort внутри треда.
  - сохранены выводы из прогона t2-ml-forecast.
- Проверка:
  - git diff --check.
2026-09-09 15:08:19 +03:00
ddadmin eddaad66a3 docs(claude-subagent-playbook): добавлена колонка literacy в матрицу моделей
- Зачем:
  - при выборе модели для письменных задач нужна оценка качества текста на русском языке.
- Что:
  - в легенду model-matrix.md добавлено определение literacy.
  - в таблицу добавлена колонка literacy с оценками моделей.
- Проверка:
  - git diff agents/.agents/skills/claude-subagent-playbook/references/model-matrix.md.
2026-08-28 05:24:28 -04:00
ddadminandClaude Fable 5 3780ae0293 feat(skills): линия уместности начата shape-проходом до чтения диффа
- Зачем:
  - на прогоне #158 (clickstream v2) три линии ревью дали ноль находок
    на реальной ошибке формы: агрегация ключевого зерна в Python,
    57 567 ключей через границу ClickHouse -> Airflow. Линза из одних
    запахов читает исполнение и не видит решений, а ревью от диффа
    принимает раскладку исполнителя как оглавление.
- Что:
  - в line-taste.md добавлен блок Shape: набросок ожидаемой формы из
    одной постановки до открытия диффа, список недиктованных решений,
    вердикт каждому; набросок и список предъявляются как checks run
    даже при нуле находок.
  - правило оценки распространено на shape-находки; указатели в
    prompt-templates.md называют линзу формой и вкусом.
  - в lessons.md записана эмпирика прогона #158.
- Проверка:
  - вычитка diff линзой writing-for-agents; боевая — следующий прогон
    конвейера: shape-артефакты видны в отчете линии уместности.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-27 15:47:41 -04:00
Dmitry DementievandClaude Opus 5 bc1ebf3bf5 docs(skills): у сообщения про stdin снова две причины
- Зачем:
  - после правки симптом `No prompt provided via stdin` висел только на
    сломанной среде; читатель в нормальной среде, закрывший вход по правилу
    фонового запуска, прогонит самотест, увидит «непусто» и останется без
    диагноза — этот отказ уже был, запись 2026-08-02 (#39).
- Что:
  - в хвост правила `< /dev/null` вернулась сцепка с сообщением:
    «закроешь — получишь то же сообщение».
- Проверка:
  - `grep -n 'No prompt provided' references/codex-exec.md` — симптом назван
    один раз, обе причины стоят рядом в одном пункте.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-06 19:16:44 +03:00
Dmitry DementievandClaude Opus 5 c3277b8837 docs(skills): предполёт закрывает и вход, соседний пункт не спорит с ним
- Зачем:
  - под предполётом стоял пункт «stdout/stderr — редиректами» без оговорки,
    и при беглом чтении побеждала ближайшая инструкция; вход ломается той же
    поломкой дескриптора, а правило звало подавать промпт редиректом из файла.
- Что:
  - пункт про промпт ведёт каналом (`cat prompt.md | codex exec … -`) —
    форма работает в любой среде; редирект из файла назван как симптом.
  - хвост про stdout/stderr отсылает к предполёту вместо голого редиректа.
  - самотест читается как «пусто/непусто», а не «18 байт»: номер версии
    подрастёт на знак, проверка от этого не зависит.
- Проверка:
  - `grep -n 'stdin\|редиректами' references/codex-exec.md` — противоречащих
    указаний в «Сквозных правилах» не осталось.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-06 19:11:16 +03:00
Dmitry DementievandClaude Opus 5 1b73419c1d docs(skills): предполёт в рецептах Кодекса, урок отдал форму сбора
- Зачем:
  - среда сама отвечает за пять секунд, теряет она унаследованный файловый
    дескриптор или нет, поэтому документ несёт проверку, а не ответ; форма
    сбора вывода за вечер менялась дважды и не должна жить в двух местах.
- Что:
  - в «Сквозные правила» codex-exec.md добавлен предполёт: самотест
    `codex --version > f; wc -c f`, ветка «ноль байт» с раздельными каналами
    и `set -o pipefail`, оговорка про `wait`.
  - предполётная проверка песочницы переехала туда же из пункта про AppArmor,
    три рецепта не тронуты — их POSIX-форма и код возврата остались честными.
  - урок 2026-08-06 отдал самотест и форму предполёту, оставил находки:
    дефект `2>&1 | cat`, съеденный каналом код возврата, ненужный `script`.
- Проверка:
  - `false | cat > f; echo $?` — 0, с `set -o pipefail` — 1.
  - `bash -c 'echo "{}"; echo err >&2' 2> >(cat > e) | cat > o` — потоки
    в разных файлах, `jq` по логу проходит.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-06 19:04:27 +03:00
Dmitry DementievandClaude Opus 5 5665b96641 docs(skills): урок 08-06 — среда названа по имени, потоки не сливаются
- Зачем:
  - «изнутри харнесса» читалось как «в любом агенте»: в Claude Code CLI
    2.1.223 на той же машине и версии всё штатно, и читатель пошёл бы
    чинить работающее. И советованный `2>&1 | cat` кладёт stderr в JSONL:
    `jq` спотыкается, а первой строкой вместо thread.started может встать
    предупреждение конфига.
- Что:
  - отказ назван свойством T3 Code, а не Bash Клода; читателю дан
    самотест `codex --version > f; wc -c f` вместо веры в ярлык.
  - форма сбора вывода заменена на раздельную: stderr через подстановку
    процесса, stdout каналом; добавлена оговорка про `wait`.
- Проверка:
  - раздельная форма прогнана целиком: лог 6 строк, `jq -r .type`
    проходит по всем, thread_id из первой строки, command_execution — 2,
    stderr отдельным файлом, отчёт -o на месте.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-06 18:49:49 +03:00
Dmitry DementievandClaude Opus 5 1538fdaf4e docs(skills): урок 08-06 переписан — вывод теряет харнесс, не версия
- Зачем:
  - первая редакция объявляла отказ свойством codex-cli 0.146.0. Чистые
    0.146.0 и 0.146.1 на этой же машине пишут в перенаправленный файл
    штатно, значит запись вела следующего читателя чинить рецепты от
    несуществующей поломки.
- Что:
  - запись 2026-08-06 переписана: ось не «терминал против всего», а файл
    против канала, и живёт она в харнессе, а не в версии; одна причина на
    обе прежние находки, обход — канал вместо псевдотерминала.
  - методическая часть усилена: среда — тоже параметр серии, и первый
    подозреваемый при расхождении с документацией инструмента.
  - ловушка недоверенного каталога сохранена.
- Проверка:
  - изнутри харнесса на 0.146.1: `codex --version > f` — 0 байт,
    `| cat > g` — 18; `exec --json … > log` — пусто, `2>&1 | cat > log` —
    7 строк с thread_id и двумя command_execution; без песочницы то же.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-06 18:41:40 +03:00
Dmitry DementievandClaude Opus 5 82bb9f5501 docs(skills): урок про молчащий Кодекс 0.146.0
- Зачем:
  - на 0.146.0 вызов Кодекса из Bash оркестратора теряет весь stdout, и
    три механизма рецептов слепнут молча: thread_id, сторож застоя и
    проверка отписки. Новый агент со скиллом на входе наткнётся на это
    в первом же прогоне.
- Что:
  - запись 2026-08-06 в lessons.md: отказ и его цена для конвейера,
    промпт только каналом (файл на входе даёт то же сообщение, что и
    закрытый stdin), два проверенных обхода — псевдотерминал и журнал
    прогона Кодекса с thread_id в имени.
  - там же назван кандидат в механизм: рецепты codex-exec.md держат
    правило stdin и приём проверки отписки в нерабочей редакции.
- Проверка:
  - четыре контрольных прогона codex-cli 0.146.0, различающихся одним
    параметром; обходы проверены до записи.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-06 18:20:52 +03:00
Dmitry Dementiev 28f9e6fdd9 docs(skills): урок про запрет-значение и подъём скретчпада
- Зачем:
  - три случая одной формы за месяц: правило стоит на месте, а
    рассуждение берёт себе исключение — отказ стоит описать до того, как
    он повторится в четвёртый раз.
- Что:
  - запись 2026-08-04 в lessons.md: песочница ревьюера и лечение
    значением, восстановление скретчпада из транскрипта сессии с ценой
    и границами приёма, диагноз владельца про краткость исполнителя.
  - третий открытый вопрос handoff'а закрыт решением владельца и заменён
    ссылкой на журнал.
- Проверка:
  - git log --oneline c18472e.. ; новых строк длиннее 80 символов нет.
2026-08-04 21:53:40 +03:00
Dmitry Dementiev 10f55f35f2 fix(skills): решение координатору идёт с вариантами и ценой
- Зачем:
  - находка FIT-5 холодного ревью: развилка, сжатая до открытого вопроса,
    не даёт принять решение — кода нет в контексте ни у координатора, ни у
    владельца, а исполнитель в этот момент единственный держит картину.
- Что:
  - NEEDS_DECISION в triage-header.md требует варианты и рекомендацию
    исполнителя, а не только формулировку вопроса.
  - требование «понятно без чтения кода» адресовано обеим меткам
    координатора сразу — вместе с OUT_OF_SCOPE.
  - раздел «Пользователь в петле» SKILL.md обязывает координатора нести
    решение владельцу тем же составом.
- Проверка:
  - первым боевым прогоном конвейера: у NEEDS_DECISION в отчёте
    исполнителя есть варианты, их цена и рекомендация.
2026-08-04 21:44:49 +03:00
Dmitry DementievandClaude Opus 5 a794d240d7 fix(skills): три хвоста холодного ревью — эффорт, архив, висячий указатель
- Зачем:
  - в буллете про эффорт одна и та же ситуация предписывалась дважды:
    `high` за нетривиальную реализацию и тут же `medium` за неё же по
    отревьюированному тикету. При вчерашнем сжатии разрешение 07-21
    превратилось в правило равного ранга.
  - архив уроков оставался связан ссылкой прямо из живого этапа 3, хотя
    его шапка объявляет файл вне пути прогона: 549 строк устаревших
    правил в одном клике от исполняющего агента.
  - после разреза уроков в записи 07-31 осталось «запись выше» про
    вкусовую линзу — сама запись уехала в архив.
- Что:
  - разрешение 07-21 помечено исключением и вернуло слово «допустима».
  - ссылка на архив в SKILL.md заменена ссылкой-цитатой (запись
    2026-07-06); живых markdown-ссылок на архив вне уроков не осталось.
  - висячий указатель в lessons.md получил адрес: запись 2026-07-31 в
    архиве.
- Проверка:
  - grep по markdown-ссылкам архива: остались только шапка lessons.md и
    библиография codex-sandbox-apparmor.md; все ссылки скилла резолвятся.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-04 00:18:20 +03:00
Dmitry DementievandClaude Opus 5 f481831777 fix(skills): песочница ревьюера задана значением, а не запретом
- Зачем:
  - запрет «read-only ревьюеру не режь» стоял в двух местах и всё равно
    был нарушен при сборке команды для холодного ревью этой же сессии:
    отступление обосновали тем, что у ревью документа руки не нужны.
    Третья копия запрета делу не помогла бы — нужен не запрет, а
    отсутствие выбора.
- Что:
  - правило переписано значением: песочница ревьюера — workspace-write,
    как у исполнителя; линии различает свежесть треда и мандат, а не
    привилегия. Оговорка про руки ушла внутрь обоснования, и там же
    сказано, что ревью документа не исключение.
  - добавлена строка, что ветка та же для любого слепого ревью — кода,
    постановки, документа, самого скилла: рецепт копируют целиком, линзу
    задают файлом линии. Повод собирать команду руками снят.
- Проверка:
  - рецепт ветки ревьюера содержит -s workspace-write и штатную связку
    approval_policy/approvals_reviewer; прочитан целиком после правки.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-04 00:16:02 +03:00
Dmitry DementievandClaude Opus 5 78ee8bfa48 fix(skills): сторож зависшего треда развязан с веткой исполнителя
- Зачем:
  - сторож был зашит на task-result.md и task-stdout.jsonl, то есть на
    артефакты этапа 3. На ревью и на починке отчёт исполнителя уже лежит
    рядом, цикл не делал ни одного тика и выходил молча — страховка
    отсутствовала ровно там, где прогон длиннее всего.
  - отсутствующий лог был неотличим от неростущего: `|| echo 0` выдавал
    ноль два тика подряд, и неверный путь читался как застой.
- Что:
  - пара файлов вынесена в переменные REPORT и LOG первой строкой, с
    указанием подставлять их от страхуемой ветки.
  - отсутствие лога стало отдельным сигналом NOLOG (редирект создаёт лог
    сразу, так что через тик его не быть не может).
  - дописано, что выход из цикла снимает страховку: после STALLED сторож
    перезапускают руками.
  - поправлено описание ловушки bfs: он ругается в stderr, а пустым
    отдаёт только stdout — «молча» было неверно.
- Проверка:
  - симуляция четырёх исходов: штатное завершение, зависание, неверный
    путь к логу (NOLOG) и ветка ревью при лежащем рядом отчёте этапа 3 —
    последняя как раз и не работала до правки.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-04 00:14:23 +03:00
Dmitry DementievandClaude Opus 5 05336325db fix(skills): вердикт перепроверки о лечении получил ячейку в формате
- Зачем:
  - вчера в шапку перепроверки дописано требование судить лечение, а
    места под ответ в формате строки нет: перетянувшая правка, которая
    находку закрывает, не ложится ни в CLOSED, ни в NOT_CLOSED, ни в
    статусы отклонения. Обе линии холодного ревью нашли это независимо,
    и тот же долг записан в lessons.md:99-102 («статус вешается на
    находку, не на лечение; механизма по-прежнему нет»).
  - оговорка про «размен свойства на защиту от умысла» обобщила один
    случай на весь класс безопасности — защита от умысла и есть этот
    класс.
- Что:
  - в спецификацию строки добавлен второй вердикт для ID со статусом
    FIXED: PROPORTIONATE или OVERREACH с указанием, что вышло за
    находку; OVERREACH не переводит прогон в ISSUES_REMAIN.
  - оговорка про NOT_CLOSED вернулась к взвешиванию цены и получила
    границу: так закрываются инварианты своего кода, но не находки про
    доступ, данные и деньги.
  - OVERREACH выносится в финальную строку, а prompt-templates.md
    разрешает читать файл перепроверки и по нему — иначе сообщение
    наверх не дошло бы: файл читается только при ISSUES_REMAIN.
- Проверка:
  - FIXED сверен с вокабуляром triage-header.md; статусы перепроверки
    и условие чтения файла согласованы между тремя файлами.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-04 00:04:57 +03:00
Dmitry DementievandClaude Opus 5 5fa98d4d0b fix(skills): имена вердиктов переименованы на ось этапа, не линии
- Зачем:
  - вчерашнее переименование `review-<task|code>-*` встало на неверную
    ось: `task` и `code` — это две линии этапа 4 (уместность и дефекты),
    а не этапы. Межэтапная коллизия, ради которой всё делалось, осталась
    открытой: у ревью постановки имени вердикта не было вовсе.
  - сборка триажа при этом называла оба вердикта «линия code», хотя один
    из них — вердикт линии уместности.
- Что:
  - вердикты и параметрический блок этапа 4 — `review-impl-*`, этапа 2 —
    `review-spec-*`; общий блок снова один на обе линии этапа.
  - логи ревьюера тоже несут этап (`review-impl-stdout.jsonl`) — раньше
    этап 4 молча затирал лог этапа 2, единственное доказательство для
    проверки «вердикт без находок: работа или отписка».
  - в prompt-templates.md названы имена файлов этапа 2 и добавлено
    предупреждение, что `task` — линия уместности, а не постановка.
  - SKILL.md этапа 5 показывал `вердикт-A.md вердикт-B.md`; заменено на
    реальные имена, комментарий в рецепте ревьюера исправлен.
- Проверка:
  - grep по обменным именам: старых не осталось вне уроков, новые
    согласованы между SKILL.md, prompt-templates.md и codex-exec.md.
  - все markdown-ссылки скилла резолвятся.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 23:52:49 +03:00
Dmitry DementievandClaude Opus 5 abc00a06be refactor(skills): codex-exec переразобран, имена вердиктов по этапам
- Зачем:
  - рецепт Кодекса читают в момент сборки команды; пересказы, хеджи и
    копии уроков внутри него дают место для импровизации — прогон
    2026-07-30 взял `danger-full-access` «на всякий случай» при верном
    рецепте.
  - вердикты звались по семейству (`review-codex.md`), а Codex ревьюирует
    и постановку, и код в одном `$D` — упавший этап 4 оставлял файл этапа
    2, и триаж молча чинил по чужому вердикту.
- Что:
  - codex-exec.md: удалены копия урока про эффорт (экономика xray, казус
    `.dgst`), причинная механика bwrap, повтор про companion и битая
    ссылка «в уроках ниже»; три пересказа эскалации сведены в один;
    ветка ревьюера стала полноценным рецептом; правила одной ветки
    переехали в свои ветки.
  - codex-exec.md: сторож зависшего треда — признак жизни это рост
    stdout.jsonl, а не статус (урок 2026-07-07 в рецепт не доезжал).
  - prompt-templates.md: имена вердиктов и параметров несут этап —
    `review-<task|code>-<codex|claude>.md`, `review-<этап>-params.md`.
  - model-matrix.md: критерий «цена тихой ошибки этапа» стал единым
    источником, claude-agents.md и codex-exec.md на него ссылаются.
  - lessons-archive.md: датированное уточнение — ключи `resume` сверены
    на 0.145.0, `-m`/`-o`/`--json` доступны вопреки записи 2026-07-21.
- Проверка:
  - сверка 51 клаузы по инвентарю (scratchpad), 24 ключевые — grep'ом;
    все markdown-ссылки скилла резолвятся.
  - сторож прогнан на симуляции трёх исходов: штатное завершение,
    зависание на середине, смерть без отчёта.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 23:15:31 +03:00
Dmitry Dementiev 8218a211b4 refactor(skills): claude-subagent-playbook — старые уроки вынесены в архив
- Зачем:
  - lessons.md вырос до 830 строк, и записи до рефакторинга 31 июля
    описывают другую редакцию скилла — прежнюю эффорт-карту, другой
    состав ролей, заготовку adversarial-reviewer, которой больше нет.
- Что:
  - записи с 2026-07-06 по «казусы координации» 2026-07-31 перенесены в
    references/lessons-archive.md без изменений; живой файл сократился с
    830 до 300 строк.
  - шапка lessons.md объясняет разрез и как двигать границу дальше;
    архив вне пути чтения прогона, ссылка на него только из lessons.md.
  - три указателя на переехавшие записи переведены на архив: казус
    форвардера в SKILL.md и codex-exec.md, sandbox-инцидент в
    codex-sandbox-apparmor.md.
- Проверка:
  - все markdown-ссылки скилла разрешаются в существующие файлы.
2026-08-03 22:08:08 +03:00
Dmitry Dementiev 9642910194 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.
2026-08-03 21:48:29 +03:00
Dmitry Dementiev 36fc76ff90 feat(skills): claude-subagent-playbook — исполнитель не берёт ревью на веру
- Зачем:
  - после разворота ролей (реализация Опусом, ревью Кодексом) ревьюер
    продавливает исполнителя формальными решениями: за прогоны #39, #40 и
    #50 около 28 находок и ноль отклонений.
- Что:
  - в triage-header добавлен блок «ревью — свидетельство, а не приказ»:
    отклонение равноправно починке, маршрут ревьюера — предложение.
  - определение NEEDS_DECISION расширено случаем, когда выбор делает сама
    починка, независимо от объёма правки.
  - в recheck-header добавлен суд над лечением: перебор — тоже дефект, а
    NOT_CLOSED требует существующего закрывающего состояния и цены
    альтернативы.
  - в lessons закрыт долг четырёх прогонов и сведена очередь на механизм.
- Проверка:
  - следующий полный прогон плейбука: в триаже должны появиться
    отклонения или закрытия своим маршрутом с доводом.
2026-08-03 21:38:37 +03:00
Dmitry Dementiev c18472e360 docs(skills): claude-subagent-playbook — эмпирика #40 и #50
- Зачем:
  - две записи прогонов остались незакоммиченными; без них теряется фактура,
    ради которой журнал и ведётся, — и повторяющийся долг скилла нечем
    подтвердить.
- Что:
  - запись по #40: шапки соразмерности лечения сработали в третий раз;
    пересечение слепых линий — одно явление, описанное двумя способами.
  - запись по #50: сломанный прибор доезжает до коммита — ошибка измерения
    всплыла трижды на трёх уровнях, и ни разу её не поймал тот, кто мерил.
  - там же уточнение наблюдения владельца про дрейф Кодекса к букве и
    кандидат в механизм; долг с шапками отмечен четвёртым прогоном подряд.
- Проверка:
  - git show --stat; записи читаются как фактура для доработки скилла.
2026-08-02 23:02:32 +03:00
Dmitry DementievandClaude Opus 5 f758e1f802 docs(skills): claude-subagent-playbook — эмпирика #39: суд над лечением
Зачем: два прошлых прогона оставили долг — статус вешался на находку, а
лечение проезжало без суда. В прогоне #39 долг закрыт шапками триажа и
перепроверки, и это стоит помнить вместе с ценой: ручку пришлось собирать
руками в каталоге прогона.

Что: секция от 2026-08-02 про тикет #39 — как сработала ручка соразмерности
(трижды за прогон), почему «10 FIXED, 0 REJECTED» не доказательство, зачем
проверять единственный MAJOR своим зондом при тонком логе перепроверки, и два
отказа вызова Кодекса: закрытый stdin убивает промпт, а `codex exec resume`
не принимает `-s`.

Проверка: чтением; правка только в lessons.md, поведение скилла не менялось.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-02 15:52:29 +03:00
Dmitry Dementiev 7377ee94c5 docs(skills): claude-subagent-playbook — эмпирика #38: перепроверка и прибор
- Зачем:
  - прогон тикета #38 повторил конфигурацию 08-01 (оркестратор он же
    исполнитель, Кодекс третьей линией) и показал у той же дыры вторую
    сторону, а заодно класс сбоя, которого в файле не было.
- Что:
  - перепроверка тем же ревьюером не судит соразмерность лечения ни в
    одну сторону: после ALL_CLOSED на своё предписание — NOT_CLOSED с
    требованием недостижимого; приём — проверять существование
    закрывающего состояния и мерить цену альтернативы.
  - долг 08-01 назван неисправленным: статус вешается на находку, не на
    лечение; здесь лечение судилось только по требованию владельца.
  - новый класс: сломан не код, а измерительный прибор — устаревший .pyc
    в цикле мутаций; линии ревью такого не ловят.
- Проверка:
  - запись прочитана целиком, повторов предыдущих записей нет.
2026-08-02 13:29:46 +03:00
Dmitry DementievandClaude Opus 5 95c13211cb docs(skills): claude-subagent-playbook — эмпирика прогона: триаж и лечение
Прогон 2026-08-01 (clickstream v2, тикет #36) дал редкую конфигурацию:
оркестратор и есть исполнитель, плейбук позвали третьей линией поверх
готовой работы. Отсюда три факта для будущих доработок: триаж судит
находку, но не лечение; NEEDS_DECISION не сработал, потому что дешевизна
починки замаскировала, что это решение чужого слоя; перепроверка тем же
ревьюером перебор в лечении не ловит структурно. Записано фактами, правки
самого скилла не делались.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-01 23:30:08 +03:00
Dmitry DementievandClaude Fable 5 10d0003e10 docs(skills): плейбук — одёргивания дня прогонов в lessons: перечень мест ручной остановки координатора
Зачем.
Фидбек пользователя после дня работы старой редакции с Opus 5-координатором —
готовый список для следующего структурного захода, чтобы не потерялся.

Что.
Запись 2026-07-31 с четырьмя наблюдениями: повторное ревью отревьюенной
постановки и переоценка сложности (правила есть — не держат; кандидат:
перевернуть дефолт на opt-in), код Кодекса не для учеников (боевое
подтверждение оси вкуса), вызов скилла ради механики субагентов вне
конвейера (кандидат: отдельная лёгкая точка входа). Помечено открытым
вопросом следующего захода.

Проверка.
Правка журнала, прогонять нечего.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-31 17:18:30 +03:00
Dmitry DementievandClaude Fable 5 3e0498e242 docs(skills): плейбук — структурный рефакторинг: ось вкуса, брифы, два Опус-агента
Зачем.
Отдельный осознанный заход, закрывающий открытые вопросы 2026-07-26 и
2026-07-31: две ручки выбора (модель, эффорт) были про силу, вкус ими не
выражался; константы линий дрейфовали через перепечатку; правила
координации прогона #18 жили только в журнале; у Agent-тула нет ручки
effort — карта была нереализуема разовым вызовом.

Что.
- Третья ось выбора — вкус: references/model-matrix.md (матрица Тео с
  поправкой пользователя под gpt-5.6-sol/Opus 5); разрез по подзадачам
  на этапе 1, сначала вкусовая часть.
- «Родословная» разведена на семейство (классы находок) и свежесть
  (независимость); линия дефектов — по различию, уместности — по умению.
- Ступень эффорта выбирается выбором агента: определений столько,
  сколько пар (модель, ступень) — deep-reasoner (high), craftsman
  (medium, исполнение брифов: реализация/ревью/перепроверки; поглотил
  adversarial-reviewer), fast-worker; карта с обоснованиями — SSOT в
  claude-agents.md.
- Константы — файлами в prompts/: line-task/code/rev, self-review;
  line-taste — вкусовая линза с 12 запахами Фаулера из /code-review.
- Правила #18 — в механизм: инкрементальная запись индекса, глубина
  один и проверка среды в мандате, признак жизни / другой путь вердикта
  замене / среда своими глазами в «Сбоях», стенд одной линии, stdin фона.
- lessons дистиллирован (586→533), handoff захода — в handoffs/.

Проверка.
Слепое ревью Опусом по writing-great-skills: CHANGES_REQUIRED
(7 MAJOR, 17 MINOR, 3 NIT) — все закрыты или отклонены с доводом в
lessons; ссылки пакета проверены скриптом, битых нет. Боевой прогон
новой структуры — следующим заходом (чек-лист в handoff).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-31 17:03:23 +03:00
Dmitry DementievandClaude Opus 5 6070810c2d docs(skills): плейбук — под «родословной» ехали два механизма
Зачем.
Разговор о том, кому отдавать вкусовую линию ревью, упирался в ложный
выбор между независимостью и компетентностью. Причина — склейка: различие
семейств нужно для покрытия классов ошибок, свежая сессия для
независимости от рассуждений автора, а называлось это одним словом.

Что.
Заметка в открытый вопрос о рефакторинге: два основания назначения линий,
названная плата и указание решить при рефакторинге, переносить ли это в
этап 4 и эффорт-карту. В репозитории стенда решение уже принято.

Проверка.
Правка документации, прогонять нечего.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-31 15:37:40 +03:00
Dmitry DementievandClaude Opus 5 59e9c0787e docs(skills): плейбук — заметки к рефакторингу: ось вкуса и набор запахов
Зачем.
Прогон #18 показал, чего не хватает: обе наши ручки выбора (эффорт,
модель) про силу, вкус ими не выражается. Решения приняты, но структурные
правки скилла отложены — чтобы не потерялись, они записаны в открытый
вопрос, который читается при следующем заходе.

Что.
- Третья ось выбора: разрез по подзадачам на этапе планирования, вкусовое
  Опусу, руки Кодексу, ось ревью переворачивается. С требованием спросить
  у пользователя матрицу и примеры.
- Набор запахов Фаулера из /code-review Мэтта Покока — сильнее самодельных
  примеров в блоке Taste; оттуда же правило не сливать находки двух осей.
- Разбор журнала Codex-ревьюера: восстановление стенда ловушкой без
  проверки, самовольные subagent-ы вопреки правилу «глубина один».

Проверка.
Правка документации, прогонять нечего.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-31 15:21:10 +03:00
Dmitry DementievandClaude Opus 5 4f19cce325 docs(skills): плейбук — цифры и урок прогона #18 в lessons
Зачем.
Запись о прогоне была без раздела «Цифры», которого требует конвенция
файла, и без урока, ради которого прогон и запомнился.

Что.
- Цифры прогона #18: находки по линиям, приёмка на чистых томах.
- Урок: проверка, зелёная из терминала, может виснуть навсегда под
  фоновым запуском — приёмка оркестратора нашла то, чего не нашли обе
  линии ревью.

Проверка.
Правка документации, прогонять нечего.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-31 14:11:40 +03:00
Dmitry DementievandClaude Opus 5 6e67ccc1df docs(skills): плейбук — вкусовая линза ревьюера доведена до механизма
- Зачем:
  - решение 2026-07-23 «в линзу Клод-ревьюера — осмысленность кода» жило только в уроках и в памяти другого проекта, в заготовки промптов не попало: прогон #18 собрал старую линзу, и ревьюер не был обязан спрашивать, не дичь ли решение.
  - общий вывод прогона: решение, записанное только в уроки, следующим прогоном не исполняется — ехать может лишь механизм, который подшивается в промпт.
- Что:
  - prompt-templates.md: в заготовку line-task.md добавлен блок Taste — формально верное, но по сути неправильное считается находкой, три примера и правило оценки серьёзности по цене жизни с кодом; разрез по родословной переведён с цитаты фразы на именованный блок.
  - SKILL.md: описание линии «по задаче» больше не расходится с заготовкой — названа уместность решения и дана отсылка за точными словами.
  - lessons.md: две датированные записи (вкусовая линза; казусы координации прогона #18) и открытый вопрос о рефакторинге заготовок линий.
- Проверка:
  - слепое ревью правок Опусом по критериям /writing-great-skills: CHANGES_REQUIRED, 5 MAJOR — сокращение списка примеров, ведущее слово, разрез блоком, устаревшая копия в SKILL.md; все замечания по своим правкам закрыты, структурные вынесены в открытый вопрос по решению пользователя.
  - подтверждено ревью: расширение линзы не пустышка — прежний текст был целиком про соответствие постановке.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-31 13:36:33 +03:00
Dmitry DementievandClaude Fable 5 ef09a7832b 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>
2026-07-30 20:54:36 +03:00
ddadminandClaude Opus 5 357896faaa docs(skills): эффорт-карта субагентов пересчитана под Opus 5
- Зачем:
  - скилл писался под Opus 4.8; у Opus 5 усилия распределены иначе, high —
    верхняя рабочая ступень, xhigh дефолтить смысла нет.
- Что:
  - карта в SKILL.md сдвинута на ступень вниз (high — ревью постановок,
    medium — слепое ревью и узкие перепроверки, default — механика),
    нижняя граница ревью опущена с high до medium.
  - добавлены оговорки: неравномерность сдвига, deep-reasoner остаётся на
    high, механика едет на Sonnet и эффорт там не крутится.
  - в lessons.md записано решение 2026-07-26, помечена как пересмотренная
    запись 2026-07-21 и заведён открытый вопрос: чем координатор вообще
    выставляет effort (у Agent-тула такого параметра нет).
  - пункт про вспомогательных субагентов переписан активно: нет в репо —
    предложить создать по заготовке и работать ими.
- Проверка:
  - git diff HEAD~1 -- agents/.agents/skills/claude-subagent-playbook/;
    сверить, что xhigh в SKILL.md больше не упоминается.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-26 19:06:01 +03:00
ddadmin 051801efbe docs(skills): добавлен урок о taste-слепоте триажа в claude-subagent-playbook
- Зачем:
  - зафиксировать наблюдение: codex на триаже закрывает находки контрактными тестами с цитатами прозы, что формально корректно, но создаёт хрупкий мусор.
- Что:
  - записано решение пользователя: добавлять осмысленность кода в линзу Claude-ревьюера, срезание бессмысленного кода поручать Опусу, перепроверку после триажа давать линзе, видящей дифф целиком.
  - отмечен попутный эффект: образец заражает — легаси-жанр «тест на фразу README» подлежит чистке отдельным issue.
- Проверка:
  - git log --oneline -1
2026-07-23 15:02:42 +03:00
ddadminandClaude Fable 5 eb0d52ef57 docs(skills): взаимообогащение близнецов-плейбуков после сверки
- Зачем:
  - близнецы развивались порознь и разошлись: проверенные боем правила
    клодовского плейбука отсутствовали в кодексовом, и наоборот; промах
    скиллом 2026-07-22 показал цену дрейфа.
- Что:
  - в кодексовый: одно ревью на версию артефакта, саморевью исполнителя и
    сквозная проверка до внешних линий, «Партнёр в петле», цена тихой
    ошибки как критерий уровня (заменой, класс задачи — иллюстрация),
    проверка внешних фактов первоисточником, кавеат про неработающий
    reasoning_effort субагентов;
  - в клодовский: «Пределы параллельности» (обратная пара), карта
    прогресса поглощена в «Пользователь в петле», автовызов моделью
    (описание с триггерами вместо disable-model-invocation);
  - lessons обоих: датированные записи сверки, урок 07-13 сжат до
    указателя.
- Проверка:
  - перечитка диффа свежим взглядом; следующий прогон конвейера — по
    автовызванному claude-subagent-playbook.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-23 10:51:58 +03:00
ddadminandClaude Fable 5 8312ef071e fix(skills): уроки прогона 2026-07-22 перенесены в клодовский плейбук
- Зачем:
  - вчерашний патч 43a93cd лёг не в тот скилл: уроки клодовского
    координатора попали в codex-subagent-playbook — близнец для
    координатора на стороне Codex; там «канал codex exec» — бессмыслица,
    а правила канала давно живут в claude-subagent-playbook/codex-exec.md.
- Что:
  - codex-subagent-playbook: три файла возвращены к состоянию до 43a93cd;
    во фронтматтер добавлен disable-model-invocation и адресное описание
    против повторного промаха;
  - claude-subagent-playbook: запись прогона issue #5 в lessons.md (чужой
    скилл, плагин вместо CLI, два писателя, приёмочный сценарий);
    в SKILL.md — владение деревом после остановки прежнего владельца и
    проверка команд приёмки на живом объекте.
- Проверка:
  - git diff 43a93cd^ по трём файлам codex-плейбука — только фронтматтер;
    перечитка lessons.md на связность.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-23 10:43:14 +03:00
ddadmin 92cf3397da chore(sync): слиты изменения плейбука из origin/master
- Зачем:
  - в origin/master опубликованы правила разбиения задач и ревью постановки.
- Что:
  - объединены правила /to-tickets и шкала ревью с локальной картой effort.
  - сохранены уроки headless-xray-proxy и yantar-dags.
- Проверка:
  - выполнены трёхсторонняя сверка SKILL.md и git diff --cached --check.
2026-07-21 07:12:58 -04:00
Dmitry Dementiev 6fbe8f6be1 docs(skills): в плейбук субагентов встроено разбиение /to-tickets и шкала ревью постановки
- Зачем:
  - прогон предразметки показал два сбоя: тикеты созданы мимо критериев /to-tickets, а текст тикета трижды проходил через контекст оркестратора.
- Что:
  - этап 1: разбиение по критериям /to-tickets, мерка «тикет берётся в отдельной сессии без общего контекста».
  - этап 2: правило «одно ревью на версию артефакта» и шкала риска вместо безусловного ревью постановки.
  - согласованы шапка скилла, роли, критерии закрытия этапов и список соседних скиллов; урок записан в references/lessons.md.
- Проверка:
  - вычитка SKILL.md: новые правила не противоречат этапам 3-6.
2026-07-21 11:43:49 +03:00
ddadmin 811fc28b7c docs(claude-subagent-playbook): добавлены итоги эксперимента xray-proxy 03/04
- Зачем:
  - зафиксировать решения пользователя 2026-07-21 и эмпирику effort/кэша после двух боевых прогонов.
- Что:
  - явная карта effort для Claude-субагентов: xhigh — постановки/планы, high — слепое ревью, medium — перепроверки (SKILL.md);
  - уточнение критерия выбора effort по цене тихой ошибки этапа и эмпирика смены effort при resume (codex-exec.md);
  - сводка прогонов 03–04 с казусами: гонки конкурентности, выдумка формата .dgst, экономика конвейера (lessons.md).
- Проверка:
  - git diff HEAD~1 --stat.
2026-07-21 03:47:02 -04:00
ddadminandClaude Fable 5 fdf744e578 docs(claude-playbook): перенесены находки зеркального codex-плейбука
- Зачем:
  - зеркальный codex-subagent-playbook ушёл вперёд по договорам ревью и
    экономии контекста координатора; согласованный с пользователем список
    находок перенесён в этот скилл.
- Что:
  - SKILL.md: установка «оптика, не конвейер», гейт и ручки эскалации для
    субагентов, саморевью исполнителя, шкала риска ревью с линзами
    TASK/CODE, статусы триажа с предохранителем кругов, постепенная
    приёмка с саморефлексией, раздел «Сбои координации».
  - prompts/: устойчивые ID находок, четыре статуса триажа, резолюции — в
    файл отчёта вместо тикета (лечит эхо файла задачи); новые
    result-contract.md и runtime-language.md.
  - prompt-templates.md: файлы линий ревью, сборка промптов с хвостом
    языка, вердикт перепроверки из task-notification; lessons.md — гейт
    на дистилляцию и датированная отмена урока про доводы в файле задачи.
- Проверка:
  - проверка относительных ссылок и git diff --check — чисто.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 19:37:32 +03:00
ddadminandClaude Fable 5 5b2db5bd7f docs(claude-playbook): уточнён дефолт эффорта Codex до medium
- Зачем:
  - решение пользователя 2026-07-19: sol на medium закрывает обычные
    задачи, прежнее правило дефолтило high почти всюду.
- Что:
  - в codex-exec.md переписано сквозное правило эффорта: medium — обычные
    задачи, high — нетривиальная реализация, ревью кода, диагноз.
  - к примеру запуска исполнителя добавлена пометка о выборе эффорта.
- Проверка:
  - вычитка references/codex-exec.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 19:37:18 +03:00
Dmitry DementievandClaude Fable 5 9c047f9d1e docs(skills): эмпирика прогона 2026-07-13 в lessons субагентного плейбука
- Зачем:
  - зафиксировать уроки прогона тикета 06 (t2-presale) до их поглощения
    в SKILL.md.
- Что:
  - главный урок: карта прогресса для пользователя на границах этапов.
  - блок «Модели»: переоценка Sol, боевое подтверждение medium,
    роли Опус/Codex, наводка gpt-5.6-terra с пометкой «не обкатано».
- Проверка:
  - чтение references/lessons.md, запись «Прогон 2026-07-13».

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-13 11:31:02 +03:00
ddadminandClaude Fable 5 a4985b365d docs(skill): уроки прогона задачи 13 — эхо файла задачи и формат индекса
- Зачем:
  - третий боевой прогон подтвердил рефакторинг «тонкого мастера»;
    новые пожиратели контекста и слабое место Клод-ревьюера должны
    остаться в эмпирике скилла.
- Что:
  - lessons.md: запись прогона 2026-07-12/13 (находки этапов, три новых
    пожирателя, цифры конвейера).
  - prompt-templates.md: обёртка Клод-ревьюера требует однострочность
    индекса (Клод-родословная держит формат хуже Codex).
  - handoffs/: handoff разработки с открытыми вопросами (эхо файла
    задачи, приём вердикта из уведомления, эксперимент medium).
- Проверка:
  - вычитка; факты сверены с транскриптом прогона задачи 13.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-13 00:09:24 +03:00
ddadmin 7110a075ea docs(skill): принцип «мастер решает», готовые boilerplate-промпты, ревизия
- Зачем:
  - ретро прогона 2026-07-12 (задача 20, clickstream-demo): контекст
    оркестратора съедали инлайн-диагнозы, переписывание boilerplate и
    кириллица в обменных файлах.
- Что:
  - SKILL.md: принцип «мастер решает — субагенты выясняют» со стоп-краном
    «сам — максимум один заход», обменные файлы на английском, сквозная
    проверка до ревьюеров, будильник одной строкой.
  - references/prompts/: готовые английские boilerplate-файлы (мандат
    ревью, триаж, перепроверка) — подшиваются cat'ом, контекст мастера
    не проходят; prompt-templates перестроен под сборку.
  - codex-exec: модель gpt-5.6-sol, лестница эффорта, ловушка «&»;
    sandbox-справочник переименован в codex-sandbox-apparmor.md;
    lessons дистиллирован, добавлена запись прогона 2026-07-12.
  - закрыты 14 находок слепого Fable-ревью скилла (согласованность,
    единый источник $SCRATCH, скелет ревью постановки).
- Проверка:
  - все внутренние ссылки резолвятся; слепое ревью: APPROVED_WITH_MINORS,
    восстановление структуры подтверждено без потерь.
2026-07-12 22:17:59 +03:00
Dmitry DementievandClaude Fable 5 15d5515925 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>
2026-07-10 16:55:16 +03:00
Dmitry Dementiev 6e767d13ff docs(skill): двойное слепое ревью постановки и связка с /to-tickets
- Зачем:
  - прогон 2026-07-10 (mws-data-test-t2-presale) дал новую эмпирику
    этапов 1–2, не отражённую в скилле.
- Что:
  - этап 2: для крупной постановки — второе слепое ревью Кодексом с
    рамкой «постановку, не реализацию»; классы находок родословных;
  - этап 1: постановка через /to-tickets, когда репозиторий настроен
    под скиллы Мэтта Покока;
  - lessons.md: запись прогона с цифрами и ретро-оговоркой про
    companion-канал (issue #158).
- Проверка:
  - вычитка диффа свежим взглядом; ссылки ведут на существующие
    файлы references/.
2026-07-10 13:07:08 +03:00
Dmitriy DementievandClaude Fable 5 db6271f0f7 docs(skill): агенту предписаны инициатива и sudo-эскалация по sandbox-фиксу
- Зачем:
  - рецепт AppArmor-фикса требует sudo, а инициатива агента (диагностика
    до прогона, передача команд пользователю) держалась на здравом смысле,
    не на тексте скилла.
- Что:
  - в правило про линукс-ловушку codex-exec.md дописано: фикс сам не
    применяй — дай пользователю готовые команды с `!`-префиксом; после
    профиля напомни убрать use_legacy_landlock; перед первым прогоном на
    новой Linux-машине прогони диагностику превентивно.
- Проверка:
  - чтение правила в references/codex-exec.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-10 12:47:29 +03:00
Dmitriy DementievandClaude Fable 5 7607ce2b84 docs(skill): влиты линукс-уроки sandbox из ветки codex-sandbox-fix-20260710
- Зачем:
  - другая сессия на Ubuntu 24.04 задиагностировала молчаливую поломку
    песочницы Codex CLI 0.144.1 (bwrap+userns против AppArmor); знание
    нужно основной линии скилла — Linux-прогон конвейера впереди.
- Что:
  - перенесён references/codex-sandbox-fix-handover-2026-07-10.md
    (диагностика, обход use_legacy_landlock, AppArmor-профиль);
    раздел «Связанные записи» перенацелен с удалённого codex-companion.md
    на codex-exec.md.
  - в codex-exec.md добавлено сквозное правило про линукс-ловушку
    (сигнатура «гуглит, но не может ls»), в lessons.md — датированная
    запись, в handoff — кавеат к пункту про Linux-прогон.
- Проверка:
  - git show origin/codex-sandbox-fix-20260710 — содержимое перенесено
    полностью; перекрёстные ссылки codex-exec.md ↔ handover резолвятся.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-10 12:43:42 +03:00
Dmitriy DementievandClaude Fable 5 89ebd1d327 docs(skill): claude-subagent-playbook — write-ревьюер Codex и уборка
- Зачем:
  - read-only-конфайн обеднял ревью Codex (без тестов, поиска,
    первоисточников), а плотность SKILL.md и дефолты модели/усилия
    из config.toml накопили риски по итогам трёх прогонов.
- Что:
  - ветка «ревьюер» в codex-exec.md переведена на запись + авто-аппрув,
    защита — мандат промптом; в рецепты добавлены --strict-config и
    явные -m / model_reasoning_effort.
  - SKILL.md: правило «мандат промптом» для обоих ревьюеров, правило
    моделей субагентов (Опус/Sonnet, не Fable), /tdd и /research +
    Context7 в этапе 1, таймер-подстраховка ScheduleWakeup; уборка
    плотности и инлайн-дат.
  - handoffs 07-06/07-07/07-09 поглощены запиской 2026-07-10; в lessons.md
    добавлены правило дистилляции и блок 2026-07-10; правки прошли слепое
    ревью Опусом, все находки закрыты.
- Проверка:
  - оверрайды -m/-c проверены живым codex exec --strict-config;
    перекрёстные ссылки и команды сверены ревьюером с codex --help.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-10 12:41:09 +03:00