Module 3 · Lesson 3.1

What a coding agent actually is.

Module 3 opens with the frame the next four lessons run inside. A coding agent is not a clever autocomplete; it runs a loop on the files you're working in, and your job is to direct it. You will name the four moves, learn where the model should live, and decide which of the two agents in this course you reach for first.

Stage 1 of 3

Read & Understand

5 concept blocks

From “suggester” to “agent” CORE

The most common way people use AI with code today is as a suggester: paste a snippet, ask for a fix, get back a different snippet, paste it into the editor. The human is the one reading files, deciding what to change, opening the editor, saving, and running the result. The AI is a clever autocomplete.

A coding agent is a different kind of thing. It does not just return text. It can read files in your repository, search across them, write new files, edit existing ones, run commands in a shell, and check the result of those commands. The human is still the one setting the goal and reading the diff — but the steps in between are the agent’s.

Put it in terms of the agent loop from Module 1. A suggester is doing one half of one pass: reason, then respond. A coding agent is running the full loop — reason, pick a tool, call the tool (read a file, run a test, write a change), observe the result, reason again — on a codebase. That is the gap you are learning to direct.

The difference is not a feature — it is a category. A suggester speeds up the typing of code, but the human still does everything else: finding the right file, deciding what to change, saving the change, running it, and checking the result. A coding agent can do those steps too. Your job shifts from doing the change yourself to directing the change — telling the agent what to do, then reading the diff and verifying the result. Once making a change is no longer the slow part, the skill that matters is choosing which changes to make and confirming they are right. That is most of what programming actually is.

The four moves of a directed edit CORE

Every time a coding agent makes a real change, it runs through four moves. Naming them gives you the handles you need to direct and review the work.

Locate. The agent figures out where the change belongs. It reads the relevant files, searches for the function or module the change touches, and narrows in. A good agent spends real time here; a bad request — or a bad agent — skips this step and starts writing in the wrong place.

Plan. The agent decides what it is going to change. Sometimes the plan is one line: “replace the buggy date parser.” Sometimes it is a short outline: “add a new field to the data model, update the form, update the save function, add a test.” The plan may be explicit (the agent writes it down and asks you to confirm) or implicit (the agent just goes). Explicit is better for anything non-trivial.

Write. The agent produces the actual change. New code, edits to existing code, new files, deletions. This is the part you see most clearly — it is the diff that will show up in your editor — but it is not the part that most often goes wrong.

Verify. The agent checks that the change did what it was supposed to do. Did the test suite still pass? Did the script run without error? Did the output match what was expected? A good agent does not trust its own writing until it has seen the result. The verify step is the one that distinguishes a coding agent from an elaborate text generator.

As the director, you check two of those moves and the agent’s output on the other two. You check locate by asking “did it change the right file?” — any file the agent touched that you didn’t ask it to touch is a signal to stop and ask why. You check plan by reading the plan before the agent writes, or by reading the agent’s summary of what it did afterward and asking whether that matches what you asked for. You do not re-do write — that is the whole point of using the agent — but you scan the diff for shape: did the right files change, was the edit roughly the size you expected, did anything get added or deleted that you didn’t ask for? You don’t need to read or understand every line of code. You do not re-do verify, but you check that the verify step ran and passed — and most of all, you run the result yourself and confirm it does what you asked for. If it doesn’t, that’s the iteration: tell the agent what is still wrong and ask for the next pass. This back-and-forth is what directing an agent actually looks like.

Where the model lives CORE

Lessons 2.1 and 2.3 walked through local vs. cloud at the model level. The same four axes — capability, cost, privacy, reliability — apply when you pick the model behind your coding agent, but capability is weighted heavier than for most other tasks.

Here is why. Coding is long-chain reasoning: the agent has to hold the structure of a file or a repo in its head, plan a change across several places, and keep the plan consistent while it writes. That is exactly the kind of work where frontier cloud models pull clearly ahead of 7–13 B local models. On a real bug — especially one that touches more than one file — a local model is markedly more likely to produce confident wrong answers. For coding specifically, the capability gap is not small.

