De-slop: remove every em-dash + banned words across all modules + capstone (#94)
Sync course wiki / sync-wiki (push) Successful in 4s

Co-authored-by: claude <claude@jpaul.io>
Co-committed-by: claude <claude@jpaul.io>
This commit was merged in pull request #94.
This commit is contained in:
2026-06-22 23:21:22 -04:00
committed by Claude (agent)
parent 513d7e7ac8
commit c098933f25
99 changed files with 1324 additions and 1315 deletions
+16 -16
View File
@@ -1,4 +1,4 @@
# Module 1 The Copy-Paste Problem
# Module 1: The Copy-Paste Problem
> **You can already get an AI to write good code. The thing that's failing you is everything around
> the code.** This module names that gap honestly and gets your workspace ready to close it.
@@ -8,7 +8,7 @@
## Prerequisites
None. This is the orientation module. You need to be comfortable using an AI chat assistant and have
a machine you can install software on — that's the whole entry requirement.
a machine you can install software on. That's the whole entry requirement.
If you've never opened a terminal, this course will stretch you, but it won't lose you: every
command is shown and explained.
@@ -47,7 +47,7 @@ For a single file you're poking at for an afternoon, this is fine. The friction
results are real. The problem isn't that this loop is *bad*. It's that the loop **doesn't scale along
the two axes every real project grows on: more than one file, and more than one day.**
### Seam 1 More than one file
### Seam 1: More than one file
The moment your project is two files instead of one, the chat window loses the thread. You paste in
`cli.py`, ask for a change, and the AI confidently edits it. But the change actually needed to touch
@@ -59,17 +59,17 @@ You become the integration layer. Every change is a manual diff you perform in y
what's in the chat and what's on disk. That's slow, and worse, it's *error-prone in a way you can't
see*: there's no record of what actually changed.
### Seam 2 More than one day
### Seam 2: More than one day
Close the chat tab, come back tomorrow, and the AI's entire working memory is gone. It doesn't know
what you decided yesterday, which approach you rejected, or why that one function looks weird (you
had a reason). The context that lived in the conversation evaporated when the session ended.
So you re-explain. You re-paste. You reconstruct yesterday from memory and your memory is worse
So you re-explain. You re-paste. You reconstruct yesterday from memory, and your memory is worse
than you think. The project's real state lives on your disk, but the chat has no way to read your
disk, so every session starts cold.
### Seam 3 No undo, no record, no safety
### Seam 3: No undo, no record, no safety
This is the quiet one, and it's the most dangerous. The AI confidently makes a mess. It deletes a
function you needed, "refactors" something into a subtly broken state, rewrites a file you'd carefully
@@ -138,13 +138,13 @@ purpose** so you recognize it later.
> **One command name, the whole course through:** whichever of `python` / `python3` just printed a
> 3.10+ version is the command to use in *every* lab from here on. The labs are written with
> `python`; if that's "command not found" on your machine common on current macOS and default
> Debian/Ubuntu, where Python is installed only as `python3` read it as `python3` (and `pip3`
> `python`; if that's "command not found" on your machine (common on current macOS and default
> Debian/Ubuntu, where Python is installed only as `python3`), read it as `python3` (and `pip3`
> wherever a lab uses `pip`). This note holds course-wide; we won't repeat it.
### Get the course materials
Everything you'll run in this course lives in one repo. Grab it once, up front no tools required
Everything you'll run in this course lives in one repo. Grab it once, up front; no tools required
beyond a web browser:
1. Open the course's home page, **`https://git.jpaul.io/justin/ai-workflow-course`**, and use its
@@ -159,7 +159,7 @@ You now have every module's files locally, including this one's under
> *A cleaner, **updatable** way to get the repo, `git clone`, arrives in **Module 8**, once you've
> learned Git (Module 2). A one-time ZIP is all you need today; don't reach for `clone` yet.*
### Part A Stand up the project
### Part A: Stand up the project
1. Make a working directory and copy in the starter app from this module's `lab/starter/` folder:
@@ -170,9 +170,9 @@ You now have every module's files locally, including this one's under
# tasks.py cli.py README.md
```
(Copy them however you like drag-and-drop in your editor's file explorer is fine.)
(Copy them however you like; drag-and-drop in your editor's file explorer is fine.)
> **On Windows:** these labs' shell snippets are written for bash run them from **Git Bash** or
> **On Windows:** these labs' shell snippets are written for bash; run them from **Git Bash** or
> **WSL** and they work as-is. In native PowerShell a few POSIX-only commands differ; here, `mkdir
> -p` becomes `New-Item -ItemType Directory -Force`.
@@ -188,9 +188,9 @@ You now have every module's files locally, including this one's under
You should see your task listed. **This is your "real local project, an editor, and a terminal."**
That's the Module 1 setup goal, complete.
### Part B Feel the seams
### Part B: Feel the seams
Now reproduce each failure deliberately. Keep the AI strictly in the **browser chat** no
Now reproduce each failure deliberately. Keep the AI strictly in the **browser chat**; no
editor-integrated tools yet (those arrive in Module 4). This is the "before" picture on purpose.
1. **Seam 1 (multiple files).** First mark a task done so there's something to hide. Run `python
@@ -215,7 +215,7 @@ editor-integrated tools yet (those arrive in Module 4). This is the "before" pic
(fragile, gone once you close the file) and the chat history (if you can find the right message).
There is no checkpoint.
You just manually reproduced the three problems the rest of Unit 1 removes. Hold onto that feeling
You just manually reproduced the three problems the rest of Unit 1 removes. Hold onto that feeling;
it's the motivation for everything that follows.
---
@@ -239,7 +239,7 @@ Be honest about the limits of this module's claims:
**You're done when:**
- You can run `python cli.py list` in your terminal and see output your project, editor, and
- You can run `python cli.py list` in your terminal and see output; your project, editor, and
terminal are working together.
- You can name the three seams where copy-paste breaks (more than one file, more than one day, no
undo) without looking back at the lesson.