Create a File Organization Skill for Claude Desktop
TL;DR: When Claude works across many sessions, files multiply fast, and the default outcome is a desktop full of
report.md,report-final.md, andreport-final-2.mdthat no search can untangle. A file organization skill fixes this at the source by giving Claude three non-negotiable rules. Naming: every file starts with addmmyyhhmmtimestamp and av###version, so names sort chronologically and are unique by construction. Routing: a small table maps every file type to one numbered destination folder, and nothing is ever saved loose to the desktop root. Versioning: revisions never overwrite, they incrementv001tov002with the original timestamp preserved, so history survives by default. The skill is one SKILL.md with the pattern, the routing table, and a save-time checklist; the full template, folder tree, and edge-case rules are below.
A file organization skill is a Claude skill that controls three things every time Claude saves anything: what the file is called, which folder it lands in, and how new versions are created. Mine enforces a ddmmyyhhmm_v### naming prefix, a numbered folder routing table, and a never-overwrite versioning rule, and this guide shows you how to build the same system in about twenty minutes.
Why give Claude a file organization skill?
Because Claude saves files constantly and every unnamed decision becomes your cleanup job later. A file organization skill moves those decisions out of each session and into one place, so every output lands predictably named, predictably located, and impossible to overwrite.
The three rules do the work:
| Rule | Pattern | What it guarantees |
|---|---|---|
| Naming | ddmmyyhhmm_v###_description.ext |
Unique, sortable, searchable names |
| Routing | numbered folder table | Everything has exactly one home |
| Versioning | increment v###, never overwrite |
History survives every revision |
A concrete name under this scheme: 1306261430_v001_blog_draft.md is a blog draft created on 13 June 2026 at 14:30, first version. Type 1306 into search and you get everything from that day; type _v0 and you get every versioned file.
How do you create the skill step by step?
Define the naming pattern, write the routing table, encode the versioning rules, then wrap all three in one SKILL.md with a save-time checklist. Here is the build.
Step 1: Create the folder structure the skill will route into
mkdir -p ~/Documents/claude/{01_projects,02_clients,03_content,04_exports,05_archive}
~/Documents/claude/
01_projects/ # build artefacts, specs, pipelines
02_clients/ # client deliverables
03_content/ # drafts, posts, documentation
04_exports/ # spreadsheets, PDFs, packaged zips
05_archive/ # anything untouched for 30+ days
Numbered prefixes keep the folders in a fixed order in every file manager and make the routing table unambiguous.
Step 2: Write the SKILL.md
---
name: file-organization
description: File naming, routing, and versioning rules. Trigger EVERY time a file is saved, exported, moved, or created, and on questions like "where should this go" or "I cannot find the file". Never save a loose file to the desktop root.
---
# File Organization
## Naming
Every file: ddmmyyhhmm_v###_short_description.ext
- ddmmyyhhmm = creation date and time, e.g. 1306261430
- v### = version, starts at v001
- description = lowercase, underscores, 2 to 5 words
## Routing
| File type | Destination |
| --- | --- |
| Specs, pipelines, build outputs | 01_projects/<project>/ |
| Client deliverables | 02_clients/<client>/ |
| Drafts, posts, docs | 03_content/<site>/ |
| Spreadsheets, PDFs, zips | 04_exports/ |
| Untouched 30+ days | 05_archive/ |
## Versioning
- Never overwrite. New revision = same timestamp, v+1.
- Never use "final", "new", "latest", or "copy" in names.
- Three versions in one session? Keep all three.
## Save-time checklist
1. Correct prefix and version?
2. Routed per the table, not to desktop root?
3. Revision incremented rather than overwritten?
Step 3: Encode the edge cases
Real usage finds the gaps, so the skill should answer the common ones explicitly: renames keep the original timestamp because the timestamp records creation, not modification; files that belong to two categories go to the more specific one (client beats content); and bulk imports of legacy files get renamed only on first edit, not pre-emptively.
Step 4: Package and install
zip -r file-organization.skill file-organization
Install the .skill file in Cowork, or bundle it into a plugin with its natural companions; the packaging steps are in my pillar on building a Claude plugin from scratch. Then make it unmissable by loading it from your session bootstrap, the pattern described in the Cowork navigator skill guide, so it is active before the first file of any session is saved.
Step 5: Test with a messy session
Give Claude a deliberately vague instruction such as "save me a summary of this" and check the result: the file should appear under 03_content/ with a full ddmmyyhhmm_v001 prefix without you specifying anything. Then ask for a revision and confirm you get v002 alongside v001, not a silent overwrite.
What makes the ddmmyyhhmm_v### pattern work so well?
It makes every filename carry its own metadata, which turns any search box into a time machine. Chronological sorting is automatic because the name leads with the date; collisions are nearly impossible because two files would need the same minute and version; and version order is explicit instead of guessed from "final-2".
The deeper payoff arrives at scale. Once hundreds of files follow the pattern, automation becomes trivial: an archive sweep is one find command on the timestamp prefix, a project export is a glob, and the token budget skill can locate the latest version of anything without listing whole directories. Pipelines that produce many artefacts per run, like my 21-agent product pipeline, depend on exactly this predictability.
Frequently asked questions
Why ddmmyyhhmm instead of an ISO date like YYYY-MM-DD?
Either works if you are consistent; the skill exists to enforce one choice. I use ddmmyyhhmm because it is compact, minute-precise, and fast to type into a search box. If you prefer ISO ordering, change one line in the SKILL.md and keep every other rule.
Does the skill rename files I created before adopting it?
Not automatically, and it should not: mass renames break links and history. The rule I encode is rename-on-first-touch, so legacy files adopt the convention the first time Claude edits them.
How do versions interact with Git repositories?
Inside a Git repo, Git is the version system, so the skill defers: code keeps normal names and the v### rule applies only to exported artefacts and documents outside version control. Encode that exception in the SKILL.md to avoid v### suffixes leaking into source trees.
What stops Claude ignoring the rules mid-session?
The trigger description and the save-time checklist. Because the description fires on every save-like action, the rules re-enter context exactly when needed; the three-line checklist gives Claude a concrete final check before any write.
About the author
Yanni Papoutsis builds AI products, automation pipelines, and technical documentation with Claude, and publishes free tooling and guides at yanni.uk.
Next step: Load this skill automatically every session via the Cowork navigator, and explore 1,000+ free AI tools at yanni.uk/category/all/.
Sources
- Claude documentation (skills): https://docs.claude.com
- Anthropic: https://www.anthropic.com
- Model Context Protocol: https://modelcontextprotocol.io