Skip to content
English
Level 4: Read with Claude
Lesson 8 · +30 XP

Your first real read

You’ve covered the ideas. Time to do the thing.

This lesson mirrors Lesson 1.10 and Lesson 2.8: no new theory, just a run-through where every move from Level 4 gets used at least once. Open a real terminal. Actually type the commands.

Pick a codebase

You want a project with at least a few files and some actual structure. Pick one of:

  • A project you’ve been working on — even a small side project counts.
  • A project from your team — if you’ve got access to a real codebase you’ve never really read, that’s perfect.
  • An open-source project from GitHub — even better for practice, because nothing’s familiar. Some good small ones to clone: a static site, a CLI tool, a Python script you’ve used. Pick something under ~50 files for this lesson. (You can do bigger ones later — Claude scales further than this exercise will.)

If you’re going with an open-source repo, clone it into a folder:

cd ~
git clone <some-repo-url> my-practice-repo
cd my-practice-repo

Then start Claude in there:

claude

Take a breath. You’re about to learn a codebase you’ve never seen, in five questions.

Move 1 — Orient

The first question you always ask. Don’t overthink it:

what is this project? Read README.md and the top-level files, and give me a short summary.

Watch the turn loop you learned in Lesson 2.4: thinking → tool → output → answer. Claude will read the README, glance at package.json or its equivalent, and tell you:

  • What the project is.
  • What language and framework it uses.
  • How to run it.
  • The shape of the folder structure.

That’s your orientation. You’re no longer staring at a stranger.

Move 2 — One file, asked sharply

Pick a file from the answer that sounds interesting. The one you’d be most curious about. Now use the move from Lesson 4.2:

walk me through src/<that-file>. What does it do, and how is it structured?

You’re going from a 30,000-foot view to a single ground-level building. Read Claude’s answer carefully — you should now know, in one or two sentences, what that file’s job is in the project.

Move 3 — One symbol, by name

In that answer, you’ll see function or component names. Pick one whose job isn’t obvious. Now apply Lesson 4.3:

explain <function-name>. What does it do, and what does it call?

You don’t need to know where it lives anymore. You just know its name. Notice how naturally curiosity drops from file → function → call.

Move 4 — Trace

Pick the most interesting call in that function’s answer — “it calls processData() — and trace it. Use Lesson 4.4:

where is processData called from, and where does its input come from? Trace it.

Now you’re building a real mental map. You’ll get back something like: “called from two places, both in src/pipeline/; its input comes from a config file loaded at startup.”

In four questions, you’ve gone from “never seen this repo” to “I can sketch how this slice of it works.” That used to take half a day.

Move 5 — Verify

Now you stress-test the answers. Pick the most load-bearing claim from any of Claude’s responses — “this function is called from pipeline.ts or “this value comes from .env. Apply Lesson 4.7:

quote the exact line where processData is called in pipeline.ts.

Then open pipeline.ts (or cat it from another terminal) and confirm the line is really there, really says that.

If it checks out: you can trust the broader picture. If it doesn’t: ask Claude to look again, and tell it what you found. This is the moment you stop being someone who reads with Claude and start being someone who reads with Claude well.

Optional — the bonus moves

You’ve got time. Try one of these:

Read an error. Find a way to make the project break — type a command wrong, edit a file to introduce a typo, run the wrong script. Catch the resulting error and paste it into Claude (Lesson 4.5). Watch it translate.

Read the history. Pick any file you’ve been looking at and ask (Lesson 4.6):

what has changed in this file in the last few months, and why?

You’ll get a tour of the evolution of the file — sometimes more revealing than the file itself.

When you’re done

Exit Claude (Ctrl + C twice). Look around. The project that was unfamiliar 20 minutes ago has shape now. You couldn’t draw all of it, but you could draw the slice you investigated — accurately, with the names of real files and real functions in it.

That’s the win. Not “I understand the whole codebase.” That’s a goal that doesn’t exist. The real goal is “I can answer any specific question about this codebase, by reading with Claude.” You can.

What’s next

Level 5: Build with Claude. The training wheels come off again, and this time they come off for real — you’ll make your first real change to a codebase. Everything you just learned about reading is the foundation for changing things well. If you can read it, you can change it. If you can’t read it, don’t.