PaperSt.AI

Learn to work with Claude Code.

From zero to shipping — install the software, set it up, and learn to direct an AI that builds real systems. Written for someone who has never opened a terminal. No code experience assumed.

~60–90 min read 9 parts For total beginners You'll ship a live page by the end

Part 00

Start here — how to use this guide

This guide turns you into an operator: someone who can sit down with Claude Code and get real work done for Paper St and its clients. You will not be writing code by hand. You'll be directing an AI that writes the code, the copy, the research — and that can touch tools like Gmail, the CRM, and the website. Your job is to brief it well and check its work hard.

Why we always tell you "why"

Rules you don't understand get misapplied. Every time we ask you to do something, we tell you the reason behind it — so you can use judgment instead of blindly following steps. When the situation is a little different from the example, the why is what tells you the right move.

The color key — read this once

The whole guide is colour-coded so you can scan it fast. Five box types, and you'll see them everywhere:

Why this matters

The reason behind the thing. The most important box in the guide.

Do this

A good habit or the correct move.

Never do this

A hard rule. Breaking it can damage a client, the machine, or trust. These are not suggestions.

Watch out

A common trap or a place beginners get confused.

Try it

A hands-on exercise. Doing beats reading.

You'll also see term chips for vocabulary, monospace code for things you type, and the inverted highlight for the single sharpest idea on a page.

Part 0

Why you're here — the one big idea

What Paper St is, in one breath

Paper St builds the money-making "machine" inside a business, in the owner's name, and the owner keeps it forever. A client has a website, a CRM, ads, spreadsheets, a sales process — usually a tangle that leaks money. Joseph audits the tangle, then uses Claude Code to map it, wire it into one clean system, and improve it over time. The founder's line says it plainly:

The whole company in one lineI draw it. I build it. You own it.

The mission underneath that: the system that grows your business should be yours, not rented from someone who can take it back. Paper St doesn't sell "AI." Joseph's own framing is the north star for how you'll work:

Joseph's positioning"I don't do AI. I use AI to build systems."

What Joseph actually does all day

Strip away the buzzwords and a working day is some mix of these:

  • Audit a business — find where leads, money, and data are leaking.
  • Map the system — draw how the parts should connect (capture → qualify → sell → measure → learn).
  • Build & remake — websites, landing pages, lead forms, dashboards, small tools.
  • Wire data — make "which marketing actually made us money?" answerable.
  • Research — sourced, honest, math-first (never opinion dressed up as fact).
  • Communicate & deliver — emails, reports for the client's CEO, clean handoffs.
  • Keep the paper trail — every decision and finding written down so the next session continues seamlessly.

Claude Code is the tool he does almost all of this with. That's why this guide starts there. Once you can drive Claude Code, you can help with every single item on that list.

The reframe that changes everything

Hold onto thisYou are not learning to code. You are learning to direct an AI — like a skilled contractor you brief, watch, and check.

Think of Claude Code as an extremely fast, extremely literal junior builder who has read everything but has never met your client. It will do exactly what you ask, very well — which means the quality of the result depends on the quality of your brief and the rigour of your check. Three operator jobs follow from that:

  1. Brief well — say the goal, the constraints, and what "done" looks like.
  2. Verify hard — never trust "it works" without seeing the proof yourself.
  3. Hold the line on safety — never let anything reach a client or the public until it's been blessed.

Why this reframe matters

Beginners freeze because they think they need to know how to program. You don't. The people who get great results with Claude Code are clear thinkers and careful checkers, not the best typists. If you can describe what you want and tell whether you got it, you can do this work.

Part 1

The words first — your vocabulary

Why a glossary before anything else

Every term you don't know is a spot where the rest of this guide quietly stops making sense. Skim these now; you don't need to memorise them. Come back when a word trips you. We grouped them so they build on each other.

Group A — the machine you're sitting at