So the default recommendation for Module 3 and the rest of this course’s coding work is: cloud model behind your coding agent. Your directed edits should route through a frontier cloud model by default.

Two situations flip the default to local:

Privacy-sensitive code. If you are editing a repository that contains secrets, personally identifying information, or proprietary work you have promised not to ship to a third party, local is the right call — even at the capability cost. A slower, rougher local agent that never exfiltrates is strictly better than a brilliant cloud agent you should not have shown the code to.

High-volume small edits. If you are running dozens of small, mechanical edits a day — rename this variable, add this docstring, convert this loop — a local model is perfectly capable of that kind of work and your per-edit cost drops to zero.

Both situations will come up. Most students’ coding work, most of the time, is cloud-default. The course is honest about that because “always local for coding” is a posture that sounds disciplined and actually costs you capability you need.

Where Module 3 lives: the Code tab CORE

You met the three tabs of the Claude desktop app in Lesson 2.4. Module 3 lives almost entirely in the Code tab — the interactive coding mode where the agent reads and writes files in a folder you've granted it access to, and proposes each change with a real-time diff for you to accept or reject.

The Code tab is the right fit for Module 3 because every lesson here teaches a piece of directed file editing: locate the bug, plan the fix, write the change, verify, review the diff. That whole motion is what the Code tab is built for — point at a folder, give the agent a prompt, watch it propose changes, accept or reject each one.

The other two tabs of the desktop app do show up around Module 3, just less:

Chat is for thinking out loud about a directed-edit problem before you give it to the Code tab. Use it when you're not ready to point at specific files yet, or when you want to brainstorm an approach without giving the agent file access.

Cowork is the autonomous tab for tasks the agent works on independently — the home base for Modules 4 through 8. You'll barely use it in Module 3, and that's by design: the pedagogy of “review every diff in real time” doesn't fit Cowork's “go work on this in a cloud environment and come back when you're done” shape. Different tab, different shape of work.

Optional advanced — the Claude Code CLI. If you set up the CLI version of Claude Code in Lesson 2.4's optional advanced section, it's the same engine as the Code tab with a terminal interface. Some students prefer working in a shell. Both the Code tab and the CLI work for everything in Module 3 — the recipe sidebars below show the Code tab as the default and call out CLI differences where they exist.

What “directing” a coding agent means in practice CORE

If you take only one thing from this lesson: the skill you are building is not prompting for code. It is directing an agent that happens to write code. Those sound the same and they are not.

Prompting for code is: I want a function that sorts a list of dates. The model writes it. I copy-paste.

Directing an agent is: I have this CLI script that sorts files by extension; it is mis-sorting .tar.gz files because it is splitting on the first dot; please locate the bug, propose a fix, show me the diff before applying it, and run the existing tests after. That sentence does four things: names the goal, names the suspected location, requires a plan, requires confirmation before writing, and requires a verification step. A good coding agent uses every one of those.

Same shape, no code required: The folder ~/Documents/Family Recipes has a few hundred photos, PDFs, and Notes-app exports mixed in. I want it organized so each family member's recipes have their own subfolder, and any duplicates are flagged but not deleted. Please scan the folder first and tell me how many items belong to each person before you propose a structure. Don't move anything until I confirm. Five things again: goal, suspected scope, plan first, confirmation, verify.

You will get better at this over the rest of the course. By the end of the module, a sentence like that will feel obvious, and the edits you direct will be harder, larger, and safer than the ones you would have copy-pasted your way through a year ago. Lesson 3.2 is where you run your first one on a real repository.

Stage 2 of 3

Try & Build

1 recipe + activity

Is the Code tab live right now? RECIPE

Tool Claude desktop app — Code tab (with optional CLI note)
Last verified 2026-04-17
Next review 2026-07-17

A common early mistake is spending twenty minutes debugging “the agent” when in fact the Code tab isn't actually connected to a folder, so it can't read or edit anything. Before you start a directed-edit session, take ten seconds to confirm.

