agentleFS
POSTTTTPOSTTTT/SKILLs/.claude/skills/tidy/SKILL.md

tidy

Skill1 starsChanged 5 months agoMITView on GitHub

Clean up and organize a project's file structure — group loose files into logical folders (images/, scripts/, styles/, etc.), remove empty directories, and delete genuinely unnecessary files. Use when the user asks to "clean up the project", "organize the files", "tidy the directory", "sort these into folders", "remove empty folders", or "get rid of junk files". Always understands the project and updates references BEFORE moving anything, never deletes load-bearing files, and gets approval before changing the file tree.

  • Reads credentials

We split this skill into the rules it gives an agent

14 rules. 0 are common, 10 are distinctive, and 4 are very specific to this project.

  • 0

    Common

    Most of the 19 edited versions we read keep these.

  • 10

    Distinctive

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Read build/config files (package.json, bundler config, framework config) — they often hardcode paths and dictate where files must live.

    line 22
  2. Very specific:

    Check what's tracked vs untracked (git status) so you don't reorganize generated output (dist/, node_modules/) — those belong in …

    line 26
  3. Distinctive:

    Don't bury them in subfolders.

    line 49
  4. Distinctive:

    Don't invent deep nesting for a tiny project.

    line 50
  5. Distinctive:

    When you move a file, you MUST update everything that points to it, or you break the project.

    line 57
  6. Very specific:

    Update them to the new path: HTML <img src>/<link href>/<script src>, CSS url(...)/@import, JS/TS imports, and any config/string paths.

    line 61
  7. Distinctive:

    After moving, verify nothing dangles: re-grep for the old paths.

    line 65
  8. Very specific:

    Only then: treat it as a deletion candidate.

    line 95
  9. Distinctive:

    When in doubt, list it as "suspected unnecessary — confirm?" rather than deleting.

    line 99
  10. Distinctive:

    If a build/test was available, state that it still passes.

    line 106
  11. Distinctive:

    Plan and get approval before changing the tree: No surprise moves/deletes.

    line 110
  12. Distinctive:

    Use git mv / git rm for tracked files so history and staging stay correct.

    line 114
  13. Distinctive:

    Don't reorganize generated/dependency dirs — gitignore them instead.

    line 115
  14. Distinctive:

    Prefer the project's existing conventions over imposing a new structure.

    line 116

“Common” is measured: kept by at least 6 in 10 of the 19 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Project Tidy — Organize, Don't Break

Make a messy project clean and easy to manage without breaking it. Moving or deleting files can silently break a build, a page, or an import. So the rule is: understand first, plan, get approval, then execute — and update every reference.

This skill can move and delete files. Treat that power carefully. When unsure whether something is safe to move or delete, leave it and ask.

Step 1 — Understand the project

Before touching anything:

  • Map the current tree (git ls-files, directory listing). Identify the project type (static site, Node app, Python package, etc.) and its entry points (index.html, main.py, src/index.js, etc.).
  • Read build/config files (package.json, bundler config, framework config) — they often hardcode paths and dictate where files must live.
  • Understand how files reference each other: HTML src/href, CSS url() and @import, JS/TS import/require, asset paths in code, config path strings.
  • Check what's tracked vs untracked (git status) so you don't reorganize generated output (dist/, node_modules/) — those belong in .gitignore, not in folders.

