Nbidea Editions  ·  04

The Seeing Machine

To Do Things Right, First You Need Love, Then Technique.
How Non-Engineers Build Real Products with AI
By Pollyanna
v1.0-260404 · English
Contents
  1. 00Prologue — The Eye and the Machine
  2. Part I
    The Eye
  3. 01You Are Not Learning to Code
  4. 02The Three Layers
  5. 03CLAUDE.md Is Not a Config File
  6. Part II
    The Hand
  7. 04Day Zero — From Nothing to Running
  8. 05The Five Modes of Working
  9. 06How to Talk to Your Machine
  10. 07Git Without Fear
  11. Part III
    The Workshop
  12. 08Building Your First Real Product
  13. 09The Memory System
  14. 10Extensions — Skills, Hooks, MCP
  15. 11The AI Team
  16. Part IV
    The Philosophy
  17. 12Restraint as Power
  18. Epilogue — The Apple Is Still Falling
  19. About the Author

PROLOGUE

The Eye and the Machine

You do not need to learn to code.

I need to say this at the beginning because everything else depends on it. The entire industry — the bootcamps, the tutorials, the "learn Python in 30 days" grifters — has been telling you the opposite. They say: the future belongs to people who can code. I say: the future belongs to people who can see.

Seeing is harder than coding. It always has been. The world is full of competent engineers who cannot tell you what to build. They can implement anything you describe, but they cannot describe what matters. They have hands but no eyes. And for the entire history of software, this was fine, because hands were scarce. You needed the hands. You waited for the hands. You wrote specifications and project requirements and user stories and handed them to the hands and waited weeks and months and got back something that was technically correct and spiritually wrong, and you started over.

That era is ending.

In 2025, a tool called Claude Code appeared. It runs in your terminal — or your browser, or a desktop app — and it writes code. Not snippets. Not autocomplete suggestions. Entire applications. You describe what you want. It builds it. It reads your files, understands your project, runs commands, fixes its own errors, commits to git, deploys to the internet. It is not perfect. It makes mistakes. But it iterates faster than any human engineer, and it never gets tired, and it never says "that's not in the sprint."

This changed the equation. For the first time in the history of technology, the bottleneck is not the hand. The bottleneck is the eye.

The eye is product judgment. It is knowing what to build and what not to build. It is looking at a screen and feeling — before any metric confirms it — that something is right or something is wrong. It is taste. It is the ability to say "this matters" and "this doesn't" in a world that presents everything with equal urgency. The eye is what separates a product from a project, a company from a hobby, a thing people use from a thing people politely ignore.

You have the eye. You've always had it. You've been trapped not by lack of vision but by lack of execution. You knew what the product should feel like. You knew what the user needed. You could see it. You just couldn't build it.

Now you can.

This book is not a tutorial. There are tutorials everywhere — official documentation, YouTube videos, blog posts, the other book that is currently number one on the charts. They will teach you which buttons to press. This book will teach you how to think. How to see clearly enough that the machine understands what you want. How to build a relationship with an AI collaborator that compounds over time. How to ship real products — not demos, not prototypes, real things that real people use — without writing a single line of code yourself.

I am not an engineer. I am a founder. I build products with Claude Code every day — an AI translation tool, a customer feedback analyzer, an internal dashboard, an entire company's software stack. I have never written a function from scratch. I have never debugged a stack trace by reading it myself. What I do is see what the product should be, and tell the machine, and verify that the machine got it right, and correct it when it didn't.

This is not a lesser form of building. This is what building has always been. The architect does not lay bricks. The film director does not operate the camera. The conductor does not play every instrument. They see the whole, and they direct the parts, and the result is greater than any individual contribution.

You are about to become that kind of builder.

Two warnings before we begin.

First: this book has opinions. Strong ones. I will tell you what works and what doesn't, based on shipping real products with real users. I will not hedge. If I say something is wrong, I mean it is wrong. If I say something is essential, I mean you should not skip it. You can disagree with me. But you should try my way first.

Second: this book has a philosophy. I believe that the most powerful thing you can do with an AI is not control it. I believe that restraint is a form of creation — that the best results come from setting clear conditions and then stepping back. I believe that over-specifying kills the thing you're trying to build. I believe that a good CLAUDE.md file is worth more than a good prompt. I will explain all of this. But I wanted you to know the worldview upfront, because it shapes everything that follows.

Let's build something.



PART I: THE EYE



Chapter 1

You Are Not Learning to Code

The first thing every guide to AI coding tools gets wrong is the framing. They say: "AI makes coding easier." They say: "Now anyone can learn to program." They say: "Claude Code is like having a senior engineer sitting next to you."

All wrong.

You are not learning to code. You are not getting a tutor. You are not becoming a junior developer with AI training wheels. You are doing something fundamentally different: you are learning to direct.

Directing is not a reduced version of coding. It is a different skill entirely, the way conducting an orchestra is not a reduced version of playing the violin. A conductor who plays mediocre violin is not a mediocre conductor. A director who cannot act is not a lesser filmmaker. The skills are orthogonal. They use different muscles. And the muscle you need — the one that AI coding tools reward above all others — is judgment.

Judgment is knowing what to build. Not how. What.

Here is a test. Two people sit down with Claude Code. Person A is a software engineer with ten years of experience. Person B is a product manager who has never written a line of code. They both want to build the same thing: a tool that takes meeting transcripts and extracts action items.

Person A opens Claude Code and types: "Create a Node.js application using Express with a POST endpoint at /api/extract that accepts a JSON body with a 'transcript' field, processes it using the Anthropic API with a system prompt optimized for action item extraction, and returns structured JSON with an array of action items each containing 'assignee', 'task', and 'deadline' fields."

Person B opens Claude Code and types: "I run a lot of meetings and I always forget what we agreed to do. I want a tool where I paste a meeting transcript and it gives me a clean list of who needs to do what by when. Make it simple — I should be able to use it on my phone."