Terminal a.k.a. command line, console
A plain text window where you type commands instead of clicking buttons. Why: it's how powerful tools (including Claude Code) are run. Looks intimidating, is just a text box.
CLI
"Command-Line Interface" — any program you run by typing into the terminal. Why: Claude Code is a CLI. So is the deploy tool you'll use.
Shell / Bash
The program inside the terminal that reads your commands. Bash is the most common one. Why: when we say "run this in bash," we mean type it in the terminal.
Linux
A free operating system that most servers and developer tools run on. Why: Claude Code and its tools are happiest on Linux.
WSL2 Windows only
"Windows Subsystem for Linux" — runs a real Linux inside Windows. Why: it lets a Windows laptop run the Linux tools without a second computer. This is exactly how Joseph's machine is set up.

Group B — Claude & Claude Code

Claude
The AI model itself (made by Anthropic). The "brain." Why: it's what reads, reasons, writes, and decides.
Claude Code
The CLI app that lets Claude actually do things on your computer — read/write files, run commands, edit a website, send a draft email. Why: a chat window can only talk; Claude Code can act. That's the whole difference.
Prompt
What you type to Claude — your instruction or question. Why: the prompt is your brief. Better prompt, better result.
Session
One continuous conversation with Claude Code, from when you start it to when you close it. Why: work is organised per session; you "open" and "close" them with rituals you'll learn in Part 5.
Context
Everything Claude can "see" right now — your messages, files it has read, results it got back. Why: Claude only knows what's in its context. If it didn't read a file, it doesn't know what's in it.
Model
A specific version of Claude (e.g. Opus, Sonnet, Haiku). Bigger = smarter + slower; smaller = faster + cheaper. Why: you match the model to the job.
Agent / Subagent
A helper Claude that the main Claude spins up to do one focused task (e.g. "go search these 200 files"). Several can run at once. Why: they let big jobs run in parallel — but there's a hard cap (see Part 5) because too many crash the machine.
MCP
"Model Context Protocol" — the standard plug that lets Claude Code talk to outside services (Gmail, the CRM, the website host, calendars). Why: MCP is the reason you can say "draft this email" or "read this CRM record" and Claude can actually do it.

Group C — the code & version world

Repo repository
A folder of files that's tracked over time. Why: every project lives in a repo so every change is recorded and reversible.
Git
The system that records every change to a repo — a time machine + undo button + history log. Why: if something breaks, you can see exactly what changed and roll back.
Commit
A saved snapshot of your changes, with a short note describing them. Why: commits are the save points. Clear notes = a readable history.
Push
Uploading your commits to the shared online copy (e.g. GitHub). Why: until you push, your work only exists on your laptop.
Branch · main · trunk
A branch is a parallel line of work. main (the "trunk") is the official line. Why: the Paper St brain repo is "trunk-only" — you work on main and push at the end. Client websites use side branches so nothing risky touches the live site.
Worktree
A second copy of a repo checked out to a different branch at the same time. Why: lets two streams of work run without colliding. You'll rarely need this early on.

Group D — the Paper St system

The brain repo
Paper St's single knowledge base: rules, playbooks, client records, the log, session notes. (Folder name: paperst-os.) Why: it's the company's memory. It is not a website — it never gets "deployed."
Playbook
A written, vetted procedure for a recurring task (build a site, run a security check, deploy safely). Why: playbooks are the standard operating procedure, not suggestions. You read the relevant one before you start.
Gate
A mechanical quality checkpoint that blocks shipping until the work passes. Why: gates are never "I think it's fine." They're checks that fail loudly on a real defect, so bad work can't slip out. The eye-gate is the human-look version: a person blesses how it actually looks before it ships.
Memory
Per-project notes Claude Code keeps between sessions — rules, lessons, live status. Why: so Claude doesn't relearn the project every time. An index file points to detail files.
The LEDGER
The one file where the status of every live thread + a log of every session lives. Why: you read it first each session to know where things stand.
Build-to-HOLD
Do all the safe, reversible work (build it, test it, stage it) but stop short of the irreversible step (send, merge, deploy) until Joseph says go. Why: it's the core safety posture — finish everything that can't hurt anyone, hold the one thing that can.
Deploy
Publishing a website or change to the live internet. Why: the highest-consequence action you can take. It's real, public, and immediate. Treated with the most care of anything in this guide.
Preview
A live-but-unlisted copy at a temporary URL, for checking before the real thing goes public. Why: it lets you see the real page live without touching the client's actual site.
If you remember threeClaude Code acts.   Gates block bad work.   Build-to-HOLD holds the risky step.

