Files
clickstream-ch-kafka-supers…/docs/adr/0003-handoffs-in-scratch.md
T
ddadmin 18a55dd640 docs(adr): спеки в docs/specs, handoff'ы в .scratch/handoffs
- Зачем:
  - воркфлоу эволюционировал: design-спекам нужен durable-дом, а handoff'ам —
    стабильное место вместо эфемерного /tmp.
- Что:
  - ADR-0002: design-спеки переезжают в docs/specs/YYYY-MM-DD-*.md (superseding ADR-0001).
  - ADR-0003: handoff'ы — одноразовые леса́ в .scratch/handoffs/, коммитятся, уборка best-effort.
  - ADR-0001 помечен как частично заменённый; AGENTS.md описывает место handoff'ов.
- Проверка:
  - docs/adr/000{1,2,3} согласованы, перекрёстные ссылки рабочие.
2026-06-06 16:12:10 +03:00

2.5 KiB

ADR-0003: Handoff'ы — одноразовые леса́ в .scratch/handoffs/

Принято: 2026-06-06 Статус: accepted

Решение

Handoff (документ «где остановился и как продолжить» для следующей сессии/агента) кладём в .scratch/handoffs/YYYY-MM-DD-<slug>.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.