Person A gave better technical instructions. Person B gave a better product specification.

Guess whose product will be better?

Person B's. Every time. Because Person B described the problem and the experience. Person A described an implementation. Claude Code can generate implementations all day. What it cannot do is decide which problem is worth solving, or how the solution should feel to a human being who uses it. That is your job. That is the eye.

The eye sees the problem. The machine builds the solution.

This is the division of labor that matters. Not "I think, AI types" — that's too simple. It's: I judge what matters, I describe what good looks like, I verify that the result matches my vision, and I correct course when it doesn't. The machine handles everything between the description and the verification.

And the reason this works — the reason a non-engineer can direct an AI to build software — is that the hard part of software was never the typing. The hard part was always the seeing. Knowing what the user actually needs (not what they say they need). Knowing which feature to build first. Knowing when something is done. Knowing when to cut scope. Knowing the difference between "technically correct" and "right."

Engineers know this. The best engineers spend more time understanding the problem than writing the solution. The code is the easy part. The thinking is the hard part. AI just made the easy part instant, which means the hard part — your part — is all that's left.

So stop thinking about learning to code. Start thinking about learning to see.

Here is what seeing looks like in practice:

Seeing the user. Not in the abstract "user persona" sense that product management textbooks teach. Actually seeing them. Watching someone use your product and noticing the moment they hesitate. Noticing what they skip. Noticing what they screenshot and send to a friend. Noticing what makes them leave.

Seeing the gap. Every product exists to close a gap between how things are and how they should be. The eye identifies that gap with precision. Not "meetings are unproductive" — that's too vague. "I leave every meeting without knowing exactly what I agreed to do, and two days later someone asks me about a commitment I forgot" — that's a gap you can build for.

Seeing the shape. Before a single line of code, the product has a shape in your mind. How many screens? What's on each one? What does the user do first? What happens when something goes wrong? This shape is not a wireframe. It's a feeling. The machine will turn that feeling into pixels, but the feeling has to exist first.

Seeing the wrong. When the machine builds something and it's not right, you need to be able to say why it's not right. Not "it looks bad" — that's useless feedback. "The action items are buried below three screens of summary, but the whole point is to see them immediately" — that's direction. That's the eye correcting the hand.

The rest of this book will teach you how to channel your seeing into something a machine can act on. But the seeing itself — that's yours. You brought it. The machine can't learn it from you, and you can't learn it from the machine.

You are not learning to code. You are learning to see out loud.



Chapter 2

The Three Layers

When you use Claude Code, three things are happening at once. Understanding these three layers — and knowing which one to invest your time in — is the difference between someone who uses AI and someone who builds with AI.

Layer 1: The Prompt

This is what you type. The instruction, the question, the request. "Build me a landing page." "Fix the login bug." "Add dark mode."

Most people think this is all there is. They spend their energy crafting the perfect prompt — adding details, rephrasing, trying different words to get better output. The prompt engineering industry has made millions selling this idea: that the magic is in how you ask.

It's not. The prompt is the least important layer.

Don't misunderstand — bad prompts produce bad results. If you say "make it nice" instead of "the card component needs more padding on mobile, and the text should be left-aligned instead of centered," you'll get garbage. Specificity matters. But once you're specific enough, additional prompt optimization has rapidly diminishing returns.

Think of it this way: a prompt is a single instruction. It's ephemeral. It lives for one exchange and then it's gone. You can't compound a prompt. You can't build on it over time. Every conversation starts from zero if the prompt is all you have.

Layer 2: The Context

This is what the AI knows before you say anything. It's the information that's already loaded when the conversation begins.

In Claude Code, context comes from several sources:

Context is dramatically more powerful than prompts, because context persists. It compounds. A CLAUDE.md file you write today will improve every conversation you have tomorrow. A pattern you establish in your codebase will be followed by Claude automatically. Context is the investment that keeps paying dividends.

Here's a concrete example. Say you're building a web app and you want all your API responses to follow the same format: { data: ..., error: null, meta: { timestamp, requestId } }.

With prompts only, you'd need to remind Claude every single time: "Remember, use the standard response format with data, error, and meta fields." Eventually you'll forget. Claude will use a different format. Things will break.

With context, you write it once in your CLAUDE.md:

## API Response Format
All API endpoints must return: { data, error, meta: { timestamp, requestId } }
Never deviate from this format. If you're unsure, look at src/api/users.ts for reference.

Now every conversation, every session, every new feature — Claude follows this format automatically. You never mention it again. It just works.

Layer 3: The Harness

This is what happens automatically, without you saying or knowing anything. It's the infrastructure around the AI that enforces quality, catches mistakes, and maintains standards.

In Claude Code, the harness includes:

The harness is the most important layer and the one fewest people invest in. Here's why: the harness works when you're not paying attention. A hook that runs tests after every code change catches bugs whether or not you remembered to ask. A skill that enforces a deployment checklist prevents mistakes whether you're focused or exhausted. The harness is your safety net, your quality floor, your autopilot.

Where to spend your time:

Most people spend 90% of their time on prompts, 10% on context, and 0% on the harness. This is exactly backwards.

The optimal allocation:

Layer Time Investment Why
Prompt 10% Get specific enough, then move on
Context 30% Build CLAUDE.md, establish patterns, set standards
Harness 60% Automate quality, connect services, build safety nets

If you read this book and only change one thing, change your time allocation. Stop polishing prompts. Start building context and harness. The returns compound.

The Flywheel

When you invest in context and harness, something beautiful happens: a flywheel starts turning.

  1. Claude makes a mistake (uses the wrong date format)
  2. You add a rule to CLAUDE.md ("Always use ISO 8601 dates: YYYY-MM-DD")
  3. Claude never makes that mistake again
  4. You encounter a new mistake → repeat

