The lab

An undoable file organiser

A daily auto-organiser for a 41 GB shared file tree. Two properties made it worth building rather than scripting: it is idempotent, so running it twice does nothing the second time, and every move is written to a manifest so the whole run can be reversed. Anything it cannot confidently classify, it leaves alone.

Discipline
Platforms & APIs
Year
2026
Stack
Python · Shell · CSV manifests

Anything that moves other people's files automatically has to answer one question before it is allowed to run: what happens when it is wrong.

The answer here is a CSV manifest of every move, which makes a run reversible, and a classifier deliberately biased toward doing nothing — files it cannot place with confidence are logged and left exactly where they are rather than swept into a misc folder that becomes its own problem.

Idempotence falls out of the same design. Running it twice on the same tree is a no-op, which is what lets it run daily on a timer without supervision.

Open to interesting problems

Got something
that needs building?

hello@louisreed.co.uk