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 <[email protected]>
Co-committed-by: claude <[email protected]>
This commit was merged in pull request #94.
This commit is contained in:
2026-06-22 23:21:22 -04:00
committed by claude
parent 513d7e7ac8
commit c098933f25
99 changed files with 1324 additions and 1315 deletions
@@ -1,4 +1,4 @@
# Reviewing an AI-generated diff — working checklist
# Reviewing an AI-generated diff: working checklist
Keep this open while you read a diff the AI produced. The point is not to re-read the whole
file; it's to interrogate **the change** against the prompt you gave. Work top to bottom.
@@ -10,24 +10,24 @@ file; it's to interrogate **the change** against the prompt you gave. Work top t
- [ ] **Read the diff, not the summary.** Ignore the AI's account of what it did; the diff is the
only ground truth. (`git diff main..<branch>`)
## 1. Scope — did it change only what was asked?
## 1. Scope: did it change only what was asked?
- [ ] Every hunk maps to the request. Anything outside it is **scope creep** until proven
otherwise.
- [ ] No unrelated files touched (formatting churn, import reshuffles, version bumps).
- [ ] No "while I was here" refactors of code the request never mentioned.
## 2. Deletions — what did it take away?
## 2. Deletions: what did it take away?
- [ ] Read every `-` line. Deletions are higher-risk than additions and skim right past you.
- [ ] **Edge-case handling still there?** Bounds checks, `None`/empty guards, `try/except`,
validation, error returns — confirm none were dropped or weakened.
validation, error returns; confirm none were dropped or weakened.
- [ ] An error that used to be raised/logged isn't now silently swallowed (`except: pass`).
## 3. Plausibility — does it only *look* right?
## 3. Plausibility: does it only *look* right?
- [ ] **Invented APIs.** Every function, method, kwarg, attribute, import, env var, CLI flag,
config key, and endpoint actually exists. Confidence is not evidence — verify the
config key, and endpoint actually exists. Confidence is not evidence; verify the
unfamiliar ones against real docs/source.
- [ ] **Invented behavior.** It isn't relying on a flag/option that doesn't do what the name
suggests (e.g. assuming `list.pop` takes a default like `dict.pop`).
@@ -35,7 +35,7 @@ file; it's to interrogate **the change** against the prompt you gave. Work top t
- [ ] **Inverted or weakened conditions.** `if not x` vs `if x`, `<` vs `<=`, `and` vs `or`,
a filter quietly dropped from a comprehension.
## 4. Behavior change — would the happy path hide it?
## 4. Behavior change: would the happy path hide it?
- [ ] Does any existing command/function behave differently now? Trace one real call through.
- [ ] **Run the failure case, not the success case.** The trap usually survives the happy
@@ -45,7 +45,7 @@ file; it's to interrogate **the change** against the prompt you gave. Work top t
## 5. Decide
- [ ] I can explain, in my own words, what every hunk does and why it's correct.
- [ ] If I can't, I **request changes** — the burden of proof is on the diff, not on me.
- [ ] If I can't, I **request changes**; the burden of proof is on the diff, not on me.
> Rule of thumb: a diff is guilty until proven correct. "It runs" is the weakest possible
> evidence; "I read every `-` line and ran the failure case" is the bar.
@@ -6,7 +6,7 @@ Run it:
python cli.py done 0
State is kept in tasks.json next to this file. The `done` command turns a bad index into a
clean error message and a non-zero exit code — note that behavior before you review the AI
clean error message and a non-zero exit code; note that behavior before you review the AI
change, so you can tell if the change quietly alters it.
"""
@@ -2,7 +2,7 @@
Same running example as Modules 1 and 2, with one addition: `complete` now validates the
index and raises a clear error for a bad one. That explicit edge-case handling is here on
purpose — it's the kind of thing an AI "refactor" likes to quietly remove. This is the
purpose; it's the kind of thing an AI "refactor" likes to quietly remove. This is the
known-good base you'll review an AI change against in Module 10.
"""