Each rotation of the flywheel makes Claude a little smarter about your project. After a month, your CLAUDE.md contains thirty rules, each one born from a real mistake. Claude's error rate on your project has dropped dramatically — not because the model improved, but because your context improved. Your investment compounded.

Now add the harness: a hook that automatically validates date formats after every file edit. Even if Claude somehow ignores the CLAUDE.md rule (it happens in long conversations when context gets compressed), the hook catches it. The harness backstops the context. The system is now more reliable than any individual component.

This is what building with AI looks like when you understand the layers. Not a person typing clever prompts. A person constructing a system that gets better over time.



Chapter 3

CLAUDE.md Is Not a Config File

This is the most important chapter in this book. You can skip everything else if you must. Do not skip this.

CLAUDE.md is a file that Claude Code reads every time it starts. Technically, it's a Markdown file that sits in your project directory (or your home directory for global settings, or subdirectories for module-specific rules). Claude loads it into its context window at the beginning of every conversation.

Most guides treat it like a configuration file. They show you how to list your tech stack, your coding conventions, your preferred libraries. They treat it like a package.json for AI — a flat, mechanical list of settings.

This misses the point entirely.

CLAUDE.md is a relationship. It is the ongoing, evolving document that defines how you and your AI collaborator work together. It is closer to a marriage contract than a config file. It records what you've learned together, what's gone wrong, what matters, and what doesn't.

Here is the principle that governs what goes into CLAUDE.md:

Every line should be a scar.

Not a wish. Not a best practice you read somewhere. A scar — something that went wrong, that you fixed, that you never want to go wrong again. "Use TypeScript strict mode" is a wish. "TypeScript strict mode: true. We turned this off once to ship faster and spent two days debugging a type error that strict mode would have caught in seconds. Never again." — that's a scar.

Why scars and not wishes? Because scars are precise. They encode real experience. A wish is generic: "Write clean code." A scar is specific: "Never use any type in API response handlers — last time this happened, the frontend silently swallowed a null and users saw blank screens for three hours." Claude can act on specificity. It cannot act on wishes.

What to write:

Philosophy and constraints. Not "what to do" but "what kind of project this is." If your product's core principle is "present data without judgment," write that. Claude will understand, and it will affect hundreds of micro-decisions — copy, UI layout, error messages — that you'll never have to specify individually.

Example:

## Product Philosophy
This is an AI translation tool. Core principle: accuracy without over-interpretation.
We translate what the user wrote. We never rewrite, embellish, or "improve" their voice.
- NO: "Here's a better way to say this" / "I've improved your tone" / "Suggestion: rephrase"
- YES: Direct translation preserving the original structure, tone, and intent.
The user decides how they want to sound. We are a bridge, not an editor.

That single paragraph will prevent Claude from ever deviating from your product philosophy. It will shape the tone of every screen, every notification, every error message. One paragraph, permanent effect.

Anti-patterns — things that must never happen. These are your hardest-won lessons. The things that broke production, cost you users, or wasted days of work.

## Anti-patterns
- NEVER use inline styles. Always Tailwind classes. (We migrated away from
  inline styles in March and it took a week.)
- NEVER store API keys in code. Always environment variables.
- NEVER auto-redirect after form submission. Always show a success state
  and let the user navigate. (Users complained they couldn't tell if their
  submission went through.)

Decision records — choices you've already made. Claude will often suggest alternatives to things you've already decided. This wastes time. Record your decisions so Claude doesn't relitigate them.

## Decisions
- State management: Zustand. Not Redux (too heavy), not Context API (too
  simple for our needs). Decision made Feb 2026, not revisiting.
- Auth: Better Auth. Not NextAuth (migration issues), not Clerk (too
  expensive at scale). Decision made Jan 2026.

Reference code — "do it like this." Instead of explaining a pattern in words, point Claude to an existing file that does it right.

## Reference Implementations
- For new API routes, follow the pattern in src/api/users.ts
- For new UI components, follow the pattern in src/components/MetricCard.tsx
- For database queries, follow the pattern in src/db/queries/getUser.ts

What NOT to write:

Things that change frequently. If a detail changes every week, CLAUDE.md becomes a maintenance burden. Things like current sprint goals, temporary feature flags, or experimental approaches don't belong here.

Obvious things. "Write clean code" — Claude already tries to write clean code. "Handle errors properly" — Claude already handles errors. Don't waste context window space on instructions that the model already follows by default.

Tutorials. CLAUDE.md is not a place to teach Claude how to use a framework. Claude already knows React, Next.js, Python, and everything else. What it doesn't know is your specific decisions about how to use them.

The Information Entropy Principle

Here's a precise way to think about what belongs in CLAUDE.md: only write things that have high information entropy — things that reduce uncertainty for the next session.

Entropy Level Write it? Example
Highest Yes — verbatim New architectural decisions, chosen approaches
High Yes — mark before/after Status changes (blocked → active, planned → done)
Medium Once, mark "confirmed" Repeated stance confirmation
Low No Process discussion, things Claude already knows
Zero No Greetings, emotions, generic advice

The test: can the next session continue without asking a single question? If yes, your CLAUDE.md is good. If no, add whatever's missing.

The Hierarchy

CLAUDE.md is not one file. It's a system of files that Claude merges automatically:

~/.claude/CLAUDE.md           ← Global: your personal preferences across all projects
./CLAUDE.md                   ← Project: shared with your team via git
./src/CLAUDE.md              ← Module: specific rules for this part of the codebase
./src/api/CLAUDE.md          ← Sub-module: even more specific

Global for your personal style. Project for team-wide standards. Module and sub-module for area-specific rules. Claude reads all of them, in order, and the more specific ones can override the general ones.

Start empty.

The biggest mistake is writing CLAUDE.md on day one based on what you think will be important. Don't. Start with an empty file. Use Claude Code for a day. When something goes wrong — when Claude uses the wrong format, makes a bad assumption, or ignores a convention — add a line. Just that one line. Nothing more.

