diff --git a/.scratch/handoffs/20260720-0425-xray-proxy-after-06.md b/.scratch/handoffs/20260720-0425-xray-proxy-after-06.md new file mode 100644 index 0000000..c302802 --- /dev/null +++ b/.scratch/handoffs/20260720-0425-xray-proxy-after-06.md @@ -0,0 +1,72 @@ +# 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 ` без потерь. +- Перед реализацией 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** — эксперимент) → саморевью → слепые ревью → +триаж → приёмка → коммит; леджер вести построчно. diff --git a/AGENTS.md b/AGENTS.md index c3d215f..7e3444e 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -80,3 +80,7 @@ This repository contains personal dotfiles and configurations for a highly produ ### Domain docs Используется схема single-context: корневой `CONTEXT.md` и общие ADR в `docs/adr/`. См. `docs/agents/domain.md`. + +### Handoffs + +Записки для продолжения работы в новой сессии — `.scratch/handoffs/YYYYMMDD-HHMM-.md` (одноразовые, коммитятся, уборка best-effort; скилл `/handoff` пишет сюда).