- Зачем:
- эгресс-политика Codex требует явного разрешения владельца на отправку
diff внешнему сервису; на прогоне вопрос пришёл в середине ревью, а
запасные Codex-ревьюеры молча потеряли разнообразие семейств.
- Что:
- в запуске Claude-субагентов: разрешение на передачу кода запрашивать
до начала реализации, одним вопросом на весь прогон.
- в режимах ревью разведены причины недоступности внешней линии:
техническая — работать доступными, согласийная — сначала спросить
владельца, замена односемейными теряет основание линии дефектов.
- Проверка:
- вычитка diff; боевая — следующий прогон конвейера: вопрос о передаче
кода до реализации, ревью-линии без ручного вмешательства.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Зачем:
- на прогоне #156 правило «при расхождении побеждает базовый» снесло
назначение Fable на вкусовую линию — Codex переключился на craftsman/Opus
по карте ролей базового плейбука, потребовалось ручное вмешательство.
- Что:
- приоритет базового ограничен общими механиками конвейера; запуск Claude
и назначение моделей линиям действуют как записаны в этом файле.
- у выбора Fable на вкусовую линию названо «почему»: базовый держит Fable
для оркестрации только на стороне Claude, со стороны Codex она свободна.
- Проверка:
- вычитка diff; боевая — следующий прогон конвейера без ручной правки
выбора моделей.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Зачем:
- приложение должно явно работать через прокси и сохранять настройку после обновлений.
- Что:
- добавлены отдельный ярлык ChatGPT Proxy и запускатель на основе proxy-client.
- исключено смешение прямого и проксированного режимов существующего процесса.
- установка, документация и автоматические проверки дополнены новым Stow-пакетом.
- Проверка:
- bash tests/test_chatgpt_proxy_launcher.sh.
- bash tests/test_proxy_launchers.sh.
- bash tests/test_install.sh.
- Зачем:
- нужна удобная работа с документами на большом Яндекс Диске из Linux.
- Что:
- собраны выводы о поведении rclone mount на больших хранилищах.
- добавлены команды установки, настройки, проверки и автозапуска в Ubuntu 26.04.
- описаны ограничения кэша, внешних изменений и рекурсивного обхода.
- Проверка:
- выполнена проверка `git diff --cached --check`.
- Зачем:
- скилл писался под 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>
- Зачем:
- конфликт с уже существующим конфигом приходилось разбирать руками:
stow печатал "All operations aborted" и откатывал все пакеты сразу.
- Что:
- backup_conflicting_kitty_files заменена на общую
backup_conflicting_stow_targets по списку AVAILABLE_PACKAGES.
- обход повторяет логику stow: отсутствующая цель и каталоги-симлинки
пропускаются вместе с поддеревом, поэтому свёрнутые пакеты
(~/.codex, ~/.vscode-server) не обходятся и не бэкапятся.
- в фикстуру тестов добавлен пакет wezterm, добавлены тесты на конфликт
в HOME и на неприкосновенность содержимого свёрнутого пакета.
- Проверка:
- bash tests/test_install.sh
- Зачем:
- при существующем ~/.config/kitty/kitty.conf stow печатал
"All operations aborted" и откатывал все пакеты, а install.sh падал
по pipefail, не дойдя до настройки claude, opencode и .bashrc.
- Что:
- добавлена backup_conflicting_kitty_files: неуправляемые файлы и чужие
симлинки в ~/.config/kitty уносятся в .bak с временной меткой перед stow.
- собственные симлинки пакета пропускаются, поэтому повторный запуск
install.sh не плодит бэкапы.
- добавлены тесты на существующий файл, чужой симлинк и повторный запуск.
- из таблицы пакетов README убран zed: он не в PACKAGES с ab4c7c7.
- Проверка:
- bash tests/test_install.sh
- Зачем:
- конфиг kitty не был под контролем версий, а свёрнутый stow-каталог
приводил бы к попаданию рантайм-файлов kitty в репозиторий.
- Что:
- добавлен пакет kitty с минимальным kitty.conf и current-theme.conf
вместо 112 КБ sample-конфига от старой версии.
- в install.sh kitty добавлен в PACKAGES, а ~/.config/kitty создаётся
заранее настоящим каталогом, чтобы stow линковал по файлам.
- тест folding переведён с невыпиленного zed на kitty, устаревшая
проверка ~/.config/zed в тесте миграции заменена на assert_not_exists.
- Проверка:
- bash tests/test_install.sh
- Зачем:
- statusLine Claude Code ссылался на скрипт, который install.sh не создавал.
- Что:
- новый statusline-command.sh (округление процентов, порог длины пути,
работа в Git Bash без jq) и его установка в ~/.claude через install.sh.
- Проверка:
- printf '%s' "$json" | bash claude/.claude/statusline-command.sh на тестовых JSON.
- Зачем:
- в таблице настроек Claude не было упоминания скрипта статусной строки,
хотя install.sh теперь копирует его в ~/.claude.
- Что:
- в строку про Claude добавлено «statusline-command.sh → копия из репозитория».
- Проверка:
- grep -n statusline README.md.
- Зачем:
- statusLine ссылался на ~/.claude/statusline-command.sh, которого install.sh
никогда не создавал, а сам скрипт не округлял проценты и резал путь по числу
сегментов вместо длины.
- Что:
- скрипт переписан: округление процентов до целых, порог длины пути в
переменной MAX_PATH_LEN (28), резервный разбор JSON без jq, USER/USERNAME и
HOSTNAME вместо hostname -s, нормализация обратных слэшей — для Git Bash.
- install.sh копирует statusline-command.sh в ~/.claude с правами 755.
- Проверка:
- printf '%s' "$json" | bash claude/.claude/statusline-command.sh на JSON с
дробными процентами, null в rate_limits и без блока rate_limits.
- Зачем:
- конфигурация zed больше не управляется через stow и хранится локально в ~/.config/zed.
- Что:
- убран zed из массива PACKAGES в install.sh.
- Проверка:
- запустить install.sh и убедиться, что симлинк ~/.config/zed не создаётся.
- Зачем:
- навык должен автоматически вызываться по описанию, а не только вручную.
- Что:
- удалена опция disable-model-invocation: true из frontmatter.
- Проверка:
- git diff — изменения только в SKILL.md.
- Зачем:
- привести игнор-список в соответствие с текущим набором навыков.
- Что:
- добавлен игнор для find-skills/.
- исправлены записи claude-team-review и adversarial-review (убраны лишние слеши).
- Проверка:
- git status — изменён только .gitignore.
- Зачем:
- раздел «Возможности хоста» обещает reasoning_effort в схеме
spawn_agent, а кавеат о его неприменении жил двумя разделами ниже —
координатор поверил бы в ручку, которой сейчас нет.
- Что:
- в пункт «Управляемая стоимость» добавлена ссылка на кавеат в
«Выборе уровня».
- Проверка:
- перечитка roles.md свежим взглядом после сверки близнецов.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Зачем:
- близнецы развивались порознь и разошлись: проверенные боем правила
клодовского плейбука отсутствовали в кодексовом, и наоборот; промах
скиллом 2026-07-22 показал цену дрейфа.
- Что:
- в кодексовый: одно ревью на версию артефакта, саморевью исполнителя и
сквозная проверка до внешних линий, «Партнёр в петле», цена тихой
ошибки как критерий уровня (заменой, класс задачи — иллюстрация),
проверка внешних фактов первоисточником, кавеат про неработающий
reasoning_effort субагентов;
- в клодовский: «Пределы параллельности» (обратная пара), карта
прогресса поглощена в «Пользователь в петле», автовызов моделью
(описание с триггерами вместо disable-model-invocation);
- lessons обоих: датированные записи сверки, урок 07-13 сжат до
указателя.
- Проверка:
- перечитка диффа свежим взглядом; следующий прогон конвейера — по
автовызванному claude-subagent-playbook.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Зачем:
- вчерашний патч 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-22 (конвейер issue #5 в демо-стенде) прошёл
через плагин-обёртку Codex и воспроизвёл её известные баги; ресёрч
2026-07-07 давно рекомендовал прямой CLI, но в скилл не был поглощён.
- Что:
- roles.md: третий режим «Канал командной строки» — codex exec фоном
у координатора, resume треда, плагин только для интерактива;
- SKILL.md: передача владения только после остановки прежнего
владельца; проверка команд сценария на живом объекте до прогона;
- lessons.md: два датированных наблюдения 2026-07-22, вопрос №9
переориентирован на проверку CLI-канала боем.
- Проверка:
- перечитка трёх файлов на связность и отсутствие дублей;
следующий прогон конвейера — по CLI-каналу.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Зачем:
- правила для внешних плагинов теперь хранятся локально, в самой директории skills.
- Что:
- в корневом .gitignore правила claude-team-review/adversarial-review заменены на .skill-lock.json.
- в agents/.agents/skills/.gitignore добавлены claude-team-review/ и adversarial-review/.
- Проверка:
- git status не показывает untracked файлы skills-плагинов.
- Зачем:
- прокси больше не используется, настройки устарели.
- Что:
- закомментирован параметр proxy.
- удалён блок agent_servers с прокси-переменными для claude-acp, codex-acp и gemini.
- Проверка:
- Zed запускается без ошибок конфигурации.
- Зачем:
- документация должна отражать только действующие правила и планы.
- Что:
- из AGENTS.md удалены устаревшие разделы о Git и общих требованиях.
- из TODO.md удален прежний список задач.
- Проверка:
- git diff --cached --check.
- Зачем:
- нужно понять, подходит ли GitVerse для управления задачами проекта.
- Что:
- описаны Public API, совместимость с GitHub и GitLab и доступные операции.
- сохранены результаты живых проверок и отличие внутреннего API.
- добавлены безопасные команды повторной проверки и решение для dotfiles.
- Проверка:
- git diff --cached --check.
- Зачем:
- пакет должен устанавливаться безопасно без полного dotfiles и обязательного Stow.
- Что:
- в master влита feature-ветка с установщиком, тестами и цельной инструкцией.
- история проектирования сохранена, а рабочая зона .scratch удалена перед слиянием.
- Проверка:
- bash tests/test_proxy_client_install.sh.
- bash tests/test_install.sh.
- Зачем:
- README смешивал пакетный и корневой установщики и оставлял неполные шаги для отдельных сценариев.
- Что:
- выстроен цельный путь установки и настройки для standalone и полного dotfiles.
- дополнена подсказка --no-shell-setup и добавлена регрессионная проверка.
- закрыты критерии приёмки тикета и указана дата завершения.
- Проверка:
- bash tests/test_proxy_client_install.sh.
- bash tests/test_install.sh.
- Зачем:
- пакет должен устанавливаться отдельно от dotfiles без ручной раскладки и опасных замен.
- Что:
- добавлен безопасный установщик со Stow и прямыми симлинками.
- добавлены идемпотентная настройка Bash и защита машинных файлов.
- обновлены инструкция и полный набор интеграционных проверок.
- Проверка:
- env XDG_STATE_HOME=<временный каталог> bash tests/test_proxy_client_full.sh.
- Зачем:
- отдельный пакет должен устанавливаться без общего dotfiles и обязательного stow.
- Что:
- зафиксирована единая раскладка симлинков через stow или ln.
- отделены файлы пакета от машинного конфига и закрытого профиля.
- добавлены правила конфликтов, настройки Bash и проверки установки.
- Проверка:
- git diff --cached --check.
- Зачем:
- рабочие задачи и handoff не должны попадать в итоговое состояние master.
- Что:
- удалены временные материалы разработки proxy-client.
- добавлен .scratch/.gitkeep для сохранения пустого рабочего каталога.
- Проверка:
- git diff --cached --check.
- find .scratch -mindepth 1 -print.
- Зачем:
- свежая установка могла превратить ~/.local в ссылку на пакет и записать Xray в репозиторий.
- Что:
- перед Stow теперь гарантируются настоящие ~/.local/bin и ~/.config/proxy-client без раскрытия посторонних ссылок.
- добавлены регрессионные проверки свежего HOME и посторонней ссылки ~/.local.
- README перестроены вокруг установки, выбора режима и ежедневного использования.
- Проверка:
- bash tests/test_install.sh.
- bash tests/test_proxy_launchers.sh.
- bash -n install.sh tests/test_install.sh.
- git diff --cached --check.
- Зачем:
- нужны фактические результаты ручной приёмки на рабочем профиле.
- Что:
- подтверждены HTTP CONNECT и SOCKS5h на Ubuntu 26.04 с Xray 26.3.27.
- записаны результаты проверки H3 под повторной нагрузкой и после простоя.
- сохранён открытым вопрос проверки на других семействах Linux.
- Проверка:
- 240 последовательных запросов без ошибок, две загрузки по 10 МБ и повторные запросы после 45 секунд простоя.
- git diff --cached --check.
- Зачем:
- прежнее имя выпячивало Xray, хотя клиент поддерживает также внешний прокси, а два каталога конфигурации были неочевидны.
- Что:
- пакет, CLI, конфигурация, состояние, тесты и документация переименованы в proxy-client.
- машинный конфиг, профиль и два явных примера собраны в одном пользовательском каталоге.
- свежая установка защищена от сворачивания каталога конфигурации внутрь репозитория.
- Проверка:
- bash tests/test_proxy_client_full.sh.
- bash tests/test_install.sh.
- ручные start, status и xray run -test; незавершённая сетевая приёмка записана в handoff.
- Зачем:
- в origin/master опубликованы правила разбиения задач и ревью постановки.
- Что:
- объединены правила /to-tickets и шкала ревью с локальной картой effort.
- сохранены уроки headless-xray-proxy и yantar-dags.
- Проверка:
- выполнены трёхсторонняя сверка SKILL.md и git diff --cached --check.
- Зачем:
- зафиксировать решения пользователя 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.
- Зачем:
- следующая сессия должна стартовать задачу 05 без восстановления
контекста из транскриптов.
- Что:
- создан handoff после 04: состояние конвейера, решения по эффорту от
2026-07-21, план задачи 05 с ручными приёмками, грабли механики;
- удалён отработанный handoff после 03.
- Проверка:
- cat .scratch/handoffs/20260721-0343-xray-proxy-after-04.md.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Зачем:
- решения по калибровке эффорта (2026-07-21) должны быть видны в самом
проекте, а не только в плейбуке оркестратора.
- Что:
- в «Наблюдения» леджера добавлен итог: реализация на medium допустима,
экономику считать по конвейеру; эффорт-карта Claude-субагентов;
пределы эффорта и эмпирика кэша Codex при resume.
- Проверка:
- git diff предыдущей версии .scratch/headless-xray-proxy/token-ledger.md.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Зачем:
- пользователь без root должен получать проверенный бинарник Xray 26.3.27
одной явной командой, без риска для живого managed-экземпляра.
- Что:
- команда install [--replace]: пин 26.3.27, маппинг x86_64/aarch64,
скачивание urllib + проверка SHA2-256 из официального четырёхзаписного
.dgst, staging внутри ~/.local/bin и один атомарный os.replace;
- границы размеров (64 MiB архив/бинарник, 4 KiB .dgst, счёт limit+1,
сверка Content-Length) и guard managed-режима через start-lock;
- типизированная StartLockBusyError, offline-тесты реального загрузчика
через подмену urlopen, снапшоты дерева ФС в отказных путях;
- README/спека обновлены, включая справку о последней версии с
allowInsecure (25.12.8, удалена в 26.2.6); тикет 04 закрыт, леджер
дополнен итогами эксперимента.
- Проверка:
- PYTHONDONTWRITEBYTECODE=1 python3 -m unittest discover -s tests — 79 OK.
- bash tests/test_proxy_launchers.sh — 8 PASS.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Зачем:
- прежняя записка описывала состояние до задачи 03 и не содержала
решения пользователя по эксперименту с эффортом для задачи 04.
- Что:
- создан handoff after-03: статус тикетов, решение «04 на medium»,
уроки resume-синтаксиса codex exec и потери usage при убитом ходе.
- прежний handoff after-06 удалён как одноразовый по правилам AGENTS.md.
- Проверка:
- git show --stat HEAD.
- Зачем:
- stop/status опирались на обход argv и могли счесть чужой или
переиспользованный PID управляемым процессом, а параллельный start
и аварийная гибель супервизора не имели определённого поведения.
- Что:
- введена модель идентичности: PID + starttime (поле 22 /proc/PID/stat),
/proc/PID/exe для ребёнка, канонический путь скрипта для супервизора,
boot_id как граница загрузки; перечитка перед каждым сигналом.
- добавлены lifetime-flock супервизора, три исхода проверки состояния
(здоровая пара / подтверждённый сирота / непроверяемое), отказ при
занятом порте пробным bind и очистка stale только под lock.
- тесты расширены до 49 (blank flock, подмена starttime, чужой exe,
boot_id, SIGKILL супервизора, занятый порт, парсер stat); спека
приведена к модели идентичности; тикет 03 закрыт, леджер дополнен.
- Проверка:
- python3 -m unittest discover -s tests — 49 OK.
- bash tests/test_proxy_launchers.sh — 8 PASS.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Зачем:
- зафиксировать правила работы с .scratch/ (рабочая зона) и делегирования субагентов.
- Что:
- описано, что .scratch/ коммитится, но не попадает в master.
- добавлена процедура слияния фиче-ветки (git rm .scratch + --no-ff).
- описаны принципы делегирования объёмной и механической работы субагентам.
- Проверка:
- cat AGENTS.md
- Зачем:
- пользователь сжимает контекст сессии; состояние конвейера и решения
должны переживать сжатие в файле проекта, а не в разговоре.
- Что:
- создан .scratch/handoffs/20260720-0425-xray-proxy-after-06.md: состояние
после задачи 06, порядок 03→04→05, правила прогона
(medium-эксперимент, леджер, thread_id) и решения пользователя.
- в AGENTS.md закреплено правило размещения handoff-записок в
.scratch/handoffs/ (одноразовые, коммитятся, уборка best-effort).
- Проверка:
- git show --stat HEAD.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Зачем:
- CLI и спека были переусложнены относительно принятой модели угроз
(один пользователь, доверенная машина): лишняя ось версий Xray и
защита от входов, которые не возникают при ручном редактировании.
- Что:
- убрана поддержка Xray 25.12.8 — поддерживается только 26.3.27;
allowInsecure валидируется, но никогда не эмитится в JSON.
- удалена проверка владения сокетом через /proc/net/tcp; идентичность
процесса и сверка адрес/порт со state сохранены.
- валидация INI/профиля/адреса/query сведена к отказам на реальные
опечатки; scoped IPv6 отклоняется одинаково на Python 3.8 и 3.9+.
- удалены fsync/O_EXCL-церемония, SIGALRM-таймер, zombie-инспекция,
мёртвый отпечаток профиля и двойной разбор extra/alpn.
- shell.bash принимает вывод env без ре-валидации, сохранив атомарность;
спека и issue 01–05 приведены к новому объёму (тикет 06, леджер).
- Проверка:
- python3 -m unittest discover -s tests — 34 теста OK.
- bash tests/test_proxy_launchers.sh — 8 проверок PASS.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Зачем:
- инженерным навыкам нужны единые правила хранения задач и документов предметной области.
- Что:
- настроено локальное хранилище задач с веточным жизненным циклом.
- добавлены стандартные состояния triage и схема single-context.
- добавлены ссылки на настройки в AGENTS.md.
- Проверка:
- git diff --cached --check.
- Зачем:
- зеркальный 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: sol на medium закрывает обычные
задачи, прежнее правило дефолтило high почти всюду.
- Что:
- в codex-exec.md переписано сквозное правило эффорта: medium — обычные
задачи, high — нетривиальная реализация, ревью кода, диагноз.
- к примеру запуска исполнителя добавлена пометка о выборе эффорта.
- Проверка:
- вычитка references/codex-exec.md.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Зачем:
- третий боевой прогон подтвердил рефакторинг «тонкого мастера»;
новые пожиратели контекста и слабое место Клод-ревьюера должны
остаться в эмпирике скилла.
- Что:
- lessons.md: запись прогона 2026-07-12/13 (находки этапов, три новых
пожирателя, цифры конвейера).
- prompt-templates.md: обёртка Клод-ревьюера требует однострочность
индекса (Клод-родословная держит формат хуже Codex).
- handoffs/: handoff разработки с открытыми вопросами (эхо файла
задачи, приём вердикта из уведомления, эксперимент medium).
- Проверка:
- вычитка; факты сверены с транскриптом прогона задачи 13.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Зачем:
- субагенты должны сохранять внимание мастера и помогать результату, а не обслуживать обязательный конвейер.
- Что:
- семиступенчатый процесс заменён эвристиками выбора исполнителя, проверяющего и независимого ревьюера.
- права агентов отделены от канала результата, а полная полезная нагрузка выведена из контекста мастера.
- добавлены авторитетные договоры промптов, полевые заметки и handoff следующей сессии.
- Проверка:
- git diff --cached --check.
- свежий обзор через writing-great-skills, все принятые находки закрыты.
- Зачем:
- ретро прогона 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,
восстановление структуры подтверждено без потерь.
- Зачем:
- зафиксировать уроки боевого прогона для сессии доработки скилла.
- Что:
- handoff с шестью уроками: таймер-подстраховка и её экономика, прямой
codex exec вместо плагина (с номерами issues), поправки пользователя
к флагам CLI, идея читающего форвардера, вердикт из логов умершего
агента, паттерн ожидания через отслеживаемый фоновый Bash.
- Проверка:
- чтение handoff; коммит только одного файла, чужие untracked не задеты.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Два круга кросс-ревью правок (находки по убыванию: конфликт уровней,
затем стенд/человек), раздел «Контракт автономного прогона» и открытый
пункт: контракт не проверен вживую до следующей цепочки.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
По ревью Codex: «живой стенд» ошибочно попал в класс «может проверить
только человек». Теперь как в статус-контракте: недоступную worker-у
проверку прогоняет координатор (часть коммит-гейта), открытым риском в
handoff уходит лишь то, что недоступно и ему — ручная приёмка, внешняя
среда.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
По предложению Codex из ретро: скилл проектировался под сценарий «передал
очередь issue и ушёл», но входной контракт и мандат были неявными. Новый
раздел фиксирует вход (issue, порядок, «зачем»), мандат (весь цикл без
уточняющих вопросов; за пределы локального репозитория — только по
поручению) и сводку стоп-условий со ссылками на их разделы — без
пересказа правил, чтобы не разъезжались. Предупреждение о третьем круге
уточнено: это не вопрос, ответа не ждать.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
По ревью Codex: фраза «дефолт — рабочий уровень» противоречила таблице
effort-levels.md (worker обычного issue — экономный) и толкала запускать
всех worker-ов на high; заменена на выбор уровня по роли и классу issue.
Заодно «форма распределений» расширена до доменных инвариантов данных —
скилл общий, а не только для генератора.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Итоги эксперимента medium-worker (критерий выхода не сработал), ссылка на
правки b8f1fe0, закрытые и оставшиеся пункты из «не сделано».
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Три уточнения по отзыву Codex, сверенному с журналом координатора:
- предусловие входа: качественно подготовленные issue (выход /to-issues),
мутные — сначала прояснение замысла;
- точная граница чтения координатора: запрет только на код ради
верификации, процессные артефакты — его зона;
- классификатор риска расширен маркерами из прогона (версионирование
state, разрушающие пути, fail-open проверки); в effort-levels.md —
итог калибровки: уровни не менять, точность даёт классификация issue.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Зачем:
- на прогоне 2026-07-05 make generator-test с зашитым pytest -v высыпал
в контекст координатора полный список из 181 теста: правило «только
сводка» было, а механики не было.
- Что:
- шаг 7: гейт координатор гоняет сам (не через субагента), шумные
команды — в файл-лог, в контекст только код возврата и итоговые
строки; интерпретация объёмного вывода — разборщику логов
экономного уровня.
- ведущее правило и чек-лист дополнены той же механикой.
- effort-levels: «разбор логов» добавлен в экономный ярус Claude Code.
- Проверка:
- вычитка SKILL.md; grep по pytest/сводка/файл-лог — противоречий нет.
- Зачем:
- session-handoff писался до живого прогона; вторая волна правок и
результат кросс-прохода не были зафиксированы.
- Что:
- дополнение к handoff сессии: шесть находок прогона, вторая волна правок,
урок «живой прогон под наблюдением — самый дешёвый источник находок».
- rationale: поправка 2026-07-05 — третий случай подтверждения находки
о родословной (1 critical, 5 high после APPROVED той же линии).
- Проверка:
- перекрёстные ссылки на отчёт кросс-ревью и коммиты правок сходятся.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Зачем:
- триаж находок финального ревью не был назначен никому (worker-ы уже
закрыты); ретроспектива координатора после цепочки 12-08 дала
проверенные боевые предложения.
- Что:
- триаж находок финала — у fixer-а тем же механизмом, что у worker-а.
- словарь статусов отчётов и правило «APPROVED != завершение цепочки».
- предупреждение пользователю на третьем круге ревью, до потолка.
- шаг 3: уровень worker-а явно по effort-levels.md и в журнал.
- Проверка:
- перечитывание разделов «Цикл» и «Финал цепочки» после правок.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Зачем:
- правило «всё чинит fixer» было слишком грубым: процессные файлы
(PRD фичи, чекбоксы issue, журнал) — прямая зона координатора по
построению скилла, отдавать их fixer-у бессмысленно.
- Что:
- граница по классу файла: процессные — координатор сам (симптом
пропущенного п.1), файлы проекта — fixer-субагент, кодовая находка —
мини-issue с rerun ревью.
- Проверка:
- сверка с живым прогоном: находки Bernoulli (PRD, чекбоксы) — класс 1,
World Map в пользовательских доках — класс 2.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Зачем:
- живой прогон: координатор сам правил доки по находкам финального ревью
(полные тексты в контексте, второй писатель) и дал промежуточный статус,
прочитанный пользователем как завершение.
- Что:
- находки финального ревью чинит fixer-субагент с worker-контрактом,
не координатор.
- до выполнения финала каждый отчёт пользователю явно называет статус
цепочки и остаток.
- Проверка:
- перечитывание раздела «Финал цепочки».
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Зачем:
- координатор прочитал «свежие сессии» как запрет продолжать субагента:
пять полных xhigh-обходов финального ревью вместо узких rerun-ов.
- Что:
- правило уточнено: свежая сессия — про запуск без форка истории;
узкий rerun — продолжение того же ревьюера через send_input.
- свежий ревьюер обязателен по триггерам: спор, эскалация, широкая
переработка, слабый индекс; правило продублировано в шаге 5 и финале.
- reviewer-prompt.md: PREVIOUS_FINDINGS_BLOCK — только для свежего
субагента.
- Проверка:
- сверка с механикой rerun в claude-team-review (продолжение — штатный
путь, блок прошлых находок — для свежего).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Зачем:
- эксперимент «worker на medium» должен быть измерим: круги ревью против
уровня worker-а видны только если уровень записан.
- Что:
- точка записи «старт issue» дополнена уровнем мышления worker-а.
- Проверка:
- перечитывание раздела «Журнал прогона».
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Зачем:
- у worker-а есть страховочная сетка ниже по течению, у ревьюера нет:
глубина мышления важнее на ревью, а worker — самая дорогая петля.
- Что:
- таблицы уровней: worker на обычном issue — экономный (medium), любое
code review и worker на гейтовом issue — рабочий (high).
- в SKILL.md ярусы получили обоснование членства ролей.
- Проверка:
- согласованность ярусов SKILL.md с обеими таблицами effort-levels.md.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Зачем:
- живой прогон issue 12 показал: субагенты не наследуют уровень сессии,
дефолт spawn_agent — medium, worker и ревьюер молча ушли ступень ниже.
- Что:
- effort-levels.md: явные значения уровней (medium/high/xhigh) и
предупреждение про дефолт spawn_agent.
- журнал: фиксировать фактический уровень хоста, не название яруса.
- Проверка:
- сверка с конфигом сессии (model_reasoning_effort = high) и экраном
прогона (spawn gpt-5.5 medium).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Зачем:
- живой прогон issue 12 показал: координатор тратит циклы на попытки
передать worker-у полный контекст форком своей истории.
- Что:
- явное правило в раздел ролей: worker, ревьюеры и диагносты запускаются
свежими сессиями; форк тащит контекст координатора и убивает
независимость ревьюера.
- Проверка:
- перечитывание раздела «Роли» после правки.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Зачем:
- зафиксировать итог сессии для продолжения: как проверялся пакет,
повороты после ревью, что осталось незамеренным.
- Что:
- добавлен handoff 2026-07-04-rework-session-claude-line.md.
- в пакете правок обновлена строка статуса (внесено и закоммичено).
- Проверка:
- перекрёстные ссылки между двумя handoff'ами сходятся.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Зачем:
- боевой прогон цепочки 07-11 показал: worker в Codex не может запускать
субагентов, ревью шло пятью кругами без ограничителя, финальный handoff
и закрытие issue выпадали из цикла.
- Что:
- ревьюеров запускает координатор (наблюдатели, ограничение промптом),
триаж находок и флаг «спор» — в worker-е; политика кругов с потолком.
- две ручки стоимости: модель по роли и уровень мышления, таблица
references/effort-levels.md; шаблон references/reviewer-prompt.md —
скилл самодостаточен, без файлов claude-team-review.
- журнал с метками времени; финал: PRD до ревью, Status: done
docs-коммитом, handoff — условие выхода; handoff пакета правок.
- Проверка:
- адверсарное ревью пакета свежим субагентом (2 блокера и 7 important
закрыты) плюс саморевью; следующий боевой прогон цепочки — замер.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Зачем:
- сохранить выводы сессии проектирования у самого навыка, чтобы будущая сессия по доработке нашла их рядом с handoff про наблюдаемость.
- Что:
- добавлена расширенная версия handoff: диагностика двух «пожаров» по логам Codex, prior art (obra:superpowers), два принятых правила с адресами правок в SKILL.md, кандидаты-фиксы и открытые вопросы.
- Проверка:
- открыть handoffs/2026-06-14-coordinator-loop-context-economy.md
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Зачем:
- нужно передать на другую машину договорённости по наблюдаемости coordinator-loop.
- Что:
- добавлен handoff с форматом live-логов, summary и правилами gitignore.
- зафиксированы отказ от state.md и run-id, а также best-effort heartbeat.
- Проверка:
- просмотрен staged diff нового handoff-файла.
- Зачем:
- README должен описывать границы скилла без ложных ожиданий от runtime-поведения.
- Что:
- уточнена приёмка через агент другой модельной линии, если он доступен.
- разделены проектная документация и документационные правки внутри issue.
- проверяемость описана как свойство конечного результата цепочки.
- Проверка:
- просмотрен staged diff README coordinator-loop.
- Зачем:
- дать человеку и будущей сессии быстрый вход: зачем навык, где в конвейере, что на выходе.
- Что:
- описаны место в потоке (brainstorm/grill -> to-issues -> coordinator-loop -> приёмка) и границы навыка.
- зафиксировано, что проверяемость результата закладывается при проектировании, а не в этом скилле.
- якоря контекста самодостаточны: ссылки только на SKILL.md и references/rationale.md.
- Проверка:
- открыть agents/.agents/skills/coordinator-loop/README.md.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Зачем:
- распространить языковую политику стенда на личный репозиторий dotfiles.
- Что:
- добавлен раздел «Язык и рассуждения»: ясный русский и рассуждения на английском.
- фразы перенесены дословно из AGENTS.md учебного стенда.
- Проверка:
- git show HEAD -- AGENTS.md.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Зачем:
- закрепить эксперимент с координатором субагентов как переиспользуемый навык для Codex.
- Что:
- добавлен SKILL.md с циклом worker -> саморевью -> классификация -> ревью -> коммит.
- эмпирика эксперимента вынесена в references/rationale.md.
- добавлен мост codex/.codex/skills/coordinator-loop для подхвата навыка в Codex.
- навык только по явному вызову (/coordinator-loop), без автосрабатывания.
- Проверка:
- ls ~/.agents/skills/coordinator-loop/SKILL.md; вызов /coordinator-loop в Codex.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Зачем:
- первый живой тест скилла вскрыл правки, которые надо закрепить, и идеи для v2.
- Что:
- SKILL.md: R1 (рекомендация к вопросам-решениям), F1 (2-3 внутри рамки + ≥1
дивергентный сверх, без филлера), inline/confirm для терминов, read-only
инспекция данных в шаге 1, нейтральная SEAM-метка.
- ROADMAP.md: статус первого теста, Landed R1/F1/SEAM, вердикты R2/F4/F5a, план v2.
- Проверка:
- прочитать SKILL.md (core_rules, шаги 1/4/5) и ROADMAP.md.
- Зачем:
- убрать неоднозначности после ревью: два имени у пропуска сбивали агента, потеряна мотивация жёсткости, у самого судьбоносного решения «развилка или нет» не было опоры.
- Что:
- пропуск чекпоинта везде назван «пропустить», явно отделён от выключения режима («stop»/«обычный режим»).
- возвращена мотивация: ручное включение = согласие поджимать, не смягчать из вежливости.
- в «Что считается развилкой» добавлен доменно-нейтральный различитель по распространению непонимания и цене отката.
- Проверка:
- /reload-skills и вызов /understand на реальной развилке.
- Зачем:
- нужен ручной режим, который проверяет понимание без лишнего торможения обычной работы.
- Что:
- уточнены условия opt-in и работа режима в пределах текущей сессии.
- добавлены правила языка сессии, явного пропуска и обхода проверки как отсутствия сигнала.
- описана соразмерная проверка и варианты форматов ответа.
- Проверка:
- просмотрен staged diff: git diff --cached -- agents/.agents/skills/understand/SKILL.md.
- Зачем:
- нужен ручной режим, который ловит на непонимании, которого сам не чувствуешь, а не дублирует привычное «спрошу сам, когда замечу пробел».
- Что:
- добавлен agents/.agents/skills/understand/SKILL.md.
- активация только ручная (/understand и явные фразы), без авто-срабатывания.
- принцип «избирателен где, непреклонен когда»: ленивое «ага» не зачёт, по умолчанию требует пересказ.
- стоп-кран вместо свободы молчать, уровни объяснения подросток/стажёр/эксперт, состояние только в чате.
- Проверка:
- /reload-skills и вызов /understand на реальной задаче.
- Зачем:
- разгрузить контекст сессии — каждый скилл грузит описание в каждый проект; убираем то, чем не пользуемся.
- Что:
- удалены security-audit, proxy-debug, dotfiles-check, jupyter-notebook, docstring.
- review-homework удалён отсюда и перенесён в репозиторий kb-mentoring (.skills/), где он тематически на месте.
- Проверка:
- git status agents/.agents/skills — перечисленных папок больше нет; восстановимы из git-истории при необходимости.
- Зачем:
- решения и рассуждения по скиллу были размазаны по памяти агента,
README и комментарию у шва; нужен durable in-repo источник, который
переживёт смену сессии и не зависит от конкретного агента.
- Что:
- ROADMAP.md: статус v1, отложенные решения (R1 рекомендованный ответ
на вопрос, R2 дотошность грилла, F1 строка дивергенции, F4 связь с
grill-with-docs, F5a docs/agents), v2-крупное и отклонённое (F6).
- DEV-HANDOFF.md: контекст для возобновления, неочевидные обоснования
(frontmatter-переносимость, гейт под auto mode, агайл), suggested skills.
- README.md: ссылка на ROADMAP с пометкой про dev-only docs.
- Проверка:
- markdown-ссылка README → ROADMAP.md резолвится.
- Зачем:
- внешнее ревью выявило риск двойной записи решений (spec/ADR) и
терминологическую путаницу; правки документные, поведение не меняют.
- Что:
- adr.md и spec.md: добавлен lifetime-критерий ADR vs spec (ADR — для
решений, переживающих спеку; локальные остаются в спеке).
- spec.md: разведены Options considered (до выбора) и Decisions (после).
- SKILL.md: блок <validation> переименован в <self_review>, чтобы не
путать с секцией ## Validation в spec.md.
- README.md: честнее описано авто-срабатывание на Codex.
- SKILL.md: у SEAM зафиксирован TODO(F1) про строку дивергенции
(отложена ради чистого baseline на обкатке).
- Проверка:
- python3 yaml-парс frontmatter; нет висячих ссылок на <validation>.
- Зачем:
- нужен ручной скилл для брейнсторма и дизайна, который удерживает
словарь смыслов (CONTEXT.md) и лёгкие ADR, активно прожаривает план
и не сваливается в реализацию.
- Что:
- SKILL.md: процесс (контекст → классификация → декомпозиция →
грилл → синтез опций → подтверждение → артефакт), единый HARD-GATE
«исследуй, но не меняй состояние» с поправкой на auto mode.
- artifacts/: шаблоны spec, research-note, adr, runbook, prd, context
(по файлу на тип для progressive disclosure).
- README.md с MIT-атрибуцией grill-with-docs (Pocock) и brainstorming
(obra/superpowers); шов для будущей фазы дивергенции в шаге 5.
- frontmatter переносим: Claude читает все поля, Codex — name+description.
- Проверка:
- python3 yaml-парс frontmatter; markdown-ссылки на artifacts/ резолвятся.
- Зачем:
- отображать в Claude Code текущий путь, ветку, модель и использование контекста/rate limits.
- Что:
- создан claude/.claude/statusline-command.sh с парсингом JSON и ANSI-форматированием.
- обновлён .gitignore для трекинга нового скрипта.
- Проверка:
- запуск скрипта в рабочей директории проекта: bash claude/.claude/statusline-command.sh.
- Зачем:
- необходимо подключить набор skills для расширения возможностей агента Opencode.
- Что:
- добавлена опция plugin с указанием репозитория superpowers в opencode.json.
- Проверка:
- cat opencode/.config/opencode/opencode.json.
- Зачем:
- локальные MCP/loopback-соединения уходили в SOCKS5 через hproxy.local из-за отсутствия IPv6 в NO_PROXY
- Python-приложения не видели прокси-переменные в lower-case
- Что:
- добавлены ::1 и [::1] в список NO_PROXY для IPv6 loopback
- добавлены lower-case переменные (http_proxy, https_proxy, all_proxy, no_proxy)
- функция proxy_off теперь сбрасывает все прокси-переменные
- Проверка:
- source ~/.bash_functions && proxy_on && echo $NO_PROXY && proxy_off
- Зачем:
- в Plan Mode ревью плана вызывало ~5 permission prompts (git, Write, rm),
хотя для плана git не нужен, а план уже является файлом.
- Что:
- добавлен fast path: явный `plan` или Plan Mode пропускают git-проверки
- base branch определяется лениво (только для code/code-vs-plan)
- resume упрощён через `2>/dev/null` (stderr → /dev/null, stdout = чистое ревью)
- cleanup пропускается в Plan Mode, best-effort вне его
- удалены deprecated permissions claude-diff-* из settings.local.json
- Проверка:
- `/codex-review plan` в Plan Mode — 0 permission prompts
- `/codex-review code` вне Plan Mode — работает как раньше
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Зачем:
- зафиксировать известные проблемы и план выделения скилла в отдельный репо.
- Что:
- добавлен TODO: resume переключает sandbox/reasoning (разобраться с плагином).
- добавлен TODO: pipe в определении base branch.
- добавлен TODO: отдельный репозиторий + статья на Хабр (высокий приоритет).
- Проверка:
- cat TODO.md.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Зачем:
- официальный плагин OpenAI может содержать идеи для улучшения скилла codex-review.
- Что:
- добавлен пункт TODO со ссылкой на openai/codex-plugin-cc.
- Проверка:
- cat TODO.md.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Зачем:
- Codex имеет доступ к репо в read-only sandbox и может сам читать diff — сбор в temp-файл избыточен.
- Что:
- шаг 1: автодетект дополнен проверкой branch-изменений (BASE_BRANCH...HEAD).
- шаг 2: добавлено определение base branch через origin/HEAD + fallback main/master.
- шаг 3: diff заменён на --name-only списки (unstaged+staged, branch как fallback).
- шаг 4: промпты передают список файлов и git-команды вместо <diff-path>.
- убраны temp-файлы claude-diff-*, preflight --shortstat, часть cleanup.
- TODO.md: задача отмечена как выполненная.
- Проверка:
- /codex-review code — одобрено Codex за 3 раунда, 0 permission prompts.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Зачем:
- Codex и так имеет доступ к репо в read-only sandbox, сбор diff избыточен.
- Что:
- добавлен пункт TODO: передавать список файлов вместо diff.
- Проверка:
- cat TODO.md.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>