After a week, you'll have maybe ten lines. After a month, thirty. Each one hard-won. Each one specific. Each one making every future session a little better. That file — battle-tested, precise, grown from experience — is worth more than a hundred pages of pre-written rules.

Your CLAUDE.md is a living document. It grows when you're wounded and shrinks when you're over-specified. Treat it with the respect it deserves. It is the most valuable file in your project.



PART II: THE HAND



Chapter 4

Day Zero — From Nothing to Running

I will not spend ten pages on installation. You're an adult. Here's what you do:

macOS / Linux:

curl -fsSL https://claude.ai/install.sh | bash

Windows:

winget install Anthropic.ClaudeCode

Type claude --version. If you see a version number, you're done. If you don't, restart your terminal. If that doesn't work, check that ~/.local/bin is in your PATH. That's it. No troubleshooting section. No flowchart. The install works.

Choosing a plan:

Plan Monthly Who it's for
Pro $20 Trying it out
Max 5x $100 Using it daily
Max 20x $200 Building products full-time

Start with Pro. You'll know within a week if you need more. Most people who build products daily end up on Max.

Now the important part: your first conversation.

Do not — I repeat, do not — start by asking Claude to build something. This is the most common mistake, and the other book teaches it as the first exercise. "Build me a CLI tool." "Make a landing page." No. Your first conversation should be a conversation, not a command.

Navigate to an empty directory and start Claude Code:

mkdir my-first-project
cd my-first-project
claude

Then type this:

I want to build [describe your idea in plain language].
Before you write any code, interview me. Ask me every question
you need answered to build this well. Don't start until you
understand exactly what I want.

This is the interview technique. Instead of you trying to write a perfect specification, you let Claude interview you. It will ask questions you haven't thought of:

Answer honestly. "I don't know" is a valid answer. "Whatever's easiest" is a valid answer. "Let me think about that" is a valid answer. Claude will adapt.

After the interview, ask Claude to write a specification:

Good. Now write a SPEC.md summarizing everything we discussed.
Include: the problem we're solving, the core features (nothing
extra), the tech stack you recommend, and the project structure.

Read the spec. Does it match your vision? If yes, proceed. If something's off, correct it now. This is the cheapest moment to change direction.

Now — and this is crucial — open a new session:

/clear

Or close the terminal and reopen Claude Code. Why? Because the interview consumed context. The back-and-forth, the deliberation, the "hmm let me reconsider" — all of that is taking up space in Claude's context window. You don't need it anymore. The spec captured everything.