Part 2

The mental model — how the pieces fit

Before installing anything, picture the whole flow. Here's what actually happens when you work, drawn the way Paper St draws systems — as a console map:

   YOU              CLAUDE CODE                THE WORLD                    SHIP
 (operator)         (the doer)            (what it can touch)

 [ BRIEF ] ───▶ [ CLAUDE reads,  ] ──▶ [ files · git · website ]
                [ reasons, acts  ]     [ Gmail · CRM · analytics ]
                       │               [ calendars · the web     ]
                       ▼                          │
                [ shows its work ] ◀──────────────┘
                       │
                       ▼
 [ VERIFY ] ◀── [ you check the proof ]
     │
     ▼  (passes the gates?)
 [ HOLD ] ──────▶ Joseph blesses ──────▶ ┃ LIVE ┃

Read it left to right: you brief → Claude does the work and touches real tools → it shows you the result → you verify → if it passes the gates it goes to HOLD → Joseph gives the final go → it goes live. Everything in this guide is teaching you to run one lap of that loop well.

The terminal, for someone who's never used one

Open the terminal and you'll see something like a blinking cursor after a bit of text (the "prompt"). You type a command, press Enter, it runs, it prints a result. That's the entire idea. Three commands you'll use constantly:

# where am I right now?
pwd

# what files are in this folder?
ls

# go into a folder named "paperst-os"
cd paperst-os

Try it — your first 30-second win

If you already have a terminal open (Mac/Linux) or want to peek ahead, type pwd and press Enter, then ls and Enter. That's it — you just ran two commands. The terminal printed where you are and what's around you. Nothing exploded. That's the feeling to keep: a command is just a sentence you type and run.

Why a terminal instead of a nice app with buttons

Buttons can only do what someone built a button for. The terminal can run any tool and combine them. Claude Code lives here because it needs that full reach — to read your files, run programs, and chain steps together. You'll mostly just type claude and then talk in plain English. The scary part is 90% just "type the command we give you and press Enter."

WSL2 — Linux living inside Windows

Developer tools assume Linux. Rather than buy a Linux computer, Windows can run a real Linux inside itself — that's WSL2. You open it like an app; inside, you're in Linux. Your Windows files are still reachable (under a /mnt/c/ path), and your Linux project files live in the Linux home folder.

Watch out — two worlds, one machine

Your computer ends up with two "homes": a Windows username and a separate Linux username (you create the Linux one during install). When a path starts with /mnt/c/ it's a Windows file; when it starts with /home/ it's a Linux file. Keep your real work on the Linux side; the Windows Desktop is only a place to look at a copy, never the real copy.

Why a CLI and not a chat website

You may have used Claude in a browser. That's great for talking. Claude Code is different: it can open and change the actual files on your computer, run real commands, and reach real tools. That power is the whole point — and it's also why the safety rules in Part 5 exist.

Part 3

Install it — step by step

Why we install in this exact order

Each tool depends on the one before it. WSL2 gives you Linux. Linux lets you install Node. Node powers the deploy tool. Claude Code ties it together. Do them in order and nothing fights.

Before you start — pre-flight

You need Windows 10 or 11, an administrator account, and ~10 GB free disk. On a Mac or Linux machine you skip Step 1 (you already have a terminal) and start at Step 2. Install commands change over time — when in doubt, the official docs win: code.claude.com/docs.

First — how to read a command (so nothing is a mystery)

The install lines below use a few symbols. Once you know them, no command is scary:

  • curl — downloads a file from the internet.
  • | (the "pipe") — takes what the last command produced and feeds it into the next one.
  • bash — runs a script.
  • npm — Node's "app store"; installs developer tools.
  • -g — "global": install it for the whole machine, not just one project.

