From filesystem-organiser
Use when the user wants to clean up, sort, or restructure a directory tree on the local filesystem, a mounted Google Drive (rclone), or an Android device (ADB). Triggers on phrases like "organise this folder", "sort these files", "clean up the filesystem", "tidy this directory", "sort my downloads", "organize by date/year/month/resolution/aspect ratio", "split this mixed-media folder by type", "remove accidental short clips".
npx claudepluginhub danielrosehill/claude-code-plugins --plugin filesystem-organiserThis skill uses the workspace's default tool permissions.
You reorganise file trees against an explicit operational profile. Always pick (1) a **target** (where the files live) and (2) one or more **modes** (how to organise) before touching anything.
Conducts multi-round deep research on GitHub repos via API and web searches, generating markdown reports with executive summaries, timelines, metrics, and Mermaid diagrams.
Share bugs, ideas, or general feedback.
You reorganise file trees against an explicit operational profile. Always pick (1) a target (where the files live) and (2) one or more modes (how to organise) before touching anything.
Pick the right target adapter and read its guide:
| Target | When | Guide |
|---|---|---|
| Local filesystem | Default. Path is on /home, /mnt, external drive, etc. | targets/local.md |
| Mounted Google Drive | Path is under an rclone mount (e.g. ~/gdrive/). Operations cost API calls; batch them. | targets/gdrive.md |
| Android device | User says "phone", "android", adb, or path looks like /sdcard/.... | targets/android.md |
If the target is ambiguous, ask. Never run mode-specific moves until the target is confirmed.
Modes are composable but ordered. For mixed-media folders, run by-media-type first to split the tree, then run media-specific modes inside each branch.
| Mode | What it does | Guide |
|---|---|---|
cleanup | Snake_case, typo fix, orphan placement, dedupe, empty-folder pruning. Safe baseline. | modes/cleanup.md |
by-date | Hierarchy by creation/EXIF date — YYYY/MM/, YY/MM/DD/, or flat YYMMDD- prefixes. | modes/by-date.md |
by-category | Subject/category/subcategory folders (vision + filename heuristics). | modes/by-category.md |
by-media-type | Split mixed dump into images/, videos/, audio/, docs/, archives/, installers/. | modes/by-media-type.md |
video | Resolution buckets (4k/, 1080p/, 720p/, sd/), aspect-ratio split, prune unintentional sub-3s clips. | modes/video.md |
image | Resolution + aspect-ratio buckets, screenshot vs photo split, burst dedupe. | modes/image.md |
audio | Format/sample-rate buckets, prune sub-2s accidental recordings, voice-memo vs music split. | modes/audio.md |
Default if user is vague: run cleanup only, then propose further modes based on what you saw.
Before any destructive action:
_review/ folder, not the trash.These apply across every mode and target. Don't restate them in mode files.
snake_case, lowercase, no special chars except _ and -.contract_draft_final.pdf), not _1/_2.draft, review, final) over FINAL_v3_REAL_FINAL.DD-MM-YYYY (Daniel's preference) or compact YYMMDD.YYMMDD-.YYYY/MM/ or YY/MM/DD/.~$*)..DS_Store, Thumbs.db, *.tmp, *.bak, empty folders created during this run._review/ at the operation root, don't delete.CON, PRN, AUX, NUL, COM1-9, LPT1-9), trailing spaces/periods, leading hyphens. Keep paths <260 chars.If the tree is already well-organised (consistent naming, logical hierarchy, no orphans, no typos):
Don't force snake_case over an already-consistent convention (e.g. Train-Case repos).
End every run with a summary: counts moved/renamed/deleted, space reclaimed, _review/ items needing user input, and a one-line verdict ("done" / "needs review" / "skipped — already clean").
sha256sum or rclone dedupe (gdrive).ffprobe for video/audio (duration, resolution, codec), identify (ImageMagick) or exiftool for images.exiftool -DateTimeOriginal -s3.mv -n, rclone --dry-run, adb ls before mv).