Claude Cowork · Workspace Architecture

An operating system made of files.

No code, no database. A folder of markdown files gives Cowork persistent memory, a router, your writing voice, and specialized "workstations" — loaded only when needed.

├── CLAUDE.md        ← the router
├── MEMORY.md        ← long-term state
├── 00_Resources/
│   └── voice-principles.md
├── 00_Inbox/
└── Content Creation HQ/
    ├── CLAUDE.md
    ├── MEMORY.md
    └── Resources/
01 · The parts

Click any file to see its job

Each file has exactly one responsibility. Together they behave like an OS: kernel, memory, drivers, and apps.

02 · The flow

Run a session

Pick a task and watch what Cowork actually loads. The point: context is lazy-loaded. Only the files relevant to the task enter the session.

📄 CLAUDE.md root
🧠 MEMORY.md
✍️ voice-principles.md
📥 00_Inbox/
📄 Content HQ / CLAUDE.md
🧠 Content HQ / MEMORY.md
= loaded into context this session
← Pick a task to trace the routing.
03 · The core rule

CLAUDE.md or MEMORY.md?

The whole system hinges on one filing rule. Rules of behavior ("always…", "never…") go to CLAUDE.md. Facts that can change (status, decisions, contacts) go to MEMORY.md. Try sorting these:

04 · If you build agents

It's a multi-agent system in folders

Same architecture you'd write in LangGraph — implemented as markdown instead of Python.

Cowork OS
Agent framework equivalent
root CLAUDE.md
Orchestrator / router node — dispatch logic + global system prompt
Routing Map table
Conditional edges — task intent → which subgraph runs
Workstation CLAUDE.md
Specialized agent — its own system prompt, tools, and workflow
MEMORY.md files
Persistent state store — checkpointed across sessions, scoped per agent
"Read when…" tables
Lazy context loading / RAG — keep the baseline context window small
00_Inbox + don't-guess rule
Human-in-the-loop fallback — unroutable input escalates instead of hallucinating a route