- Зачем:
- пользователь сжимает контекст сессии; состояние конвейера и решения
должны переживать сжатие в файле проекта, а не в разговоре.
- Что:
- создан .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>
5.1 KiB
Handoff: конвейер xray-proxy после задачи 06 (перед compact)
Дата: 2026-07-20. Для свежего агента, продолжающего работу в этом репозитории с пользователем Дмитрием.
Состояние проекта
- Спека:
docs/specs/2026-07-15-headless-xray-proxy-design.md(уже упрощена задачей 06 — только Xray 26.3.27, срезаны лишние защиты). - Тикеты:
.scratch/headless-xray-proxy/issues/01..06. 01, 02, 06 — done; 03, 04 — ready-for-agent; 05 — замыкающая (blocked by 03+04). - Порядок: 03 → 04 → 05 (03 и 04 независимы; 03 предпочтительнее первой — работает по зоне, только что упрощённой в 06).
- Последний коммит работ:
98bfd63(refactor 06) + следом этот handoff. - Тесты сейчас:
python3 -m unittest discover -s tests→ 34 OK (~60 с);bash tests/test_proxy_launchers.sh→ 8 PASS.
Как вести работу (проверено прогоном 06)
Работа идёт по скиллу claude-subagent-playbook (оркестратор — Claude,
исполнитель и часть ревью — Codex через codex exec; рецепты — в
references скилла). Прогон 06 прошёл полный цикл: постановка →
spec-ревью → реализация → саморевью → два слепых ревью (Claude TASK +
Codex CODE) → триаж → узкая перепроверка → коммит. Итог ревью: 1 MAJOR
(починен), 1 NIT (отклонён аргументированно) — детали в резолюции тикета
06.
Критично для продолжения:
- Эксперимент по эффорту (см. память
codex-effort-calibration): реализацию 03 и 04 гнать наmodel_reasoning_effort="medium"; ревью кода и постановок, диагнозы — high. Метрика: число/тяжесть находок слепых ревью против baseline 06 (реализация на high дала 1 MAJOR + 1 NIT после саморевью). - Токен-леджер:
.scratch/headless-xray-proxy/token-ledger.md— дополнять строкой на каждый этап (Codex usage — изturn.completedв stdout-JSONL, Claude — изsubagent_tokensуведомления). Итог 06 там же — база сравнения. - thread_id Codex забирать сразу после старта из первой строки
stdout-JSONL: в прогоне 06 перезапуск сессии убил фоновый процесс
перепроверки, тред реанимирован
codex exec resume <id>без потерь. - Перед реализацией 03 постановку прогнать через spec-ревью (Codex, high): тикет 03 редактировался в 06 (добавлен мандат идентичности «PID + время старта + exe»), свежих глаз после правки не было.
- Один писатель в дереве; ревьюеров ограничивать мандатом в промпте,
после ревью сверять
git statusс baseline. - В дереве есть чужие untracked-артефакты (
zed/.config/*,agents/.agents/skills/*,scripts/setup-xray-proxy.sh) — не трогать и не коммитить.
Решения пользователя (не пересматривать без него)
Зафиксированы в памяти (prefers-kiss, consultant-multi-distro,
codex-effort-calibration) и в тикете 06: KISS-линза с различением
essential/accidental; целевые системы шире Ubuntu (РЕД ОС, возможно
Astra/Alt — пункты приёмки в 05 сохранены намеренно); Python 3.8+
stdlib-only — требование переносимости; строгий отказ парсера и
безопасный kill не упрощать.
Suggested skills
claude-subagent-playbook— основной конвейер задач 03/04/05.conventional-commits— обязателен для каждого коммита.resolving-merge-conflicts— если merge с origin принесёт конфликты./compactпользователь делает сам; после него продолжать отсюда.
Ближайший шаг
Пользователь даёт «го» на 03 → развернуть конвейер плейбука: свежий
обменный каталог (mktemp -d), spec-ревью постановки 03 (high) →
реализация Codex (medium — эксперимент) → саморевью → слепые ревью →
триаж → приёмка → коммит; леджер вести построчно.