5.2 KiB
Raw Blame History

name, description
name description
harness-retro Ретро обвязки claude-harness по транскриптам, памяти и репозиториям одного проекта или workspace — срез метрик, разметка блокировок хуков в корпус, хвосты закрытия, поправки владельца, черновик docs/retro/<дата>.md и PR. Запускать в сессии в репозитории обвязки по команде «/harness-retro <папка> [--since ГГГГ-ММ-ДД]» после среза.

/harness-retro

Аргумент — папка проекта или workspace, который изучаем. Сессия — в репозитории обвязки, роль dev. Дата ретро <D> — сегодня, ГГГГ-ММ-ДД. Скрипты — docs/retro/scripts/, все команды — из корня worktree ретро. Спека — openspec/specs/harness-retro/spec.md.

Шаги

  1. Задача и worktree. Issue «Ретро : <проект>» (tea issues create). Затем EnterWorktree с именем retro-<D>, ветка git branch -m retro/<D>, codegraph init в worktree.
  2. Срез. Выполнить python3 docs/retro/scripts/retro_metrics.py <папка> [--since …] --out docs/retro/<D>.metrics.json.
    • Exit 1 — сессий нет. Сообщить владельцу slug и период и остановиться.
    • Битых строк больше 1 % — отметить в «Что не измерялось».
  3. Блокировки. Сначала выгрузить: python3 docs/retro/scripts/hook_blocks_export.py --since <since> --id-prefix <D> <каталоги из sources.dirs> > docs/retro/fixtures/hook-blocks-<D>.jsonl. Каталоги — ~/.claude/projects/<имя>.
    • Разметить каждую запись в docs/retro/fixtures/hook-labels-<D>.json:
      • expected (allow|block) и why по спеке hook-guards;
      • раскладку песочницы — по gitBranch сессий и выводу git worktree list и git branch в транскриптах;
      • если не восстановить — skip с причиной.
    • Собрать корпус: python3 docs/retro/scripts/hook_cases_build.py > skills/harness-doctor/fixtures/hook-cases.jsonl и прогнать bash tests/run.sh hook-corpus. Если текущий хук даёт не тот вердикт — проставить записи "known": "RT-n" и завести находку.
    • Пересчитать срез с --labels docs/retro/fixtures/hook-labels-<D>.json --out docs/retro/<D>.metrics.json.
  4. Хвосты закрытия. python3 docs/retro/scripts/retro_leftovers.py <папка> --fetch --markdown. Ничего не удалять: таблица идёт в черновик, уборка — по решению владельца.
  5. Поправки владельца. python3 docs/retro/scripts/retro_metrics.py <папка> [--since …] --corrections.
    • Отобрать только поправки по процессу: пропущенный шаг, лишний вопрос, неверный совет, обход правила, расширение задачи. Вопросы и просьбы по содержанию выбросить.
    • Сгруппировать по видам.
    • Вид, который повторяется (2 раза и больше) или стоил владельцу заметного времени, — находка RT-n и пункт бэклога.
  6. Качественная часть. Прочитать память проекта целиком (~/.claude/projects/<slug>/memory/) и примеры из выгрузок. Находки RT-n — сквозная нумерация: максимум в прошлых docs/retro/*.md плюс 1. Приоритет: P1 — теряет время каждую неделю или ломает процесс; P2 — трение; P3 — наблюдение.
  7. Черновик. Скопировать .claude/skills/harness-retro/template.md в docs/retro/<D>.md и заполнить.
    • «Цифры»: python3 docs/retro/scripts/retro_metrics.py <папка> [--since …] --labels … --markdown --prev docs/retro/<прошлое>.metrics.json.
    • Секретов в черновике быть не должно. Цитаты брать только из вывода скриптов: он уже прошёл redact.
  8. PR. bash tests/run.sh должен быть зелёным. Коммит: черновик, metrics.json, выгрузка, разметка, корпус. Затем git push -u origin retro/<D> и tea pulls create со ссылкой на issue. Merge — только владелец.

Не делать

  • Не удалять хвосты и не чинить хуки в PR ретро — это находки и бэклог.
  • Не заполнять раздел «Решения владельца»: он пишется на ревью PR.
  • Не вставлять в черновик сырые куски транскриптов мимо скриптов.