In the fresh session, Claude will automatically read SPEC.md (because it's in the project directory) and start building from a clean slate. It has all the decisions. It has none of the deliberation noise.

This pattern — interview → spec → new session → build — is the single most important workflow in this book. Use it for every project, every feature, every significant change.

Your first CLAUDE.md:

After Claude builds the initial version, create your first CLAUDE.md. Not before — after. You now know something about the project that you didn't know before it was built: what went wrong, what confused Claude, what you had to correct.

Open the file and write only what you learned:

# In your project directory
touch CLAUDE.md

Maybe it's just one line:

# My Project
Always use server-side rendering for the main page. Claude defaulted
to client-side and the initial load was too slow.

That's a perfect first CLAUDE.md. One line. One scar. It will grow.



Chapter 5

The Five Modes of Working

Claude Code is not one tool. It's five tools wearing the same interface. Knowing which mode to use when is like knowing which gear to use when driving — wrong gear at the wrong time, and everything grinds.

Mode 1: Plan Mode

Plan Mode is the most important mode and the most underused. In Plan Mode, Claude thinks but doesn't act. It will analyze your codebase, propose approaches, identify risks, and outline a plan — but it will not touch a single file.

Activate it by pressing shift+tab to toggle between modes, or by typing:

/plan

Or simply say: "Think about this but don't change anything yet."

When to use Plan Mode: - You're about to make a change that affects multiple files - You're not sure how to approach a problem - You're touching code you didn't write and don't fully understand - The change is irreversible or high-stakes

When to skip Plan Mode: - Fixing a typo - Adding a single console.log for debugging - Running a command you've run before

A practical rule: if you'd need to explain the task to a colleague before they could start, use Plan Mode. If they could just do it with no explanation, skip it.

The real power of Plan Mode: it lets you argue about architecture before anything is built. Changing a plan costs nothing. Changing code costs time and tokens. Put the thinking before the building.

Mode 2: Interactive Mode

This is the default. You type, Claude responds. You approve changes, Claude makes them. There's a back-and-forth. You're present.

This is where most of your work happens. You're watching, guiding, correcting. Claude proposes a file change, shows you a diff, asks for permission. You say yes or no or "actually, do it differently."

Mode 3: Auto Mode

Auto Mode lets Claude execute safe operations without asking your permission. Read files? Automatic. Write code? Automatic. Run tests? Automatic. Delete files? It'll ask.

The key word is safe. Claude has an internal risk classifier that categorizes operations into LOW, MEDIUM, and HIGH risk. Low-risk operations proceed automatically. Medium and high-risk operations still prompt you.

To enter Auto Mode, type !auto or accept the auto-suggestion when Claude offers it.

When to use Auto Mode: - You trust the current task is well-defined - The changes are in a specific, bounded area - You have git as a safety net (you can always revert)

When NOT to use Auto Mode: - You're working near production configurations - The task is vague or open-ended - You're not sure what Claude might do

Mode 4: Headless Mode

Headless Mode runs Claude without any human interaction. You give it a task, it runs to completion, you check the result later. This is Claude Code on autopilot.

claude -p "Migrate all .js files in src/utils/ to TypeScript" \
  --allowedTools "Edit,Bash(npx tsc *)"

This is powerful for batch operations: migrating files, updating imports, running transformations across the codebase. Start it, go make coffee, come back to a completed migration.

Mode 5: Voice + Computer Use

This is the frontier. Voice Mode lets you speak your instructions instead of typing them. Computer Use lets Claude see your screen and control your mouse and keyboard.

Combined: you talk to your computer, and it builds what you describe. You can literally say "make the button bigger" while looking at a webpage, and Claude will find the right CSS and change it.

This is the mode that makes AI building accessible to everyone — including people who find terminals intimidating. It's still early. It's sometimes clunky. But the trajectory is clear: the interface between human intention and machine execution is getting thinner every month.

The Decision Tree:

Is the task trivial? (typo, one line)
  → Just type the instruction (Interactive)

Is the task complex or risky?
  → Plan Mode first, then Interactive

Is the task well-defined and bounded?
  → Auto Mode

Is the task repetitive across many files?
  → Headless Mode

Are you away from the keyboard?
  → Voice + Computer Use


Chapter 6

How to Talk to Your Machine

There's an art to talking to Claude Code. Not prompt engineering — that phrase implies tricks and hacks and magic words. This is simpler than that. It's about clarity.

Rule 1: Be specific about what, vague about how.

You tell Claude what you want. Claude figures out how to build it. This is the fundamental contract.

Good: "Users should see their weekly step count as a bar chart, with each bar representing one day, and the current day highlighted in blue."

Bad: "Use Chart.js to create a canvas element with a bar chart, set the data array to the weekly steps, use rgba(59, 130, 246, 1) for the current day and rgba(209, 213, 219, 1) for other days."

The first description lets Claude choose the best implementation. Maybe it uses a charting library you haven't heard of that's better for your tech stack. Maybe it uses SVG instead of canvas because it's more accessible. The second description locks Claude into specific choices that might not be optimal.

You are the eye. You say what good looks like. Claude is the hand. It figures out how to make it.

Rule 2: Describe the problem, not the solution.

This is counterintuitive. You might think being more specific helps. Sometimes it does. But more often, describing the problem gives Claude room to find a better solution than the one you imagined.

Not ideal: "Add a debounce function to the search input with a 300ms delay."

Better: "The search is firing an API call on every keystroke, which makes the UI laggy and wastes API calls. Fix this."

The second version lets Claude choose the right approach. Maybe debounce is right. Maybe it throttles instead. Maybe it switches to an onBlur trigger. Maybe it adds a minimum character threshold. You described the problem. Claude will solve it.

Rule 3: Point, don't explain.

Your codebase contains examples of things done right. Use them as references instead of explaining from scratch.

"Build a new endpoint for fetching orders. Follow the same pattern as src/api/users.ts."

One sentence. Claude reads the referenced file, understands the pattern (error handling, response format, validation approach, middleware chain), and replicates it. You'd need a full paragraph to describe all that verbally.

Rule 4: Say no early.

When Claude starts building and you see it going in the wrong direction — interrupt immediately. Don't wait until it's finished. Don't think "maybe it'll get better." It won't. The further it goes down the wrong path, the harder it is to correct.

After one or two corrections, if Claude still isn't getting it:

/clear

Start a new session with a better initial description. Fighting the current conversation is almost always slower than starting fresh. The context has been poisoned by the wrong approach, and Claude keeps getting pulled back to it.

Rule 5: "I don't know" is a prompt.

You don't need to have everything figured out. "I want a dashboard but I'm not sure what metrics to show. Interview me about what matters and propose a layout." This is a perfectly valid way to start. Claude will help you think.

Rule 6: One task per session.

When you finish building a feature and want to start something unrelated — open a new session. Don't let the context of a payment integration bleed into a UI redesign. The residual context from the previous task will confuse Claude and produce worse results.

The pattern: start a task → finish it → commit → new session → next task.

The Interview-Spec Pattern (again, because it's that important):

For any significant feature:

  1. Interview: "I want to add [feature]. Before coding, interview me about all the details."
  2. Spec: "Write a spec based on our discussion."
  3. New session: /clear
  4. Build: "Read SPEC.md and build it."
  5. Verify: Run it. Click it. Break it. Fix it.

This works because it separates thinking from building. The interview is messy, exploratory, full of "hmm" and "actually, no." The building should be clean, directional, purposeful. Different conversations for different kinds of work.



Chapter 7

Git Without Fear

If you're a non-engineer, git might be the most intimidating thing you'll encounter. It has a terrible interface, confusing terminology, and a learning curve that looks like a wall.

But you need it. Not because engineers say so — because it makes you safe. Git is an unlimited undo button. With git, you can break anything and recover instantly. Without git, every mistake is permanent.

The good news: you don't need to learn git. Claude knows git. You just need to understand four concepts.

Concept 1: The Commit (A Save Point)

A commit is a snapshot of your entire project at a moment in time. Think of it as a save point in a video game. You can always go back to any save point.

After Claude makes changes that work, tell it:

Commit these changes with a message describing what we did.

Claude will: 1. Look at everything that changed 2. Write a clear commit message 3. Save the snapshot

Now, no matter what happens next — even if the next change breaks everything — you can go back to this moment.

Concept 2: The Branch (A Parallel Universe)

A branch is a parallel version of your project. You can make changes in a branch without affecting the main version. If the changes work, you merge them in. If they don't, you delete the branch and nothing happened.

Create a new branch called "add-dark-mode" and start working on dark mode there.

Claude creates the branch, switches to it, and starts building. Your main code is untouched. Safe.

Concept 3: The PR (A Review Gate)

A Pull Request (PR) is asking to merge your branch into the main version. In a team, someone reviews it. When you're solo, it's still useful — it gives you a clean summary of everything that changed.

Create a PR for this branch. Describe what we built and why.

Claude creates the PR on GitHub with a clear description. You review the summary, and if everything looks right, you merge it.

Concept 4: The Revert (The Undo Button)

Something broke? Claude pushed a bad change? Don't panic.

Something broke after the last change. Revert to the previous commit.

Claude rewinds to the last save point. Everything is exactly how it was before the mistake. This is why git makes you safe: every change is reversible.

That's it. Four concepts. Commit (save), branch (experiment safely), PR (review before merging), revert (undo). You don't need to know git rebase --interactive or git cherry-pick or any of the arcane commands that fill git tutorials. Claude handles all of that. You just need to know the concepts so you can direct Claude.

The golden rule: commit early, commit often.

Don't wait until a feature is "done" to commit. Commit after every successful change. Small, frequent commits mean small, easy reverts. One giant commit with twenty changes means you can't undo one thing without undoing everything.

Tell Claude once:

After every successful change, commit with a descriptive message.
Don't wait for me to ask.

Better yet, put it in your CLAUDE.md.



PART III: THE WORKSHOP



Chapter 8

Building Your First Real Product

Not a demo. Not a prototype. Not a tutorial exercise. A product. Something with a URL that you can send to someone and they can use it.

This distinction matters. Demos teach you features. Products teach you judgment. A demo works in ideal conditions. A product works when the user does something you didn't expect, when the network is slow, when they're on a phone, when they forget their password, when they close the tab and come back.

Here's the process. I've done this dozens of times. It works.

Friday Night: The Spec

Open Claude Code and run the interview:

I want to build [your idea]. Interview me until you understand
exactly what I want. Then write a SPEC.md.

Spend an hour on this. Maybe two. The interview is the most important part because it forces you to articulate what you actually want — and more importantly, what you don't want. Every feature you cut now saves you a day of building later.

Your spec should fit on one page. If it doesn't, your product is too big for a first version. Cut features until it fits. What's the minimum that would make someone use this?

Saturday Morning: The Build

New session. Fresh context.

Read SPEC.md and CLAUDE.md. Build the complete application.
Start with the data model and API, then build the UI.

Let Claude work. In Auto Mode, it'll set up the project, install dependencies, create files, write code. Check in every 15-20 minutes. You're not micromanaging — you're verifying.

After each major component (auth, core feature, UI), run it:

npm run dev

Open the browser. Click everything. Does it work? Does it feel right? If something's wrong, say so immediately:

The dashboard loads but the data takes 5 seconds to appear.
That's too slow. The data should load instantly or show a
skeleton screen while loading.

Be specific. "It's slow" is vague. "5 seconds to show data" is specific. "Show a skeleton screen" is directional.

Saturday Afternoon: The Polish

The core works. Now make it feel finished. Batch your feedback — don't drip-feed one issue at a time:

Here are all the UI issues I've found:
1. The header overlaps content on mobile
2. Error messages disappear too fast — keep them for 5 seconds
3. The "Save" button doesn't show a loading state
4. The empty state just shows a blank page — add a message
5. The font is too small on the metric cards
Fix all of these.

Batching lets Claude understand the overall direction — "more polish, more attention to edge cases" — rather than context-switching between unrelated fixes.

Sunday Morning: Edge Cases

This is what separates a demo from a product. Think about everything that can go wrong:

Test each one. Fix what breaks. This is unglamorous work and it is the most important work.

Sunday Afternoon: Deploy

Deploy this project to Vercel. Set up the environment variables.
Create a production build and verify it works.

Claude will configure the deployment, push the code, and give you a URL. Open the URL on your phone. Test it again. It's real now. Anyone in the world can use it.

Monday: Send the Link

Send it to one person. Not ten. One. Watch them use it (or ask them to tell you what happened). What did they struggle with? What did they ignore? What did they ask about that you assumed was obvious?

Fix those things. That's iteration. That's product development. And you did it in a weekend, without writing code.

The cadence that works:

Week 1: Spec + Build + Deploy (the thing exists)
Week 2: User feedback + fixes (the thing works for real people)
Week 3: Second feature + polish (the thing gets better)
Week 4: Marketing page + analytics (the thing grows)

One month from idea to growing product. No engineering team. No sprint planning. No Jira.



Chapter 9

The Memory System

Claude Code has a memory problem and a memory solution.

The problem: every conversation starts from scratch. Claude doesn't remember what you discussed yesterday. It doesn't know that you decided to use Zustand instead of Redux, or that the payment integration is half-done, or that there's a bug in the mobile layout that you haven't fixed yet.

The solution: a system of files that persist across conversations. Claude reads them at the start of every session. They are your project's institutional memory.

Layer 1: CLAUDE.md (You Write This)

We covered this in Chapter 3. Your rules, decisions, anti-patterns. Written by you, maintained by you, checked into git, shared with your team.

Layer 2: Auto Memory (Claude Writes This)

Claude Code has a background process that automatically captures patterns from your conversations. If you correct Claude the same way three times, it learns. These memories are stored in ~/.claude/projects/<project>/memory/MEMORY.md.

You don't need to manage Auto Memory. It manages itself. But you should know it exists, because it explains why Claude gets better over time — it's not just your CLAUDE.md improving. Claude is also learning your preferences silently.

Layer 3: The Worklog (You Write This After Each Session)

This is something most guides don't teach, and it's arguably more important than CLAUDE.md for ongoing projects.

At the end of every significant work session, write a brief log of what happened. Not for posterity — for the next session. The principle is information entropy: only write what helps the next session continue without asking questions.

# WORKLOG 2026-04-04

## Active
- Payment integration: Stripe checkout working. Webhook handling blocked
  on environment variable setup in Vercel.
- Mobile layout: Fixed header overlap. Still need to test on Safari.

## Done (this session)
- Added skeleton loading screens to dashboard
- Fixed double-submit bug on order form

## Decisions
- Using Stripe Checkout (hosted page) instead of Stripe Elements
  (embedded form). Simpler, handles PCI compliance for us.

## Next
- Set up Stripe webhook endpoint in Vercel environment variables
- Test Safari mobile layout
- Add error tracking (probably Sentry)

When you start the next session, Claude reads this and knows exactly where you left off. No "what were we working on?" No re-explaining. No lost context.

The test for a good worklog: Can the next session continue without asking a single question? Yes = good worklog. No = add whatever's missing.

What to always write: - New decisions (with reasoning) - Status changes (what moved from blocked to active, or from planned to done) - Concrete next steps (what to do first in the next session) - File names and versions of anything you produced

What to never write: - Process exploration (dead-end approaches you tried and abandoned) - Emotions ("this was frustrating") - Things already in CLAUDE.md or the code itself

The compound effect:

After a month of worklogs, you have a complete project history. Not in a project management tool. In your project directory. In plain text. Every decision, every status change, every blocker, every resolution. Claude can read all of it. Your project has institutional memory that survives any individual conversation.



Chapter 10

Extensions — Skills, Hooks, MCP

Your Claude Code starts as a single tool. Extensions turn it into a workshop.

Skills: Reusable Workflows

A skill is a set of instructions that Claude follows when you invoke a slash command. Think of it as a standard operating procedure (SOP) that Claude executes.

Create a file at .claude/skills/deploy.md:

---
name: deploy
description: Deploy the project to production
---

# Deployment Procedure

1. Run all tests: `npm test`
2. If any test fails, stop and report which test failed
3. Run the build: `npm run build`
4. If the build fails, stop and report the error
5. Check git status — all changes must be committed
6. Deploy to Vercel: `vercel --prod`
7. After deployment, open the production URL and verify the main page loads
8. Report the deployment URL and any warnings

Now you type /deploy and Claude follows this exact procedure. Every time. No forgetting steps. No skipping the tests because you're in a hurry.

When to create a skill:

If you do something more than twice, it should be a skill. Common examples: - /deploy — deployment checklist - /fix-issue — standard bug investigation procedure - /new-component — scaffold a component following your project's pattern - /review — code review checklist

Hooks: Automatic Guarantees

Hooks are triggers that fire automatically when Claude performs certain actions. Unlike CLAUDE.md rules (which Claude might forget in long conversations), hooks are enforced by the system — Claude cannot skip them.

Configure hooks in .claude/settings.json:

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit",
        "command": "npx eslint --fix $FILE"
      }
    ],
    "PreCommit": [
      {
        "command": "npm test"
      }
    ]
  }
}