In the Code tab. Look at the project / folder picker at the top of the Code tab interface. If a folder is shown, the agent has access to that folder and can read and edit files there. If no folder is shown, click the picker and connect one before you start — otherwise the agent is in a suggester-only mode and any file it “reads” will be invented.

In the Claude Code CLI (optional advanced). In the terminal where the CLI is running, type /status (or the current status command — check --help if it has changed). You should see the working directory it is attached to, the model it is using, and any MCP tools it has access to. If the working directory is not the repo you want to edit, exit and relaunch from the correct folder.

Safe default — when in doubt, ask the agent

When you're not sure whether something is set up right, the simplest move is almost always to ask the agent. Not sure whether it can actually write files? Ask it to print the contents of a small file you know exists. Not sure which folder it's connected to? Ask "what folder are you in right now?". Not sure whether your edit landed? Ask it to read the file back to you.

This is one of the most useful directing habits you'll build — and it's a habit that scales to every tool you'll meet for the rest of the course. If your "what folder am I in?" question gets a confident-but-fabricated answer, you've also just discovered you're in a suggester-only session and no tools are live.

Try it — Anatomy of a directed edit CORE

worksheet deliverable · open the printable worksheet →

You are given six short task descriptions. For each, you will:

  1. Say whether this task is well-suited to a suggester, a coding agent, or neither.
  2. For the agent-suited ones, write a one-paragraph directed prompt that names the goal, the suspected location (or “find it first”), the required plan step, and the required verify step.
  3. Predict which tab you would reach for first — the Code tab (interactive directed file edits with diff review), the Cowork tab (autonomous tasks the agent works on independently), or the Chat tab (no file access; conversation only) — and why.

The tasks:

  1. “Add a docstring to the parse_date function in utils.py.”
  2. “My sort-files-by-extension script mishandles .tar.gz files. Fix it.”
  3. “Tell me what the word ‘ontology’ means.”
  4. “Reorganize my downloads folder so that each file type is in its own subfolder, and tell me what got moved where.”
  5. “In this small budgeting script my parents use, add a new column for tax category, update the existing tests so they still pass, and update the README to mention the new column.”
  6. “Write me a regex that matches an email address.”

Deliverable. A one-page table: task → suggester / agent / neither → directed prompt (if applicable) → first-choice tab → one-sentence reason. Keep it; Lesson 3.2 will reuse task 2 as the first directed-edit exercise, and Lesson 3.5 will revisit task 5 for scoping a larger change.

Done with the hands-on?

When the recipe steps and any activity above are complete, mark this stage to unlock the assessment, reflection, and project checkpoint.

Stage 3 of 3

Check & Reflect

key concepts, quiz, reflection, checkpoint, instructor note

Quick check

Five questions. Tap a question to reveal the answer and the reasoning.

Q1. Which of the following best describes the difference between a suggester and a coding agent?
  • A The suggester uses a smaller model; the agent uses a larger one.
  • B The suggester returns text; the agent can read files, write files, run commands, and check the result.
  • C The suggester costs money; the agent is free.
  • D They are the same thing with different names.
Show explanation

Answer: B. The category difference is tool use, not model size or price. A small local model wired to tools is a coding agent; a frontier model with no tools is a suggester. The cost difference is not the defining line; D is the misconception the whole lesson is written to dismantle.

Q2. In the four moves of a directed edit — locate, plan, write, verify — which two does the course expect you (the director) to actively check every time?
  • A Locate and write.
  • B Plan and verify.
  • C Write and verify — you scan the diff for shape and confirm the result does what you asked for.
  • D All four, always, from scratch.
Show explanation

Answer: C. You do not re-locate or re-plan from scratch — you would be doing the agent’s job. You scan the diff for shape (check the write) — what files changed, how big the edit is, whether anything got added or deleted that you didn’t ask for — and you confirm the result actually does what you asked for (check the verify), running it yourself if needed. A swaps the moves. B drops the diff review. D is a posture that looks careful and actually means you are not getting any leverage from the agent at all.

