Tutto.Praxis · talking deck
Praxis: Claude Code, how it is put together

Where Claude
keeps what
it knows.

Three stores, four depths, one folder name. Once you see the pattern, the whole configuration model collapses into a single idea.

1
Tutto.Where we're going
Where we're going

The whole thing on one screen

We build it up one layer at a time. Each picture is the previous picture with one thing added.

What exists

  1. 1Everything is a file
  2. 2One folder, in your home

Where it sits

  1. 3The same folder, in the repo
  2. 4Four depths in total
  3. 5What loads, and when

Why it matters

  1. 6Skills use the same four places
  2. 7Instructions advise, settings enforce
2
Tutto.1 · What exists
Step 1

Everything is a file

There is no memory database and no account-level profile. Three things get called memory, they have different authors, and all three are plain text on your own machine.

YOU WRITE IT CLAUDE.md Standing instructions. The rules of the work, read every session. in the repo, and in your home folder CLAUDE WRITES IT memory/ Auto memory. Notes it saves itself as it works. ~/.claude/projects/<repo>/memory/ THE TOOL WRITES IT *.jsonl Transcripts. The raw log of what was said. ~/.claude/projects/<repo>/ Open them in a text editor. Read them, edit them, delete them. Nothing here is opaque.

Local storage is not the same as local processing. The durable copy stays on the workstation, but when a session loads one of these files its contents go to the API as part of the prompt, exactly like any source file Claude reads.

3
Tutto.2 · What exists
Step 2

They all live in one folder

In your home directory there is a folder called .claude. That is where your version of everything sits: your instructions, your procedures, and the memory Claude keeps per repository.

YOUR HOME FOLDER Just you, on every project C:\Users\you\.claude\ CLAUDE.md Your standing preferences, on every project skills\ Your procedures, available in every repository projects\<repo>\memory\ Auto memory, one folder per repository

One folder per repository under projects\, so every worktree and checkout of the same repo shares one memory. Two developers on the same codebase build separate memories, and neither sees the other's.

4
Tutto.2 · What exists
The same thing, on a real machine

This is what it actually looks like

Not an illustration. A working laptop, with the runtime clutter stripped out.

$ ls -R ~/.claude

~/.claude/
├── CLAUDE.md              your standing preferences
├── projects/              one folder per repository
│   ├── -home-you-Projects-alpha/
│   │   ├── memory/          auto memory lives here
│   │   └── *.jsonl          transcripts
│   └── -home-you-Projects-beta/
├── settings.json          permissions, hooks
└── skills/                your procedures
    ├── agent-guardrails/
    └── designing-evals/

Everything on the previous slide is here. Nothing hidden, nothing you cannot open.

5
Tutto.3 · Where it sits
Step 3

The same folder exists again, in the repository

A second .claude lives in the codebase itself, and it is committed. That is the whole difference between a habit you have and a standard your team has.

YOUR HOME FOLDER Just you, on every project C:\Users\you\.claude\ CLAUDE.md Your preferences THE REPOSITORY Everyone who clones it CLAUDE.md Conventions for this codebase .claude\settings.json Permissions and hooks, pulled by everyone

The nesting is about audience, not disk. A repository is not inside your home folder. It is drawn inside because it reaches fewer people, and that is the variable worth reading off this picture.

6
Tutto.4 · Where it sits
Step 4: if you take one thing away

One folder name, four depths

Two more layers exist, one outside yours and one inside the repository. Four in total, and the only thing separating them is where the folder sits.

THE MACHINE Every user, every repository · IT deploys it C:\Program Files\ClaudeCode\CLAUDE.md YOUR HOME FOLDER Just you, on every project C:\Users\you\.claude\ THE REPOSITORY Everyone who clones it ...\your-codebase\CLAUDE.md YOUR COPY OF IT Just you, just here CLAUDE.local.md · kept out of version control

The instruction files add up rather than replacing each other, read from the outside in.

Key conceptWhere a file sits decides who it applies to. Same folder name, four audiences.

7
Tutto.5 · Where it sits
Step 5

Not all of it loads at once

Some of these files are read at the start of every session and cost you context whether they are relevant or not. The rest sit on disk until Claude reaches for them.

IN CONTEXT FROM THE FIRST WORD CLAUDE.md: all four layers MEMORY.md: first 200 lines .claude/rules/: the unscoped ones Every line here is spent before you type anything. pulled in only when needed ON DISK, WAITING skills/ memory topics path-scoped rules Costs nothing until used.

This is the whole argument for keeping a CLAUDE.md short. A skill contributes only its one-line description until Claude actually uses it, so a long procedure is free until the moment it is needed.

8
Tutto.6 · Why it matters
Step 6

Skills use the same four places

A skill is a folder with a SKILL.md in it: a written procedure. Nothing new to learn about where it goes, because it goes exactly where everything else does.

Managed settings Enterprise · everyone in the organisation ~/.claude/skills/<name>/SKILL.md Personal · all of one person's projects .claude/skills/<name>/SKILL.md Project · anyone who clones the repository <plugin>/skills/<name>/SKILL.md Plugin · namespaced, so it cannot collide Same name in two places? The outer one wins.

Put a procedure in the repository and every developer who clones it has it. Put the same file in your home folder and it helps one person. That choice, and nothing else, is your distribution mechanism.

9
Tutto.7 · Why it matters
Step 7

Instructions advise. Settings enforce.

The distinction that saves the most trouble. Both live in the same four folders, and only one of them is a control.

CONTEXT CLAUDE.md · rules/ Claude reads it and follows it. Specific and short beats vague and long. Coding standards. Conventions. Compliance reminders. CONTROL settings.json · hooks Runs regardless of what Claude decides. Not a suggestion. Block a command or a path. Run a check at a fixed moment.

People reach for the left when they need the right, then wonder why it held nine times out of ten instead of ten. If it has to be impossible rather than discouraged, it is not a written instruction.

10
Tutto.Praxis
The whole thing, in one line

Everything is a file.
Where it sits decides
who it applies to.

Check any of it yourself: /memory lists the files, /context shows what actually loaded, /doctor tells you why something is not taking effect.

tutto.one/praxis · daniel@tutto.one

11
← → or space · F11 fullscreen