- Зачем: прокси из окружения запуска до API не доходил. Запросы Codex
отправляет общий демон app-server, и маршрут зависел от того, кто запустил
демон первым. Нужно было и обратное: Codex и Claude должны работать без
прокси, даже если запускающее приложение его задало.
- Что: шаблоны codex/proxy.env (копируется в ~/.codex/.env) и
claude/proxy-settings.json (блок env добавляется в ~/.claude/settings.json).
По умолчанию прокси 127.0.0.1:12334. install.sh не трогает выбор, уже
сделанный на машине. В README описано, как переключить машину на работу
без прокси.
- Проверка: tests/test_install.sh и tests/test_proxy_env_sync.py проходят.
Вручную: значения из ~/.codex/.env и из env в настройках Claude перекрывают
унаследованные переменные; codex doctor проходит через Xray; очищенные
адреса вместе с NO_PROXY=* дают прямое подключение.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Зачем: профиль XHTTP с x_padding_bytes и пустым host не запускался.
Что: Xray обновлён до 26.10.10; добавлены параметры TLS, REALITY и XHTTP,
значения по умолчанию и преобразование старых названий сессии XHTTP.
Обновлены документация и регрессионные тесты.
Проверка: 59 тестов на Python 3.14 и 3.8, Bash-функции и установщик;
16 тестов разбора после уточнения проверки SHA-256. Настоящий Xray
проверил конфигурацию и выполнил HTTPS-запрос через профиль с HTTP 200.
Пользователь подтвердил работу proxy-client start.
Плагин настроен и проверен (jev через Zen + прокси, enforce+deny),
но признан не стоящим использования: хрупкая цепочка, нервные
эскалации, запертая сессия. Запись в opencode.json отключена
(закомментирована), выводы — в docs/research/.
Хранилище задач переведено с локальных файлов в .scratch/ на Gitea Issues.
Состояния triage стали метками Gitea. Оставшиеся английские заголовки
и термины в документах для агентов переведены на русский.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Рабочие заметки агентов больше не коммитятся и не удаляются перед
слиянием: каталог живёт на машине. Долговечное по-прежнему выносится
в docs/ до слияния.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- state.json снова хранит адрес и порт: при смене конфига у работающего
Xray status/env/run отказывают и советуют перезапустить start.
- Ошибки разбора ссылки называют файл профиля.
- Тесты: отказ start при чужой версии Xray, ключи REALITY не попадают
в вывод, Xray узнаётся после замены файла; машинный конфиг проверяется
через CLI; тест пути по умолчанию не зависит от доступности Hiddify.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Спецификация 603 → 220 строк: без описаний снятых защит и без пересказа
кода и README; остались задача, границы, решения с причинами и риски.
В README раздел «Изменение кода» ведёт к спецификации и тестам.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- Проверка «тот ли процесс»: /proc/PID/exe для Xray и cmdline для
супервизора вместо boot_id, времени старта и разбора argv; нет больше
состояния «не удалось подтвердить, удалите файлы вручную».
- Установка Xray: SHA-256 и атомарная замена остаются; без ограничений
размера, строгого разбора .dgst и блокировки на время установки.
- Разбор ссылки: extra — обычный json.loads; allowInsecure/insecure
игнорируются с предупреждением.
- Ошибки о файлах называют полный путь и готовую команду
(chmod 600 для профиля, rm для битого state.json).
- Тесты: разбор ссылок — табличные без запуска процессов, по одному
запуску на сценарий управляемого Xray; без подмены внутренних функций.
Код 1569 → 925 строк, тесты 2479 → 895, прогон 63 → 9 с.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- install.sh ставит три прямые ссылки без Stow; чужие файлы не трогает
и перечисляет все конфликты сразу; ~/.local и ~/.config могут быть
ссылками; блок в ~/.bashrc дописывается, если нет маркера.
- proxy_on читает вывод proxy-client env без временного файла.
- Тесты Bash-функций работают через поддельный PROXY_CLIENT_BIN.
- test_proxy_client_full.sh запускает только тесты proxy-client,
прогон под Python 3.8 — если есть uv.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Проверка порта перед запуском открывала сокет без SO_REUSEADDR и
отказывала, пока на порту доживали закрытые соединения Xray (TIME_WAIT),
хотя сам Xray запустился бы. Живой слушатель флаг на Linux не обходит,
так что занятый порт по-прежнему обнаруживается.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Новые ссылки Hiddify пишут «/» перед параметрами, используют
VLESS-шифрование mlkem768x25519plus и flow=xtls-rprx-vision поверх XHTTP.
Разбор принимает эти ссылки; прежние форматы работают как раньше.
Vision поверх XHTTP разрешён только вместе с шифрованием.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- Зачем: плагин больше не используется, а в OpenCode 2 он не грузится (V1-формат) и даёт ошибку на старте.
- Что: из opencode.json удалена опция plugin с репозиторием obra/superpowers.
- Проверка: opencode plugin list больше не показывает superpowers; JSON валиден; V1 и V2 читают конфиг как раньше.
- Зачем:
- уточнены роли моделей и подход к их выбору в конвейере субагентов.
- Что:
- добавлена матрица цены, интеллекта, вкуса и качества текста.
- Terra назначена отправной точкой для технических задач.
- дополнены наблюдения о ревью и длительных сессиях Claude.
- Проверка:
- git diff --cached --check.
- Зачем:
- при делегировании нужно учитывать стоимость модели и явно задавать effort.
- Что:
- добавлена памятка о соотношении стоимости Astra, Sol, Terra и Luna.
- добавлено требование явно указывать уровень effort в поручении.
- Проверка:
- git diff --check.
- Зачем:
- устранено противоречивое разделение ролей в инструкции сопровождения субагентов.
- Что:
- закреплено использование одной Luna для механических работ и внешней линии.
- убраны устаревшие указания об отдельном помощнике и свободной роли.
- Проверка:
- git diff --check.
- Зачем:
- снизить стоимость внешнего сопровождения ревью без потери его роли.
- Что:
- указано, что отдельная Luna с effort medium для внешней линии очень предпочтительна.
- Проверка:
- git diff --check.
- Зачем:
- снизить ресурсоемкость внешнего сопровождения субагентов без потери его роли.
- Что:
- для Luna внешней линии указан уровень effort medium вместо high.
- Проверка:
- git diff --check.
- Зачем:
- сократить лишние обращения к координатору при ожидании ревью и передаче материалов.
- Что:
- уточнены оценка объема Git и трекерных операций, самостоятельное ожидание и прямой файловый обмен.
- сохранены предпочтения владельца по отдельному помощнику для Claude и передаче материалов.
- добавлено предпочтение Opus для независимого ревью с заменой на Astra при недоступности.
- Проверка:
- проверены локальные ссылки и git diff --check.
- штатный валидатор до и после правок отклоняет существующий ключ disable-model-invocation; режим вызова сохранен.
- Зачем:
- Зафиксировать единые правила выбора глубины Luna для технических поручений и сопровождения внешнего ревью.
- Что:
- Указана отправная настройка `high` для технических поручений Luna.
- Уточнено, что Luna готовит краткие итоги внешнего Claude-ревью и может продолжать сохранённую сессию.
- Проверка:
- git diff --check.
- Проверены состав изменений и формат сообщения Conventional Commits.
- Зачем:
- сохранить в основной ветке согласованный способ экономить контекст и сопровождать ревью.
- Что:
- добавлены правила изоляции и выбора Luna для механики Claude;
- закреплены факты прогона, передача отчетов и границы наблюдения.
- Проверка:
- git diff --check;
- проверено слияние двух коммитов feature-ветки без конфликтов.
- Зачем:
- связать выбор помощника и глубины с фактической ценой ошибки и сохранять контекст координатора.
- Что:
- уточнен свободный выбор `high` для Luna и выделение отдельного помощника для долгой линии Claude;
- описаны события наблюдения, необязательный минутный опрос и прозрачная передача результата;
- добавлены подтвержденные факты прямой передачи девяти находок и предпочтения Luna `high`.
- Проверка:
- `git diff --check`;
- проверены только три разрешенных файла и ссылки на комментарии #236:2840 и #236:2845;
- ранее пройдены адресные проверки и нормализованный `quick_validate`.
- Зачем:
- экономить контекст координатора, сохраняя проверяемость внешних ревью и объемных операций.
- Что:
- описана механика Luna для шумного вывода, необязательного Opus-ревью и коротких отчетов;
- уточнены изоляция контекста помощника, жизненный цикл Claude и передача разрешения и отчетов;
- добавлены наблюдения прогона и границы для частоты опроса и приема результатов.
- Проверка:
- git diff --check;
- проверены ссылки и настройки навыка;
- quick_validate на нормализованной копии без неподдерживаемого валидатором ключа `disable-model-invocation`.
- Зачем:
- Обновлена координация задач с защитой замысла, контекста и бюджета работы.
- Что:
- Ветка refactor/codex-subagent-playbook включена через merge --no-ff.
- Добавлены актуальные роли, переиспользование агентов, осмысленный триаж и отчеты партнёру.
- Сохранен текущий handoff, архивирована старая эмпирика и обновлены исключения скиллов.
- Проверка:
- Основной рефакторинг прошел независимое ревью и ограниченный поведенческий прогон.
- Финальные документы проверены на ссылки, YAML и ошибки форматирования.
- Рабочие заметки удалены из дерева; история решений сохранена в коммитах.
- Зачем:
- Рабочая зона .scratch не переносится в master по правилам репозитория.
- Что:
- Удалены спецификация и отчет проверки из текущего дерева ветки.
- Ссылки на их версии в истории сохранены в актуальном handoff скилла.
- Проверка:
- Сверены состав .scratch и доступность обеих версий документов в Git.
- Зачем:
- Завершена текущая работа и подготовлено продолжение без старых записок.
- Что:
- Три прежних handoff заменены актуальной запиской со ссылками на решения и проверки.
- Включены пользовательские исключения для установленных сторонних скиллов.
- Проверка:
- Проверены 53 относительные ссылки, 11 якорей, YAML и обе политики включения.
- Подтверждены сохранность 11 игнорируемых каталогов и доступность документов в Git.
- Пройден git diff --check.
- Зачем:
- Исполнитель и ревьюер получают полезные приемы по месту применения.
- Что:
- Добавлена условная ссылка на /tdd по имени скилла в поручении исполнителю.
- Из code-review Мэтта Покока перенесены названия запахов как подсказки для суждения.
- Подключена линза сопровождаемости с учетом правил проекта и соразмерности изменений.
- Проверка:
- Сверены двенадцать названий запахов с исходным скиллом.
- Проверены 61 относительная ссылка, 11 якорей и git diff --check.
- Зачем:
- Необязательный переход к шаблонам позволял пропустить границы вложенного делегирования.
- Что:
- Добавлен явный переход к мандату Sol и Terra при поручении реализации.
- Убраны повтор про пользу агента и дублирующее пояснение ссылки на роли.
- Проверка:
- Сверены накопленные изменения скилла после основного рефакторинга.
- Проверены 60 относительных ссылок, 10 якорей, YAML и git diff --check.
- Зачем:
- Область применения приема ограничена переданной группой тикетов.
- Что:
- Добавлен выбор готовых тикетов по существующим зависимостям.
- Указана проверенная и доступная зависимому исполнителю работа предшественника.
- Проверка:
- Проверены формулировка границ и git diff --check.
- Зачем:
- Скилл поддерживает выбранную пользователем модель координатора, включая Sol.
- Что:
- Вступление и описание интерфейса адресованы ответственному координатору.
- Sol и Terra указаны как обычные исполнители с выбором глубины по сложности.
- Приведены в соответствие роли, шаблон поручения и текущие вопросы журнала.
- Проверка:
- Проверены YAML, явное включение скилла, 60 относительных ссылок и якоря.
- Пройден git diff --check; сверены полномочия координатора и исполнителя.
- Зачем:
- Устаревшие наблюдения отделены от вопросов текущей редакции без потери истории.
- Что:
- Июльский lessons.md дословно сохранен в архиве.
- Рабочий журнал обновлен под Astra и дополнен условиями переноса старых периодов.
- Добавлен условный переход к эмпирике из итогового разбора координатора.
- Проверка:
- Подтверждено побайтовое сохранение прежнего файла в архиве.
- Проверены 60 относительных ссылок, 9 якорей и git diff --check.
- Зачем:
- Партнер видит ход автономной работы и может вовремя вмешаться.
- Что:
- Добавлены периодические сводки о состоянии и отклонениях.
- Уточнена остановка зависимой работы для решений за пределами полномочий.
- Добавлен итоговый разбор пользы делегирования и затрат с разделением измерений и оценок.
- Проверка:
- Проверены согласованность с правилами триажа и git diff --check.
- Зачем:
- Ревьюер может передать ограниченную механику и объемный вывод помощнику.
- Что:
- В мандат добавлено делегирование Luna с сохранением границ и независимости.
- Оценка доказательств, находки и итоговый отчет оставлены ревьюеру.
- Проверка:
- Проверены итоговый мандат и git diff --check.
- Зачем:
- Исполнитель получает границы самостоятельного делегирования вместе с задачей.
- Что:
- Добавлен блок для Sol с вспомогательной работой Luna и ответственностью за запись.
- Дополнительный исполнитель уровня Sol и переразбиение задачи отнесены к координатору.
- Уточнен запас контекста на реализацию, проверки и исправления.
- Проверка:
- Проверены размещение блока и git diff --check.
- Зачем:
- Сохранено полезное понимание области при переходе к соседней задаче.
- Что:
- Добавлен выбор существующего агента с обновлением цели и границ.
- Указаны основания для свежего контекста, включая независимость проверки.
- Проверка:
- Проверены итоговый абзац и git diff --check.
- Зачем:
- Актуализирована координация под Astra с сохранением замысла и бюджета контекста.
- Что:
- Разделены роли Astra, Sol и Luna; выбор приемов оставлен координатору.
- Сохранены независимое ревью, триаж и проверка соразмерности исправлений.
- Обновлены нативные механики и необязательная линия Claude CLI.
- Проверка:
- Проверены Markdown-ссылки, YAML и git diff --check; описано ограничение валидатора.
- Пройден поведенческий сценарий с тремя тестами и независимое ревью Claude.
- Перепроверены находки и фактическое продолжение фоновой сессии Claude.
- Зачем:
- сохранить замысел самостоятельного скилла для Astra-координатора.
- Что:
- описаны роли, защита контекста и выбор приёмов по задаче.
- сохранены отдельный триаж и защита от несходящегося ревью.
- Проверка:
- выполнен горячий обзор против обсуждения и действующего договора триажа.
- проверены локальные ссылки и git diff --cached --check.
- Зачем:
- запуск Claude без полного доступа ломает дальнейший процесс ревью и делает работу субагентов бессмысленной.
- Что:
- в раздел «Запуск Claude-субагентов» добавлено предупреждение о режиме доступа.
- Проверка:
- git diff agents/.agents/skills/codex-subagent-playbook/SKILL.md.
- Зачем:
- при выборе модели для письменных задач нужна оценка качества текста на русском языке.
- Что:
- в легенду model-matrix.md добавлено определение literacy.
- в таблицу добавлена колонка literacy с оценками моделей.
- Проверка:
- git diff agents/.agents/skills/claude-subagent-playbook/references/model-matrix.md.
- Зачем:
- на прогоне #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>
- Зачем:
- эгресс-политика 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>