What happened
A whole-machine cleanup reviewed 11 .work/ items across repos. Eight belonged to PRs that had already merged or issues that had already closed. Nothing in repo-hygiene looks at .work/, so they stay until someone attributes each one by hand.
Proposal
An opt-in mode of /repo-hygiene:clean (off by default) that tidies .work/:
- Inventory every entry under
.work/ (name, size, mtime).
- Attribute each to its PR or issue (from the name, a marker file, or the branch that produced it) and report that PR or issue's state.
- Once the PR merges or the issue closes, delete the entry or consolidate it into a uniform layout (for example
.work/<issue-or-pr>/<artifact>), behind the usual confirmation gate.
- Entries that cannot be attributed are listed and never deleted.
Why opt-in
.work/ is the gitignored place agents put backups and scratch, so an entry may be the only copy of something. The mode has to be requested, list what it would remove first, and leave unattributed entries alone.
Evidence
git grep -F ".work/" origin/main -- plugins/repo-hygiene returns nothing, so the skill has no notion of the directory. The batch forms (#994) cover caches, build output and git only.
What happened
A whole-machine cleanup reviewed 11
.work/items across repos. Eight belonged to PRs that had already merged or issues that had already closed. Nothing in repo-hygiene looks at.work/, so they stay until someone attributes each one by hand.Proposal
An opt-in mode of
/repo-hygiene:clean(off by default) that tidies.work/:.work/(name, size, mtime)..work/<issue-or-pr>/<artifact>), behind the usual confirmation gate.Why opt-in
.work/is the gitignored place agents put backups and scratch, so an entry may be the only copy of something. The mode has to be requested, list what it would remove first, and leave unattributed entries alone.Evidence
git grep -F ".work/" origin/main -- plugins/repo-hygienereturns nothing, so the skill has no notion of the directory. The batch forms (#994) cover caches, build output and git only.