scratch-cleanup
Scratch Cleanup
.scratch/ is an inbox, not an archive. Everything in it ends one of three ways: filed (research that belongs in docs/), removed (an effort whose work is all done), or kept (work still open, listed in the report). Nothing changes on disk until the user approves the plan.
The stale threshold is $ARGUMENTS days; 30 when empty.
1. Inventory
Read the tracker layout from .agents/issue-tracker.md (fallback docs/agents/issue-tracker.md, then setup/issue-tracker.md in this collection) and the status vocabulary from the matching triage-labels.md. Then walk .scratch/ and put every file in exactly one bucket:
- Effort: a
.scratch/<slug>/directory holding a map, spec, decisions, tickets, or triage request files. Older efforts may use anissues/folder instead oftickets/; treat it as tickets. - Research: findings files, by default under
.scratch/research/, or any file whose body is a cited findings report ending in What this unblocks. - Unclassified: everything else (wizards, loose notes, questionnaires outside an effort).
.DS_Storefiles are junk: they go in the plan as deletions with no question.
For every file, record whether git tracks it (git ls-files --error-unmatch <path>) and its last change date (git log -1 --format=%cs -- <path>, or the file mtime when untracked).
Done when every file under .scratch/ has a bucket, a tracked/untracked flag, and a date.