Q3. A student says, “For coding work, I am local-only. It is more disciplined and cheaper.” What is the course’s honest counter?
  • A Local is always worse for coding and should never be used.
  • B Cloud is the default for coding because capability on long-chain reasoning matters; local is right for privacy-sensitive code and high-volume small edits, and those are real but not most work.
  • C The student is correct; local-only is the safer posture.
  • D It depends entirely on which local model they are running.
Show explanation

Answer: B. This is the honest version of the tradeoff. A overstates it in the other direction — local is genuinely fine for small, mechanical edits and for code you should not be shipping to a third party. C cedes the capability point in a way that costs the student real work they could be doing. D punts on the decision the student has to make.

Q4. You have a task: “In this small project, rename the User.nickname field to User.display_name and update every place in the code that reads or writes it, including the tests.” Which tab in the Claude desktop app is the first-choice recommendation?
  • A The Chat tab; the change is mechanical enough to describe in conversation.
  • B The Cowork tab, because the project is in a folder.
  • C The Code tab, because the unit of work is “a multi-file change where I want to review every diff.”
  • D Any tab will do; the task is mechanical enough that the choice doesn't matter.
Show explanation

Answer: C. The Code tab is built for exactly this shape: directed multi-file work where you want eyes on every change before it lands. The agent makes the change, you accept or reject each diff in real time, and you can ask follow-up questions about anything unexpected. A sends you back to copy-paste — Chat can't actually edit your files. B is the Cowork tab's territory but Cowork's autonomous-task interface doesn't show you per-edit diffs to review. D abandons the tab decision rule the lesson introduced.

Q5. “You do not merge what you have not reviewed.” In Module 3, this rule applies to:
  • A Only the capstone work.
  • B Only diffs larger than 20 lines.
  • C Every diff, including one-line ones, for the entire rest of the course.
  • D Only changes to production code, not scripts or homework.
Show explanation

Answer: C. This is the operational safety rule Module 3 installs and the rest of the course expects. “Reviewed” here doesn't mean reading every line of code — it means running the five-move review (Lesson 3.3): scan the diff for shape, read the agent's summary, ask the agent about anything unfamiliar, run the result, iterate if needed. One-line diffs are exactly where misreadings slip through unnoticed; scripts and homework are exactly the practice ground where the habit is built. The rule is not “review carefully when it matters” — it is “review every time, because you cannot reliably tell in advance when it will matter.”

Reflection prompt

Suggester or agent — and how carefully did you check the output?

In 6–8 sentences: Think of the last time you used AI for any kind of work — writing an essay, doing research, drafting a message, helping with a project. Were you using it as a suggester (asking, getting text back, copying it where you wanted) or as an agent (the AI did the work end-to-end on its own), using this lesson’s definitions? If you were using a suggester, what would have changed about the work if you had been using an agent instead? And — honestly — how carefully did you check the AI’s output before using it? What habit would you want to build before letting an agent take on bigger work for you?

The second half of the prompt is the important half. Most students arrive at this course having never reviewed an AI’s output systematically. Module 3 is where that habit gets built — specifically, the habit of scanning what an agent produced and confirming the result actually does what you asked for.

Project checkpoint

Add a “Directed Edit Style” line to my-first-loop.md.

Open your my-first-loop.md capstone file. You already have sections for Goal, Model, Tools, Secrets, Cost ceiling. Add a new section called Directed Edit Style with this template:

Directed Edit Style. In the system I'm building toward (the capstone you'll start designing in Module 8), an agent is most likely to change: [which kind of file — a config file, a script, a notes or data file, a template, etc.]. Because: [one sentence — what that kind of file does and why it's the natural “edit surface”]. Who reviews the diff before it lands: [me, always — even on my own work].

Keep it short. You don't have a system yet — you're predicting. The point is to have thought, once, about where an agent will most often make changes in the kind of system you'll build, because that's the surface you'll practice reading diffs on for the rest of this module and beyond.

Next in Module 3

Lesson 3.2 — Your first directed edit.

Clone the tidy-starter repo and direct your first real four-move edit in the Code tab. Optional advanced sidebar: do the second bug in the Claude Code CLI for a side-by-side comparison if you set up the CLI in Lesson 2.4.

Continue to Lesson 3.2 →