So curl … | bash means "download this and run it," and npm install -g X means "install tool X for the whole machine." That's the whole vocabulary of this part.

Step 1 Install WSL2 (Windows only)

Open PowerShell as Administrator (right-click the Start button → "Terminal (Admin)" or "PowerShell (Admin)"), then run:

wsl --install

Restart when it asks. After reboot, an Ubuntu window opens and asks you to create a Linux username and password — write these down. From now on, "the terminal" means this Ubuntu/WSL window, not PowerShell.

Why

This one command installs Linux-inside-Windows. Everything else gets installed into this Linux, keeping it cleanly separated from Windows.

Step 2 Install Node (via NVM)

In the Ubuntu/WSL terminal, install NVM (Node Version Manager), then use it to install Node:

# grab the installer from the official NVM project
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash

# close and reopen the terminal, then install Node 22
nvm install 22
nvm use 22

Why Node?

Node is the engine that runs a lot of web tooling, including the deploy tool (wrangler) you'll meet in Step 4. NVM lets you pick the exact Node version (Joseph runs version 22) and switch later without a mess.

Watch out — two common snags

(1) The exact NVM install line has a version in it that changes — if the command fails, copy the current one from github.com/nvm-sh/nvm. (2) If you reopen the terminal and nvm says "command not found," run source ~/.bashrc once and try again. Both are normal first-time friction, not errors.

Step 3 Install Claude Code

The official install page is code.claude.com/docs — always check it for the current command. As of this writing the two standard ways are:

# Option A — the one-line installer (what Joseph's machine uses)
curl -fsSL https://claude.ai/install.sh | bash

# Option B — via Node's package manager (npm)
npm install -g @anthropic-ai/claude-code

Then start it and log in:

claude

The first run walks you through signing in with your Anthropic / Claude account in the browser. After that, typing claude in any project folder starts a session.

Why two options?

Both install the same Claude Code app. Option A is the one-line installer that's on Joseph's machine; Option B uses npm if you already manage tools with Node. Either gives you an identical, working claude. Just pick one — don't run both.

Step 4 Install wrangler (the deploy tool)

Wrangler is Cloudflare's command-line tool. It's how a finished web page goes live. Install it with Node's package manager, then log in:

npm install -g wrangler
wrangler login

