# ADR-0003: Handoff'ы — одноразовые леса́ в `.scratch/handoffs/` Принято: 2026-06-06 Статус: accepted ## Решение Handoff (документ «где остановился и как продолжить» для следующей сессии/агента) кладём в `.scratch/handoffs/YYYY-MM-DD-.md` и **коммитим**. Это одноразовые леса́, а не след решения: durable-рассуждение живёт в спеке (`docs/specs/`), ADR и истории коммитов, поэтому handoff можно удалять без потери трассы. Уборка — **best-effort** (`git rm`, когда вспомнил или перед важным мержем), без обязательной дисциплины и пост-процессов. ## Контекст Раньше handoff жил в `/tmp` — слишком эфемерно (не переживает ребут/смену машины). Рассматривали гитигнор `.scratch/handoffs/`, но он отпал по двум причинам владельца: разработка **на нескольких машинах** (гитигнор не синхронизируется) и планируемые **git worktrees** (untracked-файл виден только в одном worktree). Оба требования требуют коммита. «Закоммичено на ветке, но автоматически не в master» git без машинерии (CI-гейт) не даёт; засорение `.scratch/` считаем мягким, т.к. это некурируемый «ящик» (читатель туда не ходит — см. ADR-0001). ## Последствия - Carve-out из ADR-0001 «`.scratch/` коммитим целиком»: гитигнор не вводим, но и не обязаны вычищать handoff'ы — они одноразовые. Курируемый скретч (если будет) по-прежнему коммитится. - Расположение зафиксировано в `AGENTS.md`, чтобы скилл `handoff` писал туда. - Решение проекто-зависимое: для строгих/шаренных проектов без мультимашинности допустим opt-in на гитигнор или CI-гейт, блокирующий `.scratch/handoffs/` в PR в master. Здесь — коммит + best-effort.