skills/houseclean/SKILL.md
Cross-drive storage audit and cleanup. Surveys all drives, finds orphaned git worktrees, large AI tool caches (.ollama, .gemini, .cursor, npm, pip), and buildable artifacts (node_modules, .venv). Produces a prioritized action plan with specific migration commands. Use when disk space is low or worktrees need cleanup; do NOT use for project structure issues (use /organize instead).
npx skillsauth add SethGammon/Citadel housecleanInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use when disk space is low, AI tool caches are bloated, or worktrees need cleanup.
Do NOT use for project structure issues (use /organize) or pre-merge worktree review (use /merge-review).
Use when: cross-drive storage audit -- finds orphaned repos, stale branches, and large directories across all drives. Don't use when: auditing project infrastructure only (use /infra-audit); cleaning a specific directory (use Bash directly).
/houseclean # Full audit — all phases
/houseclean --quick # Drive survey + quick wins only (no deep scan)
/houseclean --worktrees # Orphaned worktree audit only
/houseclean --ai-tools # AI tool cache audit only
/houseclean --projects # Project artifact scan only (node_modules, .venv, etc.)
/houseclean --migrate X # Migration instructions for a specific tool (ollama, gemini, npm, cursor)
Windows (PowerShell):
Get-PSDrive -PSProvider FileSystem | Select-Object Name, Used, Free, Root | Format-Table -AutoSize
Present as a table with Drive, Total, Used, Free, Label columns.
Thresholds: C: free < 5 GB → CRITICAL. C: free < 20 GB → WARNING. Store which drives have free space — these are migration targets.
Windows (PowerShell):
Get-ChildItem "C:\Users\$env:USERNAME" -Directory -ErrorAction SilentlyContinue |
ForEach-Object {
$s = (Get-ChildItem $_.FullName -Recurse -ErrorAction SilentlyContinue |
Measure-Object -Property Length -Sum).Sum
[PSCustomObject]@{ GB = [math]::Round($s/1GB,2); Path = $_.Name }
} | Sort-Object GB -Descending | Select-Object -First 15 | Format-Table -AutoSize
Tag each entry:
.ollama, .gemini, .cursor, .windsurf, .codex, .continue.vscode, .idea, AppData\Local\JetBrainsAppData\Local\npm-cache, AppData\Local\pip\cache, .gradle, .m2.claude\projectsDesktop, Documents, user project directoriesAppData\Local\Microsoft, AppData\Roaminggit rev-parse --show-toplevel
git worktree list
For each worktree (excluding main):
git branch --merged HEAD | grep "{branch-name}"git -C "{worktree-path}" status --shortClassify:
Auto-remove SAFE TO REMOVE and STALE:
git worktree remove "{path}" --force
git branch -d "{branch-name}"
Report what was removed. Ask before touching REVIEW FIRST or ACTIVE.
Check these paths (Windows). Report any > 500 MB:
~/.ollama/models → Ollama LLM models
~/.gemini/antigravity → Gemini CLI data/cache
~/.cursor → Cursor editor
~/.windsurf → Windsurf editor
~/.codex → Codex CLI
~/.continue → Continue.dev extension
~/.cache/huggingface → HuggingFace model cache
AppData/Local/npm-cache → npm package cache
AppData/Local/pip/cache → pip package cache
AppData/Local/Temp → Windows temp files
Tag recommended action:
Scan C: for rebuildable artifacts: node_modules, .venv, __pycache__, .pytest_cache, dist/, build/. Report path, size, last modified. Flag items not modified in > 30 days. Ask user before deleting any.
=== QUICK WINS (safe to act on now) ===
1. npm-cache 5.7 GB CLEAR npm cache clean --force
2. Merged worktrees (17) 50 MB REMOVED (already done)
=== MOVE TO ANOTHER DRIVE ===
3. ~/.ollama/models 15.8 GB MOVE→F: See migration guide
4. ~/.gemini 10.2 GB MOVE→F: See migration guide
=== REVIEW WITH USER ===
5. ~/.claude/projects 3.1 GB REVIEW Old conversation history
Total recoverable on C: ~47 GB
Get-Process ollama -ErrorAction SilentlyContinue | Stop-Process
robocopy "C:\Users\$env:USERNAME\.ollama" "F:\.ollama" /E /MOVE /LOG:ollama-move.log
[Environment]::SetEnvironmentVariable("OLLAMA_MODELS", "F:\.ollama\models", "User")
Check if GEMINI_HOME is supported: gemini --help | grep -i "home\|data\|dir"
If supported:
robocopy "C:\Users\$env:USERNAME\.gemini" "F:\.gemini" /E /MOVE
[Environment]::SetEnvironmentVariable("GEMINI_HOME", "F:\.gemini", "User")
If not supported, create a junction:
robocopy "C:\Users\$env:USERNAME\.gemini" "F:\.gemini" /E /MOVE
cmd /c mklink /J "C:\Users\$env:USERNAME\.gemini" "F:\.gemini"
npm cache clean --force
npm config set cache "F:/npm-cache"
robocopy "C:\Users\$env:USERNAME\.cursor" "F:\.cursor" /E /MOVE
cmd /c mklink /J "C:\Users\$env:USERNAME\.cursor" "F:\.cursor"
Move the main repo to another drive:
robocopy "C:\Users\$env:USERNAME\Desktop\ProjectName" "F:\Projects\ProjectName" /E /MOVE
After moving, record in .claude/harness.json:
{ "storage": { "projects_root": "F:/Projects" } }
.claude/projects)Cannot be relocated. Archive inactive subdirectories to a backup drive, or test symlinking.
macOS/Linux: Use du -sh, df -h. Paths shift to ~/.
Worktree removed but branch exists: git branch -d {branch} after git worktree remove.
Ollama in use: Stop before moving model files.
Junction already exists: cmd /c rmdir "C:\...\tool-dir" (no contents deleted), then recreate.
No other drives: Clear caches first (npm, pip, temp), then rebuildable artifacts, then unused Ollama models.
After running /houseclean, update .claude/harness.json storage section with projects_root, ai_tools paths, and last_audit date. Future runs verify migrations are still in place.
Disclosure: "Auditing all drives. Will present deletion suggestions — nothing deleted without your confirmation." Reversibility: amber — deletes files and directories if user confirms; undo requires git or manual recovery for non-git files Trust gates:
storage section for any migrations completed---HANDOFF---
- Freed: {X} GB (caches cleared, worktrees removed)
- Pending user action: {Y} GB (AI tools to move, projects to migrate)
- C: free space now: {Z} GB
- harness.json storage section: updated / not updated
- Reversibility: amber — deleted files require git or manual recovery; moved files can be moved back manually
---
development
First-run experience for the harness. Three modes: Recommended (guided, ~3 min), Full Tour (guided + skill walkthrough, ~8 min), and Express (zero questions, ~30 sec). Installs hooks first, detects stack, configures harness.json, runs a live demo on real code, and prints a reference card.
development
Knowledge compiler. Extracts patterns, decisions, and anti-patterns from completed campaigns and evolve cycles, then compiles them into structured wiki pages that integrate with existing knowledge rather than appending isolated files. Implements flush→compile→lint pipeline. Auto-triggered by /postmortem and /evolve Phase 6.
tools
Unified router that auto-routes user intent to the right orchestrator or skill. Classifies input by scope, complexity, persistence needs, and parallelism, then dispatches to the cheapest path that can handle it: direct command, skill, marshal, archon, or fleet. Single entry point for all work.
data-ai
Real-time harness observability dashboard. Reads campaigns, fleet sessions, telemetry, and pending queues to present a snapshot of harness state at a glance. Invoked by /dashboard, /do status, or phrases like "what's happening" and "show activity".