docs(xray-proxy): обновлён handoff конвейера после задачи 04
- Зачем:
- следующая сессия должна стартовать задачу 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>
This commit is contained in:
1 parent
086ff98db7
commit
1e7b9d3f3d
2 files changed
+74
-80
No files matched your search
@@ -1,80 +0,0 @@
|
||||
# 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 с ручной приёмкой пользователя на целевых системах.
|
||||
@@ -0,0 +1,74 @@
|
||||
# Handoff: headless-xray-proxy — после задачи 04, перед 05
|
||||
|
||||
Дата: 2026-07-21. Одноразовый документ (правило AGENTS.md): следующая
|
||||
сессия читает, продолжает, по завершении вехи удаляет и пишет новый.
|
||||
|
||||
## Состояние конвейера
|
||||
|
||||
- Порядок прогона: 06 (done, baseline high) → 03 (done) → 04 (done) →
|
||||
**следующая — 05**.
|
||||
- 04 закрыта полным конвейером и закоммичена:
|
||||
`0432c4a feat(xray-proxy): добавлена проверяемая установка Xray командой install`.
|
||||
Резолюция и детали — в
|
||||
`.scratch/headless-xray-proxy/issues/04-verified-xray-installation.md`
|
||||
(Status: done). Тесты после 04: **79 OK + 8 PASS**
|
||||
(`PYTHONDONTWRITEBYTECODE=1 python3 -m unittest discover -s tests`,
|
||||
`bash tests/test_proxy_launchers.sh`).
|
||||
- Эксперимент «реализация на medium» завершён и зафиксирован (см. ниже);
|
||||
затраты по этапам — `.scratch/headless-xray-proxy/token-ledger.md`
|
||||
(итоги 03/04, сводка 06/03/04, наблюдения).
|
||||
|
||||
## Решения пользователя 2026-07-21 (обязательны для 05)
|
||||
|
||||
Зафиксированы в `~/.claude/skills/claude-subagent-playbook/`
|
||||
(SKILL.md — эффорт-карта Claude-субагентов; references/codex-exec.md —
|
||||
уточнение к правилу эффорта 2026-07-19; references/lessons.md — эмпирика
|
||||
прогонов 03/04) и в памяти `codex-effort-calibration.md`. Кратко:
|
||||
|
||||
- Codex: реализация по отревьюированному тикету → medium допустима;
|
||||
экономию эффорта считать по конвейеру целиком.
|
||||
- Claude-субагентам effort задавать ЯВНО при спавне: xhigh — ревью
|
||||
постановок/планов; high — слепое TASK-ревью (ниже не опускать);
|
||||
medium/default — узкие перепроверки. Внутри одного агента effort между
|
||||
резюмами не менять.
|
||||
- Высокий effort не страхует от выдумки внешних фактов (казус `.dgst` в
|
||||
04) — форматы артефактов/версии проверять первоисточником или фикстурой.
|
||||
|
||||
## Следующий шаг: задача 05
|
||||
|
||||
`.scratch/headless-xray-proxy/issues/05-package-delivery-and-acceptance.md`
|
||||
— доставка пакета и приёмка. Особенность: включает РУЧНЫЕ приёмочные
|
||||
прогоны пользователя на Ubuntu / РЕД ОС / Astra / Alt (по доступности) —
|
||||
планируй конвейер с точками ожидания пользователя. Старт — по команде
|
||||
пользователя («поехали по 5»): постановка → Codex spec-review (high) →
|
||||
переписывание тикета оркестратором → реализация (medium, если типовая) →
|
||||
саморевью (resume, medium) → два слепых ревью (Opus TASK high + Codex
|
||||
CODE high свежим тредом) → триаж (resume) → узкие перепроверки (medium) →
|
||||
приёмка → conventional commit (русский, Зачем/Что/Проверка).
|
||||
|
||||
## Механика и грабли (проверено в 03/04)
|
||||
|
||||
- Codex-вызовы, шаблоны промптов, правила resume — playbook
|
||||
references/codex-exec.md. Критично: `codex exec resume <id>` принимает
|
||||
ТОЛЬКО `-c`-оверрайды; thread_id забирать из первой строки stdout-JSONL
|
||||
сразу после старта; usage убитого хода теряется (нет `turn.completed`).
|
||||
- Смена `model_reasoning_effort` при resume кэш Codex-треда не сбрасывает.
|
||||
- Леджер: Codex — `grep '"usage"' stdout*.jsonl` (последняя строка хода),
|
||||
Claude-субагенты — `subagent_tokens` из task-notification; сравнивать по
|
||||
«свежий input + output».
|
||||
- Scratch прогонов 03/04: `/tmp/xray-lifecycle-OZHc`, `/tmp/xray-04-H156`
|
||||
(архив, для 05 создать свой каталог).
|
||||
- Секреты: реальные VLESS/UUID/ключи — никогда в репо/выводы; чужие
|
||||
untracked-артефакты (`zed/.config/*`, `agents/.agents/skills/*`,
|
||||
`scripts/setup-xray-proxy.sh`) не трогать и не коммитить; git add — только
|
||||
адресно или `-u`.
|
||||
|
||||
## Suggested skills
|
||||
|
||||
- `codex-subagent-playbook` — оптика делегирования; конвейер и механика
|
||||
Codex — в `~/.claude/skills/claude-subagent-playbook/` (SKILL.md +
|
||||
references), читать перед стартом 05.
|
||||
- `conventional-commits` — для коммитов (русский, совершенный вид,
|
||||
Зачем/Что/Проверка).
|
||||
- `handoff` — по завершении 05 обновить этот документ (удалить, создать
|
||||
новый по той же схеме).
|
||||
Reference in new issue
Block a user