← ClaudeAtlas

deva-cleanlisted

Disk cleanup for deva container workspaces - reclaim space without touching bind mounts or unpushed work. Use when the user wants disk space reclaimed in a deva workspace, asks to remove stale worktrees, or a disk-full symptom traces into the workspace. Deleting a single known build dir needs no skill - just delete it.
thevibeworks/deva · ★ 10 · AI & Automation · score 72
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