Step 2 — Plan the reorganization (don't execute yet)

Propose a clean structure based on what you found. Typical pattern for a flat web project with loose files:

before/                      after/
  index.html                   index.html          ← entry stays at root
  about.html                   about.html
  style.css                    styles/style.css
  main.js                      scripts/main.js
  logo.png                     images/logo.png
  photo1.jpg ... photo20.jpg   images/photo1.jpg ...

Guidelines:

  • Group by role: styles/, scripts/ (or js/), images/ (or assets/), fonts/, docs/. Follow any convention the project already uses.
  • Keep entry points and required-root files where they belong — index.html, package.json, README, LICENSE, .gitignore, CI configs, framework configs. Don't bury them in subfolders.
  • Don't invent deep nesting for a tiny project. Clean ≠ over-engineered.

Show the user the proposed before→after tree and the list of deletions before doing it. Get approval. This is a file-tree change — confirm first.

Step 3 — Move files AND fix every reference

When you move a file, you MUST update everything that points to it, or you break the project. For each moved file:

  • Find all references (grep the codebase for the old path/filename).
  • Update them to the new path: HTML <img src>/<link href>/<script src>, CSS url(...)/@import, JS/TS imports, and any config/string paths.
  • Move with git mv when tracked (preserves history) rather than plain mv.

After moving, verify nothing dangles: re-grep for the old paths; if the project builds or has tests, run them to confirm it still works.

Step 4 — Remove empty directories

Empty directories are clutter — remove them. But first check they're truly disposable:

  • A dir kept intentionally usually has a .gitkeep/.keep marker — that signals "keep this empty dir." Don't delete those (or confirm with the user).
  • Some tooling/frameworks expect certain dirs to exist even when empty. If a dir is referenced in config or is a known framework path, leave it.

Step 5 — Delete unnecessary files (carefully)

The user wants junk gone — but an empty or tiny file is not automatically junk. Some tools create load-bearing files on purpose. Before deleting ANY file, even an empty one:

  1. Confirm it's not referenced anywhere (grep imports/paths/config).
  2. Confirm it's not a known "load-bearing even when empty" file. Never delete these just because they look empty:
    • __init__.py (Python — makes a package importable)
    • .gitkeep / .keep (intentionally preserves a dir)
    • py.typed (marks a typed Python package)
    • index.js / index.ts / mod.rs / __init__ barrels (module entry points)
    • .gitignore, .npmignore, .dockerignore, .editorconfig, .nvmrc
    • package.json, lockfiles, go.mod, Cargo.toml, manifests
    • .env.example, config stubs, robots.txt, favicon.ico, .htaccess
    • CI/workflow files, Dockerfile, Makefile
  3. Only then treat it as a deletion candidate. Genuinely safe candidates: editor/OS cruft (.DS_Store, Thumbs.db, *.swp), stray temp files (*.tmp, *.bak, *~), duplicate/leftover files the user confirms.

When in doubt, list it as "suspected unnecessary — confirm?" rather than deleting. It is always better to leave a harmless file than to delete a load-bearing one.

Step 6 — Report

Summarize what changed: files moved (old → new), references updated, empty dirs removed, files deleted, and anything you deliberately left alone with the reason. If a build/test was available, state that it still passes.

Rules

  • Plan and get approval before changing the tree. No surprise moves/deletes.
  • Update references whenever you move a file — a move without fixing paths is a bug, not a cleanup.
  • Never delete a load-bearing file, even if empty. When unsure, keep and ask.
  • Use git mv / git rm for tracked files so history and staging stay correct.
  • Don't reorganize generated/dependency dirs — gitignore them instead.
  • Prefer the project's existing conventions over imposing a new structure.

Download now (ZIP)

  • Other versions23 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 23

    1. croffasia/itsaplan★ 2.1ksame name
    2. mblode/agent-skills★ 177same name
    3. collectifweb/claude-skills★ 4same name
    4. crimx/skills★ 4same name
    5. wyattjoh/skills★ 3same name
    6. agentmemoir/skills★ 2same name
    7. jxxsteven7/zotero-librarian★ 2same name
    8. smkg75/wikidoc★ 2same name
    9. angusfretwell/skills★ 1same name
    10. davidsolheim/skills★ 1same name

    13 more not listed

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • Used alongsideProjects with it also use map, retro and 2 more.

    Other files people use alongside this one.

    Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
    • AWSSkill

      map

      Map verified service capabilities against customer-provided control framework and threat model. Produces mapping-results.json, controls-catalog.md, and framework-mapping.md. Supports pluggable frameworks: CCMv4, NIST 800-53, CIS Benchmarks, ISO 27001, etc. Split into 4 focused sub-skills for better accuracy; this skill orchestrates them.

      Also in 3 projects that use this

    • AWSSkill

      retro

      Conduct a retrospective on a coding session.

      Also in 3 projects that use this

    • AWSSkill

      ship

      Finalize dev work on an issue branch — update docs, push, and open a PR.

      Also in 3 projects that use this

    • Microsoft AzureSkill

      verify

      End-to-end app testing pipeline for browser-based web apps on cloud browsers via Azure Playwright Workspaces: verify the live app, author tests for working flows, heal failing tests, then re-run with video and produce one consolidated report. Three phases (app verification, test authoring, test healing) plus a scoped final sanity run; each phase emits a sub-report. Use when asked to "verify my app", "make sure my app works and has good test coverage", "do a full QA pass", "add tests where I'm missing coverage", "fix failing tests and add new ones", "smoke test before deploy", "QA my deployment", or any combined verify-and-test ask. Requires Azure CLI (`az login`) and a Playwright Workspace resource ID — bootstraps configs on first invocation. Browser-based web apps with Playwright only — not for unit/API tests, native mobile/desktop, load/perf, or full accessibility audits.

      Also in 3 projects that use this

  • In this repository6 other files it gives its agents.

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.