- Зачем:
- прежняя записка описывала состояние до задачи 03 и не содержала
решения пользователя по эксперименту с эффортом для задачи 04.
- Что:
- создан handoff after-03: статус тикетов, решение «04 на medium»,
уроки resume-синтаксиса codex exec и потери usage при убитом ходе.
- прежний handoff after-06 удалён как одноразовый по правилам AGENTS.md.
- Проверка:
- git show --stat HEAD.
5.5 KiB
Handoff: конвейер xray-proxy после задачи 03
Дата: 2026-07-20. Для свежего агента, продолжающего работу в этом репозитории с пользователем Дмитрием. Заменяет handoff «after-06».
Состояние проекта
- Спека:
docs/specs/2026-07-15-headless-xray-proxy-design.md(обновлена задачей 03: модель идентичности процессов, lifetime-flock, три исхода проверки state). - Тикеты:
.scratch/headless-xray-proxy/issues/01..06. 01, 02, 03, 06 — done; 04 — ready-for-agent (следующая); 05 — замыкающая (blocked by 03+04, включает ручную приёмку пользователем на целевых системах). - Последний коммит работ:
5ace0cf(feat 03, +890/−100). - Тесты сейчас:
python3 -m unittest discover -s tests→ 49 OK (~60 с);bash tests/test_proxy_launchers.sh→ 8 PASS. - Резолюции конвейера по 03 — в шапке тикета 03; расход токенов по этапам —
.scratch/headless-xray-proxy/token-ledger.md.
Решение пользователя по эксперименту (2026-07-20)
Реализацию 04 гнать на model_reasoning_effort="medium" — добираем
статистику эксперимента (память codex-effort-calibration). Контекст
решения: 03 на medium дала 4 MAJOR от слепого CODE-ревью против 1 MAJOR у
06 на high (все — гонки конкурентности/восстановления; конвейер выловил и
починил, обе перепроверки FIXES_CONFIRMED). Оговорка: 03 богаче на гонки,
чем 06, чистым A/B не считать. Ревью постановок и кода, диагнозы — high.
Как вести работу (проверено прогонами 06 и 03)
Скилл claude-subagent-playbook: постановка → spec-ревью (Codex, high;
для 03 это дало NEEDS_REWORK с 7 MAJOR и спасло реализацию — не
пропускать) → реализация Codex (medium) → саморевью (resume, medium) →
два слепых ревью (Claude TASK-субагент + Codex CODE свежий тред, high) →
триаж тредом исполнителя (resume, medium) → узкие перепроверки теми же
ревьюерами → приёмка оркестратором (обе сьюты локально) → коммит по
conventional-commits.
Критично:
- thread_id Codex забирать сразу из первой строки stdout-JSONL.
Рестарты сессии дважды убивали фоновые процессы/сторожа; тред
реанимируется
codex exec resume <id>без потерь. - Синтаксис resume отличается:
codex exec resume <id>принимает ТОЛЬКО-c-оверрайды (-c 'sandbox_mode="workspace-write"',-c 'model="gpt-5.6-sol"',-c 'model_reasoning_effort="…"'), флаги-s/-m/-oдают exit 2. Отчёты просить писать в файл через промпт. - Usage при убитом ходе теряется (нет
turn.completed); цифры resume-хода покрывают тред по масштабу — фиксировать с оговоркой. - Токен-леджер дополнять строкой на каждый этап; методика — в шапке леджера.
- Один писатель в дереве; ревьюеров ограничивать read-only мандатом, после
ревью сверять
git status. - Чужие untracked-артефакты (
zed/.config/*,agents/.agents/skills/*,scripts/setup-xray-proxy.sh) не трогать и не коммитить.
Решения пользователя (не пересматривать без него)
Память: prefers-kiss, consultant-multi-distro,
codex-effort-calibration. KISS с различением essential/accidental;
целевые системы: Ubuntu, РЕД ОС, возможно Astra/Alt (Python 3.8+
stdlib-only, переносимость); строгий отказ парсера и безопасный kill не
упрощать; секреты (VLESS/UUID/ключи) — никогда в stdout/stderr/argv/
state/репозиторий.
Suggested skills
claude-subagent-playbook— конвейер задач 04/05.conventional-commits— обязателен для каждого коммита.resolving-merge-conflicts— если merge с origin принесёт конфликты.
Ближайший шаг
Задача 04: свежий обменный каталог (mktemp -d), spec-ревью постановки
.scratch/headless-xray-proxy/issues/04-*.md (Codex, high) → правка
постановки по находкам → реализация (medium) → далее по конвейеру.
После 04 — итоговое сравнение эксперимента и, при решении пользователя,
запись выводов в
~/.claude/skills/claude-subagent-playbook/references/codex-exec.md.
Затем 05 с ручной приёмкой пользователя на целевых системах.