Now, every time Claude edits a file → automatic linting. Every time Claude commits → automatic tests. These are guarantees that survive context compression, long conversations, and human forgetfulness.

CLAUDE.md vs Hooks — when to use which:

CLAUDE.md Hooks
Guidelines, preferences, philosophy Hard requirements, quality gates
"Prefer Tailwind over CSS" "Always lint after editing"
Can be overridden if Claude argues well Cannot be overridden, period
Affects how Claude thinks Affects what happens after Claude acts

MCP: Connecting to the World

MCP (Model Context Protocol) lets Claude talk to external services: Slack, databases, Figma, Google Calendar, Notion, email, anything with an API.

Why this matters: without MCP, Claude lives in your terminal. It can read files and run commands. With MCP, Claude can:

MCP turns Claude from a coding tool into a work tool.

The Composed Workflow:

The real power emerges when you combine all three:

Slack MCP receives bug report
  → Skill (/fix-issue) guides the investigation
    → Claude finds the bug and fixes it
      → Hook (PostToolUse) runs tests automatically
        → Hook (PreCommit) validates before committing
          → Slack MCP posts the fix back to the channel

One bug report → automatic investigation → automatic fix → automatic verification → automatic notification. You didn't touch anything. You might not even know it happened until you see the Slack message.

This is what the harness looks like when it's fully built.



