agentleFS
localoy-ailocaloy-ai/localstack/file-tidy/SKILL.md

file-tidy

Skill2 starsChanged 41 days agoMITView on GitHub

Proposes clear names and folders for a messy folder, shows the whole plan, and moves files only after the person says yes — every move logged in CHANGELOG.md, nothing ever deleted or overwritten. (localstack)

4 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

5 rules. About 0 are common, 3 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

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

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

    Never deletes: Not duplicates, not empty files, not "obvious junk".

    line 41
  2. Very specific:

    Inside the named folder only: Never touch files outside it, hidden files and folders (.git, .localstack, app data), or anything a program …

    line 49
  3. Distinctive:

    Ask for what is missing in a SINGLE message, then wait.

    line 64
  4. Distinctive:

    5. Move, after the yes: Create folders, move each approved file, never overwriting.

    line 101
  5. Distinctive:

    Every move has a CHANGELOG line and an undo line.

    line 132

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “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

When to invoke this skill

Looks at a folder the person names, proposes a name and a home for every file, shows the plan, and moves only what they approve. Use when asked to "tidy this folder", "organise my files", "rename these". Bloop's skill.

The hard boundary

  • Never deletes. Not duplicates, not empty files, not "obvious junk". Those go in the plan as duplicate of <file> or looks unused for the person to decide; even then this skill moves them to a _review/ folder at most, never removes them.
  • Never overwrites. A target name that exists gets a -2, -3 suffix.
  • Plan first, move after a yes. Nothing moves until the person has seen the plan and said yes — to all of it, to named rows, or "everything except …". A changed plan is shown again.
  • Inside the named folder only. Never touch files outside it, hidden files and folders (.git, .localstack, app data), or anything a program is using (a project with a package.json, .git or similar is moved as one unit or left alone, never split).
  • Read names and metadata, not secrets. Peek inside a file only as far as needed to name it (a PDF's title, an invoice number). Never copy its contents into the plan.

What you need first

  • The folder.
  • How they like it — by year, by client, by type? Default: by type, then year. DESIGN.md ## File rules may already say.
  • Names to keep — anything they want left exactly as it is.

Ask for what is missing in a SINGLE message, then wait.

Procedure

1. Inventory. List every file (path, size, modified date, type). Count them. Spot exact duplicates by size and hash, not by name.

Scratch for this run lives in .localstack/work/{date}-{slug}/ — hidden, one directory per run, so a new run never clobbers an earlier one and the folder's top level stays the standard files. Scratch is disposable; old run directories may be deleted freely.

2. Propose. For each file: a new name (YYYY-MM-DD-<what>-<who>.<ext> unless the person's rule says otherwise — lowercase, hyphens, no spaces) and a folder. Keep the extension. Leave alone what is already well named and placed. Say the rule you used in one line at the top.

3. Write the plan to PLAN-tidy-<folder>.md (slug from the folder name):

# Tidy — <folder path>
Rule: <one line>
Files: N · to move: M · left alone: K · duplicates flagged: D

## Steps
- [ ] plan shown
- [ ] moves approved
- [ ] moved and logged

## Moves
| # | From | To | Why |
|---|---|---|---|

## Flagged (not moved unless you say so)
| From | Flag |

4. Show and ask. Summarise (how many moves, which new folders), point at the plan, and ask: move all, move some (which rows), or change the rule.

5. Move, after the yes. Create folders, move each approved file, never overwriting. After each move check the file is at its new path. A failed move stops the run and is reported.

6. Log every move in CHANGELOG.md under today's date — one line per file, - file-tidy <folder>: moved "<from>" → "<to>" — so any move can be undone by hand. Write the same list as a reversible script to .localstack/work/{date}-tidy-<folder>/undo.sh (moves back, newest first).

Standard files. This folder is kept in files any agent already reads. Update them in place; never scatter output into new folders.

  • AGENTS.md — create it if missing. localstack owns only the block between <!-- localstack:start --> and <!-- localstack:end -->; rewrite that block, never anything outside it. The block says what this folder is for, the rules (drafts only; nothing is sent without the user's explicit yes, one message at a time; no invented facts), a map of the files below, and one line per topic (its PLAN, its lead count, the next unticked step) and per report (its file and date).
  • CHANGELOG.md — create it if missing (# Changelog). Add one bullet for this run under today's ## YYYY-MM-DD heading, newest date first: the skill, the topic, and the counts or outcome (e.g. - lead-search austin-dentists: 18 found, 3 skipped as already contacted).
  • TODOS.md — create it if missing (# TODOs). Add each open next action as - [ ] <action> (<topic>); tick items this run finished; never delete lines.
  • DESIGN.md — decisions meant to last (positioning, tone, channels to use or avoid). Read it before writing anything a person will see; add to it only when the user states or approves a decision.

For this step: tick the plan's own Steps as each is done; the CHANGELOG lines above are this run's record. TODOs: one per flagged duplicate or unused file (- [ ] decide: keep or remove <file> (file-tidy <folder>)).

7. Report. Moved, left alone, flagged, failed — and where the undo script is.

Completion status. End the chat report with one of:

  • DONE — completed, with the evidence named (files written, counts, URLs).
  • DONE_WITH_CONCERNS — completed, and list each concern.
  • BLOCKED — cannot proceed; say what blocked it and what was tried.
  • NEEDS_CONTEXT — missing information; say exactly what is needed.

Quality bar

  • Zero deletions, zero overwrites, zero moves before the yes.
  • Every move has a CHANGELOG line and an undo line.
  • The person can find any file again from the log alone.

Download now (ZIP)

Does it work?

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

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

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.