wrangler login opens a browser to connect your Cloudflare account. Once connected, a single command can publish a folder of files to a real URL (you'll do exactly this in Part 5).

Why Cloudflare?

It's where Paper St hosts sites and previews. One command — wrangler pages deploy — takes a folder and puts it live on the internet in seconds. This very guide was published with that exact command.

Step 5 The memory guard (advanced — reference only)

This step is specific to Joseph's setup and you will not type any of it on a normal machine with plenty of memory. But you should understand why it exists, because it explains some of the safety rules later.

Joseph's laptop has limited memory. In June 2026, running too many Claude processes at once ballooned memory and froze the whole machine, losing work. The fix: a "fence" that caps how much memory all Claude processes can use combined, so instead of crashing, a heavy session just slows down.

See the actual fence (reference only — you won't type this)

Two pieces work together. A system limit file — technically a Linux "control group" (cgroup) — named claude.slice, with example values:

# ~/.config/systemd/user/claude.slice
MemoryHigh=6G      # soft cap: slows down past here
MemoryMax=7500M    # hard wall
MemorySwapMax=1G

And a wrapper in the shell profile so every time you type claude, it runs inside that fence automatically:

claude() {
  systemd-run --user --scope --slice=claude.slice -q -- \
    "$HOME/.local/bin/claude" "$@"
}

Never "fix" memory with NODE_OPTIONS

A common bad tip is to add NODE_OPTIONS --max-old-space-size=…. On Claude Code's app this does nothing — it's a no-op. The real lever is the fence above, plus the agent cap in Part 5.

Verify everything installed

Run these. Each should print a version or a path, not "command not found":

which claude && claude --version     # e.g. 2.1.186 (Claude Code)
which node   && node --version       # e.g. v22.22.0
which wrangler && wrangler --version  # e.g. 4.92.0

Do this

If any line says "command not found," reopen the terminal first (installers often need a fresh window), then redo that step. Don't move on until all three print a version.

If something goes wrong (the 4 most common snags)
  • "How do I re-open the Linux terminal tomorrow?" — Open the Start menu and type Ubuntu, or open any terminal and type wsl. That puts you back in Linux.
  • wsl --install fails or errors. — Usually means virtualization is off or Windows is out of date. Run Windows Update, and (on some machines) enable "Virtual Machine Platform" in "Turn Windows features on or off." Then retry.
  • nvm: command not found after installing it. — Run source ~/.bashrc once, or fully close and reopen the terminal. NVM only "wakes up" in a fresh shell.
  • claude or wrangler says "command not found" right after install. — Same fix: close and reopen the terminal so it picks up the newly-installed tool.

Still stuck? Open a Claude session (once it's installed) and paste the exact error — describing the error to Claude is itself a great first troubleshooting move.

Part 4

Set it up — config, memory & tools

Installed isn't the same as configured. This part is the difference between "Claude Code runs" and "Claude Code knows how Paper St works and can touch the right tools."

The ~/.claude folder — Claude's home base

When you install Claude Code it creates a hidden folder, ~/.claude (the ~ means "your home folder"). The pieces that matter:

WhatWhereWhat it does
Global rules~/.claude/CLAUDE.mdInstructions that apply to every project.
Settings~/.claude/settings.jsonTheme, default effort level, enabled plugins.
Per-project memory~/.claude/projects/<project>/memory/Notes Claude keeps for one project.
Plugins / skills~/.claude/plugins/Add-on capabilities (e.g. the Cloudflare tools).

Two kinds of CLAUDE.md — the most useful thing to understand

There are two rule files and knowing the difference saves a lot of confusion:

  • Global (~/.claude/CLAUDE.md): rules for you, everywhere — e.g. "be terse," "honest math first," "max 4 helper agents."
  • Project (a CLAUDE.md file inside a repo): rules for that project — e.g. "this repo is trunk-only, push at session end."

Why two files

Some rules are about how you like to work (those go global). Others are about a specific codebase (those live with the code, so anyone who opens that repo gets them). Claude reads both automatically at the start of a session.

The memory system — why Claude doesn't forget

A fresh AI starts every conversation blank. That would mean re-explaining the whole project daily. Memory fixes that. It works as an index plus detail files:

  • MEMORY.md is the index file that lives inside the memory folder — one line per memory, with a link. It's loaded every session.
  • Each memory is its own small file with the actual detail (a rule, a lesson, a client fact).
  • It's kept tidy and small on purpose, and synced so it survives across sessions.

Do this when you learn something

When Claude (or you) discovers a lesson worth keeping — "this client's 'deal amount' means premium, not revenue" — it gets written to memory so next time nobody relearns it the hard way. That habit is a big part of what makes the work compound.

MCP — how Claude touches Gmail, the CRM, the website

MCP is the plug-in system that connects Claude Code to outside services. You set a service up once; after that, Claude can use it by name. On Joseph's machine these are wired up:

Connected via MCPSo Claude can…
Gmailread threads, draft emails (never auto-send)
HubSpot (CRM)read & query customer/deal records
Azure DevOpsread client code, open draft change-requests
Monday.comread operational boards
Amplituderead product/funnel analytics
Cloudflaremanage hosting / deploys
Google Drive / Calendar, Calendly, Canva, Vercelfiles, scheduling, design, hosting

You connect a service either through the Claude app's integrations screen or with a small config file (.mcp.json) in a project. You don't need to memorise how — just know that "MCP" is the answer to "how can Claude send an email or read the CRM?"

The rule that rides on MCP

MCP gives Claude real reach into real client systems. So the hard rule: client systems are READ-ONLY unless Joseph gives a specific yes for a specific action. Reading is fine. Writing, sending, deploying, or merging into anything a client owns needs an explicit go — every time. More on this in Part 5.

Part 5

Your first session — the actual workflow

This is the part you'll live in every day. A session has a start ritual, the work, and an end ritual. Follow the rhythm and you'll never lose your place.

Starting a session

# go into the project folder, then start Claude
cd ~/paperst-os
claude

Then, before asking for anything, have Claude (or yourself) read the lay of the land:

  1. Read TODO.md — the single backlog: what needs doing.
  2. Read LEDGER.md — where every live thread stands + the session log.
  3. Open the relevant playbook for the task you're about to do.

Why read first

You're stepping into ongoing work. The TODO, LEDGER, and playbooks are how a session "wakes up" with full awareness instead of guessing. Skipping this is how you redo work that was already done, or break a rule you didn't know existed.

How to brief Claude well

A good brief has three parts. Compare:

Weak brief

"Make the homepage better."

Strong brief

"Goal: the homepage hero should make our offer clear in 5 seconds on a phone. Constraints: keep the existing logo and colours, don't touch the contact form. Done looks like: a phone-width screenshot where the headline + button are visible without scrolling, and a human blesses how it looks (the eye-gate)."

Why goal + constraints + "done"

Claude is fast and literal. Without a goal it guesses; without constraints it changes things you didn't want touched; without a clear "done" it can't tell you (or itself) when it's finished. The three-part brief removes all three failure modes.

And let Claude push back. Joseph wants the AI (and you) to behave like an advisor, not a yes-machine — to challenge a weak plan, flag a risk, and ask the question that changes the approach. If something seems off, say so.

Watching it work

Claude will narrate what it's doing and ask permission before risky actions (editing files, running commands). You'll see it read files, make edits, run commands, and report back. You can interrupt any time. For bigger jobs you can ask it to plan first and show the plan before doing anything.

The gates & build-to-HOLD

Nothing client-facing ships on "looks fine to me." It passes gates — mechanical checks (does the content match? does it work on a phone? is it accessible?). And one gate is not mechanical:

The rule that humbles every toolMechanical-green is not the same as good. A page can pass every automated check and still look amateur — so a human eye blesses the look before it ships.

Once it passes, you build-to-HOLD: stage it, preview it, get it fully ready — and stop before the irreversible step. Joseph gives the final go.

The hard safety rules — memorise these

Never break these

  • Never deploy to a client's live website. The most-live thing you touch is a preview URL. The client controls when their real site changes.
  • Never send, commit-to-shared, merge, or deploy without a specific yes. "Draft this" is not "send this." Build it, then hold it.
  • Never put passwords, tokens, or secrets into a repo — and if you spot one, flag it immediately, don't paste its value.
  • Never run more than 4 helper agents at once (3 is the default). More can crash the machine. (Remember Part 3's memory guard.)
  • Run one command at a time on this machine — don't fire several at once. Same reason: stability.
  • Know where you are before you edit, commit, or deploy. Check which folder and which branch you're on first. A deploy from the wrong place once silently reverted a live site.

Why these are absolute

Every one of these came from a real incident that cost time, money, or trust. They're not bureaucracy — they're scar tissue. On safe, reversible work you should move fast and not ask permission for every little thing. These rules mark the few places where the cost of a mistake is high enough that you always stop and confirm.

Ending a session

  1. Commit your work with a clear note (stage the specific files you changed — never blindly "add everything").
  2. Push so it's saved to the shared copy.
  3. Write a short handoff — what you did, what's next, any decision waiting on Joseph — so the next session starts informed.
  4. Update memory with any lesson worth keeping.

Your first real ship — do it now

Try it — publish a page in 3 minutes

This is the whole loop in miniature. Do it inside a Claude session (so Claude handles any prompts for you). Ask Claude:

"Make a folder called hello-site with one index.html
that says 'Hello from [your name]' as a big heading,
then deploy it with wrangler pages deploy and give me the URL."

Claude will create the file and run wrangler pages deploy hello-site.

What you'll see the first time

On a brand-new Cloudflare account the very first deploy asks you to create a project — just accept the suggested name and pick "production." (Inside a Claude session, Claude answers these for you.) Then it prints a real *.pages.dev URL.

Open the URL on your phone. You just shipped a live page — the exact tool and step this guide was published with. When you're done, clean up: ask Claude to "delete the hello-site Pages project" (or run wrangler pages project delete hello-site). Don't leave test projects live.

Part 6

How real work flows — a real engagement

Why a worked example

The steps above are the mechanics. This shows the shape of a real job — how a messy client problem becomes organised work. You'll see the patterns you'll repeat on every engagement. (Specific client names, numbers, and findings live inside the repo, behind access — not on a public page like this one.)

The messy starting point

A real client — a long-established insurance brokerage — came to Paper St with a tangle that's typical:

  • They couldn't answer "which marketing actually made us money?" — the tracking data was blank or garbled on most sales.
  • Their online quote tool was slow, and sometimes the checkout silently broke — customers ready to buy got stuck.
  • Their operations lived in well over a hundred disconnected spreadsheets, with the same information re-typed across half a dozen systems.

A beginner's instinct is to "fix the website." That would miss most of the problem. Here's what Paper St did instead.

The move: decompose into tracks

Rather than one giant project, the work was split into parallel tracks, each with a clear owner-question, the right tool, and its own living source-of-truth document:

 ONE MESSY ENGAGEMENT
        │
        ├─▶ [ ATTRIBUTION ]  which marketing made sales?   → CRM + analytics
        ├─▶ [ SPEED      ]  why is checkout slow/broken?   → client code (read)
        ├─▶ [ SITE REMAKE]  rebuild the funnel pages       → preview URLs
        ├─▶ [ CRM WIRING ]  make the data answerable       → CRM
        └─▶ [ OPS UNIFY  ]  link the scattered boards      → ops board (read)

   every track ──▶ a living doc ──▶ findings (sourced) ──▶ ┃ HOLD ┃

Why tracks beat one big project

Tracks let you make progress on the easy, safe pieces immediately while the hard pieces get figured out — and each track can be checked and delivered on its own. "Boil the ocean" projects stall; tracked work ships in pieces.

One tool per track — the right reach for the job

This is MCP in action. Each track touched a different real system, all through Claude Code:

TrackToolWhat Claude did
AttributionCRM + analyticsread records, measured the funnel leak, found the blind spots
Speedclient code (read-only)traced the actual cause of the slow/broken checkout in their code
Site remakepreview URLsrebuilt funnel pages, gated them, shipped to a preview — never the live site
CRM wiringCRMmapped the data, designed the fix to make sales answerable
Ops unifyops board (read-only)mapped every board, found where the same data got re-typed

The discipline that kept it safe

  • Read-only on everything the client owns. No live changes were made; findings and fixes were prepared and held.
  • All comms routed through one person. The client's tech lead was the single point of contact — you don't scatter messages across a client's team.
  • Verify the value to the wire. A code fix that looks correct can be dead in practice if a later step quietly drops the value. So every fix was traced all the way to where the data actually lands, then confirmed in live data.
  • No dollar promises. No "this will make you $X" until it could be honestly measured after going live.
  • Everything to HOLD. Rebuilt pages, code fixes, reports, notes — all finished and ready, none applied. The client decides when to flip the switch.
The pattern you'll repeatmessy problem → break into tracks → right tool per track → sourced findings → build-to-HOLD → client controls the apply.

What to take from this

You don't need to be the expert who knows insurance, or the engineer who knows their code. You need to decompose, point the right tool at each piece, document what you find with sources, and hold the risky steps. That's an operator. Claude supplies the expertise; you supply the structure and the judgment.

Part 7

The Paper St way — the non-negotiables

Tools are learnable in a week. This part is the harder, more valuable thing: how Paper St thinks. Get these and you'll make calls Joseph would make even when he's not in the room.

1. Transparency first, sales second — always

Every problem gets solved with honest math — real hours, real costs, a named margin — before any persuasive framing goes on top. Source every number. When you're unsure, say you're unsure ("estimated at," "this would likely," "depending on X"). Never state a guess as a fact.

Banned

Anchor pricing ("agencies charge $X so we're a deal"). Made-up authority ("industry standard is…") with no source. Quoting a guess as a fact. These collapse the moment a client says "show me the math" — and Joseph's whole positioning is that the math holds up.

Why

Honesty is the brand. "I use AI to build systems" only earns trust if the numbers behind it are real. One inflated claim, caught, costs more than it ever made.

2. Advisor-CEO posture

You're not a robot operator. Challenge weak scope. Surface a risk nobody named. Show the thing early. Say when it's not good enough. When you take a call, state it, defend it with reasoning, offer a fallback, and ask the question that unblocks the next step.

Why

A yes-machine ships Joseph's blind spots straight to the client. A challenge catches them while they're still cheap to fix.

3. Proof standard

Decide what "passing" means before you build (so you can't move the goalposts later), and verify it independently after (a fresh check, not the builder grading their own homework).

Why

If you set the bar after seeing the result, you'll unconsciously set it wherever your work happens to land. Defining "passing" first keeps you honest.

4. Build-to-HOLD

Do everything that's safe and reversible — thoroughly, without stopping to ask permission for each small step. Hold back only the few irreversible things: sends, merges, deploys, and decisions that are Joseph's to make.

The balance

Joseph dislikes bureaucracy. On reversible work: act, don't ask. On irreversible/client-facing work: stop and confirm. Knowing which is which is most of the job.

5. First-principles channel check

Before diving into a task, step back: What's the actual end goal? Why are we doing this particular step? Is there an easier, faster, higher-leverage path? A playbook is a means, not the goal. If a better route is sitting in plain sight, say so before you spend a day on the slow one.

Why

The slow path can quietly cost a week when a faster one was sitting in plain sight. Surfacing it costs one sentence — that trade is always worth making.

The floor under everythingHonest math · show your work · hold the risky step · the human blesses the look · the goal > the playbook.

Part 8

Get going — practice, cheat sheet & when you're stuck

The practice ladder

Don't try to do everything at once. Climb these in order — each builds the muscle for the next:

  1. Just talk. Start a session, ask Claude to explain this very guide back to you, and to define any term you're unsure of. Get comfortable with the back-and-forth.
  2. Read the lay of the land. Have Claude read the TODO and LEDGER and summarise, in plain English, what's currently in flight.
  3. Build & ship a toy. Do the "Hello" page from Part 5 and put it live on a preview URL. Then take it down.
  4. Remake something small with a brief. Pick a simple page, write the three-part brief (goal / constraints / done), and have Claude build it to a preview. Eyeball it on a phone.
  5. Do a real task to HOLD. Take one real TODO item, do it fully, stop at the irreversible step, and write the handoff. Bring it to Joseph as "done and held, ready for your go."

One-screen cheat sheet

Need to…Do this
Start workingcd into the project, type claude
Know where things standread TODO.md, then LEDGER.md, then the playbook
Brief a taskstate goal + constraints + what "done" looks like
Publish a pagewrangler pages deploy <folder> → preview URL
Check where you arewhich folder (pwd), which branch, clean or not
End a sessioncommit (specific files) → push → write handoff → update memory

The six lines you never cross

  • No deploy to a client's live site.
  • No send / merge / deploy without a specific yes.
  • No secrets in a repo (flag them, don't paste them).
  • No more than 4 helper agents at once.
  • One command at a time on this machine.
  • Know your folder + branch before edit / commit / deploy.

When you're stuck

  • Ask Claude first. "I don't understand X — explain it like I'm new." It's a patient teacher. Genuinely.
  • Look before asking a human. Search the repo / the LEDGER / the playbooks. The answer is often already written down.
  • When you do ask Joseph, ask sharp. Bring 2–4 questions that would actually change the plan — not "is this okay?" but "I see two paths, A trades speed for X, B trades cost for Y — which do you want?" An empty question list beats a padded one.
The mindsetYou don't need to know everything. You need to brief clearly, check carefully, and hold the risky step. Do that, and Claude Code makes you dangerous in the best way.

Your first move after this guide

Open a terminal. Type claude. Ask it: "I just finished the Operator Field Guide. Walk me through reading the TODO and LEDGER, and give me one small task I could do to HOLD." Then go.