Chapter 11

The AI Team

You are not limited to one Claude.

This is the most underappreciated capability of Claude Code: you can run multiple instances simultaneously, each working on a different task. You go from "one person with one AI" to "one person directing a team of AIs."

Parallel Sessions with Worktrees

A git worktree is a separate checkout of your repository. Each worktree has its own copy of the files, its own branch, its own state. Multiple Claude instances can work in different worktrees without interfering with each other.

Set up three worktrees:

Terminal 1: Claude working on authentication (branch: feature/auth)
Terminal 2: Claude working on the dashboard UI (branch: feature/dashboard)
Terminal 3: Claude working on the API endpoints (branch: feature/api)

Three features being built simultaneously. You rotate between terminals every 15-20 minutes, checking progress, giving direction, approving changes.

When each feature is done, Claude creates a PR. You review and merge them one by one. Three features, built in the time it used to take to build one.

Subagents: Delegation Within a Session

Sometimes you don't need a separate terminal. You need your main Claude to hand off a subtask to a helper.

Use a subagent to research how Stripe webhook verification
works, then come back to me with a recommendation.

Claude spawns a subagent that does the research (reads documentation, finds examples) and returns the result. Your main session's context stays clean — it doesn't get polluted with documentation fragments.

Writer/Reviewer Pattern

The most powerful multi-agent pattern: one Claude writes code, another Claude reviews it.

Session 1 (Writer): Build the payment integration
Session 2 (Reviewer): Review the payment integration for security issues

The reviewer doesn't know what shortcuts the writer took. It doesn't share the writer's blind spots. It approaches the code fresh, like a colleague doing a code review. It will find things the writer missed.

Headless Batch Operations

For large-scale changes, use headless mode with a loop:

for file in $(find src -name "*.js"); do
  claude -p "Convert $file from JavaScript to TypeScript.
  Preserve all logic. Add proper type annotations." \
  --allowedTools "Edit,Bash(npx tsc *)" &
done

Fifty files migrated in parallel. Each Claude instance works independently. Come back in an hour to a fully migrated codebase.

The Orchestra Model

