deva-cleanlisted
Install: claude install-skill thevibeworks/deva
# deva-clean: mount-safe workspace disk cleanup
A deva workspace mixes two kinds of directories that look identical in
ls: bind mounts declared in `.deva` (live host repos) and local dirs
created during work (git worktrees, node_modules, package stores).
rm -rf on the wrong one destroys a live repo on the host. And because
the workspace root is itself a host mount, local dirs still consume
host disk - usually the disk that is actually full.
Two passes. Pass one is deterministic and scripted; pass two executes
only what got approved.
## Pass one: triage
Run the bundled script - read-only, emits the tiered plan, never
deletes:
scripts/triage.sh [workspace] [--fetch]
It maps mounts from /proc/mounts (ground truth - .deva drifts), shows
which disk is under pressure, walks the non-mount dirs, gives every
candidate four verdicts (type, dirty, pushed, freshness), and finds
stale worktree metadata in the mounted parent repos. Verdict semantics
live in the script header; two encode traps worth knowing:
- The pushed test is live ls-remote SHA comparison plus ancestry in
the default branch - never upstream config. A branch created off
origin/develop shows "ahead 1" while never pushed itself.
- MERGED is monotonic, provable even against stale refs. Absence is
not: a branch absent on remote with stale refs is UNVERIFIED, not
safe. Rerun with --fetch for a definitive verdict.
Then layer the judgment the script refuses to automate:
- Pressure: container overlay genuinel