# 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 ` без потерь. - **Синтаксис resume отличается**: `codex exec resume ` принимает ТОЛЬКО `-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 с ручной приёмкой пользователя на целевых системах.