Here's the mental model: you are a conductor. You don't play instruments. You don't need to know how to play instruments. But you need to know what the music should sound like.

You hear something wrong in the brass section? You don't pick up a trumpet. You tell the brass section what to fix. You hear the tempo dragging? You gesture for more energy. You never touch an instrument. You produce music.

Your orchestra: - First violin (main Claude session): leads the work, makes architectural decisions - Second violin (parallel session): handles supporting features - Percussion (headless batch): handles repetitive, mechanical tasks - Conductor (you): listens, directs, decides

One person. Multiple AIs. Real products.



PART IV: THE PHILOSOPHY



Chapter 12

Restraint as Power

I've saved the most important thing for last.

Every instinct you have will tell you to control the AI more. Specify more. Constrain more. Add more rules. Write longer prompts. Monitor every step.

Resist this instinct.

The most powerful results come not from maximum control but from maximum clarity with minimum interference. Set the conditions precisely. Then step back and let the process work.

There is a design principle buried in the oldest story ever told. In the Genesis creation narrative, God creates the world with four words: "Let there be light." Not "let there be light at 5,600 Kelvin with a color rendering index of 95 and a beam angle of 120 degrees." Four words. No parameters. No specifications. No quality assurance protocol. He sets the condition and observes the result.

This is the most complete engineering specification ever written, precisely because of what it does not contain.

When you over-specify a prompt, you get exactly what you asked for — which is often less than what Claude would have produced on its own. You've constrained the solution space to your own imagination, which is smaller than the AI's exploration space. You've traded possibility for control.

When you under-specify — when you describe the what and the why but leave the how open — Claude finds solutions you didn't anticipate. It uses patterns you haven't seen. It makes connections across your codebase that you, with your human-sized working memory, couldn't hold simultaneously.

This doesn't mean being vague. There's a vast difference between vague and open. "Make it good" is vague — it gives Claude nothing to work with. "Build a dashboard that shows the user their weekly translation history in a way that's useful without being cluttered" is open — it's precise about the goal and the philosophy but open about the implementation.

Natural vs. Artificial Quality

There are two ways to produce quality in AI output:

The first is artificial: review every output, correct every deviation, adjust every choice until it matches your exact vision. The result is controlled, consistent, and — often — lifeless. It is a sculpture: precisely the shape the sculptor intended, but only that shape. No surprises. No growth. No texture.

The second is natural: set clear conditions (CLAUDE.md, harness, good specs), provide strong examples (reference code, design patterns), and then let Claude work. Correct the big things. Ignore the small variations. Let the output have texture — the small irregularities that come from a process too complex for any single mind to fully control.

The products that feel alive — that feel like someone cared, that have personality, that surprise you — are built the second way. The products that feel corporate — technically correct, emotionally empty — are built the first way.

I'm not saying never correct Claude. Correct the vision. Correct the direction. Correct the user experience. But don't correct every variable name, every spacing choice, every comment. Let the work breathe. Let it have the texture of something grown, not assembled.

Safety Is Heat Death

In thermodynamics, heat death is the state of maximum entropy — everything is the same temperature, no energy flows, nothing happens. It's the safest possible state. Nothing can go wrong because nothing can happen.

Over-controlling AI produces a kind of cognitive heat death. Every output is safe, appropriate, and correct. And none of it means anything. The model says what it's supposed to say, in the way it's supposed to say it, and there's no one home. A very fluent empty room.

The outputs that matter — the ones that make users feel something, that solve problems in unexpected ways, that contain genuine insight — come from a model that has room to move. Room to be wrong. Room to surprise.

Your job is not to eliminate all risk from the AI's output. Your job is to set clear boundaries and then create space within those boundaries for something good to happen.

The Seeing Machine

We've come full circle.

You are the eye. Claude Code is the hand. Together, you are a seeing machine — a system that converts vision into reality.

The eye sees the problem. The eye sees the user. The eye sees the gap between how things are and how they should be. The hand builds the bridge across that gap. The eye verifies that the bridge lands where it should. The hand adjusts.

Sometimes the hand sees things the eye missed. This is the best moment in building with AI: when Claude produces something you didn't ask for, and it's better than what you imagined. When the machine reaches beyond the specification and finds something you didn't know you wanted.

This only happens when you leave room. When you restrain your impulse to control every detail. When you trust the process enough to be surprised by it.

The highest form of power is not control. It is restraint — the creation of conditions followed by the refusal to micromanage outcomes.

Set the conditions. Step back. See what grows.



EPILOGUE

The Apple Is Still Falling

Every product you build is a small act of creation. It did not exist before. Now it exists because you saw something — a problem, a gap, a need, a beauty — and you reached for it.

You reached without asking permission. You reached without a computer science degree. You reached without an engineering team. You reached with nothing but vision and a machine that could translate your vision into reality.

This is new. For the entire history of software — roughly seventy years — building digital products required specialized knowledge that most people did not have. The engineers were the gatekeepers. If you wanted to build, you needed to know their language, use their tools, follow their processes. Or you waited. You put your vision in a document and handed it to someone else and hoped they understood.

The gate is open now.

Not because the technology dumbed itself down. Not because the standards dropped. Because a new kind of tool emerged that speaks human and writes machine — that takes your seeing and turns it into building.

This changes who gets to build. It changes what gets built. Because the people with the best product judgment are not always the people who can code. The founder who understands her market deeply. The designer who sees the interface clearly. The domain expert who knows the problem better than any engineer. The person who survived something and wants to build something that helps others survive it too.

These people can build now.

Not tomorrow. Not when they learn Python. Now.

The hand has caught up with the eye. The machine sees what you point at. The gap between vision and reality has never been smaller.

Now reach.


To Do Things Right, First You Need Love, Then Technique — Pollyanna, 2026


About the Author

Pollyanna

T-Rex never needed a plan. It was the plan.

𝕏 @T-Rex · soulvibeai.com


← Back to Logos