C.W.K.
Stream
Lesson 01 of 04 · published

Collections: Organize the View, Not the Truth

~12 min · collections, meta-overlay, non-destructive, separation

Level 0Blank Page
0 XP0/35 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"Reorganizing your files should never be able to lose your files. Loomis makes that impossible by never moving them."

Sessions Stay Put; the Overlay Moves

Every analysis session's files sit in one place on disk and never move. Organization lives in a completely separate layer: a collections.json meta-overlay that describes how those sessions are arranged — which folders, nested how, in what order. When you drag a session into a folder, you edit the overlay; the session's actual files don't budge. The thing you rearrange and the thing that holds your work are deliberately different objects, so no amount of reorganizing can ever misplace a byte.

System Folders and Stable Ids

The overlay is anchored by a few immutable type-root system folders plus a Trash, and every folder carries a stable id that survives every write. Stability matters more than it sounds: because ids don't change when you reorganize, everything that references a folder — roll-up counts, smart-album queries, saved views — keeps working across any amount of shuffling. An organization layer whose ids churned would quietly break every reference into it; keeping them stable is what lets the overlay be reshaped freely without collateral damage.

Organization Is Not Deletion

Here is the safety property that matters most. Moving a session to Trash does not delete anything — Trash is just another folder in the overlay, and landing there is as non-destructive as landing anywhere else. Files leave the disk only through one deliberately guarded path: an armed Empty on the Trash folder, a two-step action you have to consciously arm. Organizing and deleting are kept firmly apart, so the everyday act of tidying can never be the act that loses work. You have to really mean it to remove anything.

The Same Pattern, One Level Up

You've seen this shape already. In the fitting stage, the detection was frozen and corrections were a layer on top; here the sessions are frozen and the collection is a layer on top. It's the family's oldest move applied to organization: the files are the truth, the overlay is a derived view. Delete collections.json entirely and you'd lose your folder arrangement but not a single session — the truth is untouched and the view is rebuildable. Once you recognize 'immutable source, derived view' at the fit level, the collection level, and cwkPippa's logs, you're seeing one idea wearing three coats.

Code

Sessions are the truth; collections is an overlay over them·python
# Session files are the TRUTH on disk -- never moved by organizing.
#   sessions/<sid>/...          <- the work itself, immutable to organization
#   collections.json            <- the OVERLAY: folders, nesting, order, ids

collections = load("collections.json")
collections.move(session_id, to_folder="portraits/2026")  # edits the OVERLAY only
# The session's files on disk did NOT move. Only the view changed.

# Trash is just another folder -- moving there is still non-destructive:
collections.move(session_id, to_folder="TRASH")           # still only the overlay

# Files leave disk ONLY through one deliberately armed path:
if trash.empty_is_armed:                                  # a two-step, guarded act
    delete_session_files(trash.contents)                  # the sole byte-removing path

External links

Exercise

Audit an organization system you rely on — project files, a notes app, a photo library. Ask two questions: does reorganizing (moving, renaming, refoldering) ever risk losing the underlying data, and is deletion clearly separated from organizing and guarded behind a deliberate step? For any place the answer is 'risky,' sketch how you'd turn it into an overlay over an untouched source.
Hint
The danger sign is any system where the folder structure IS the storage — where moving a file can lose it, or where 'organize' and 'delete' are one careless click apart. The fix mirrors Loomis: keep the source in one stable place, describe the arrangement in a separate overlay, and make deletion a distinct, armed action. Then tidying can never be destroying.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.