From f7011d42119ba20125f2fe8c22e4c24533bd20be Mon Sep 17 00:00:00 2001 From: claude Date: Mon, 22 Jun 2026 17:35:47 -0400 Subject: [PATCH] Strengthen M1 Seam 1; fix M6 conflict labels (#36,#37) (#67) Co-authored-by: claude Co-committed-by: claude --- modules/01-the-copy-paste-problem/README.md | 15 ++++++++++----- .../lab/make-conflict.sh | 4 ++-- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/modules/01-the-copy-paste-problem/README.md b/modules/01-the-copy-paste-problem/README.md index 8ec7cea..be231a5 100644 --- a/modules/01-the-copy-paste-problem/README.md +++ b/modules/01-the-copy-paste-problem/README.md @@ -197,11 +197,16 @@ You now have every module's files locally, including this one's under 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).** Paste *only* `cli.py` into your chat and ask: *"Add a `clear` - command that removes all tasks."* Apply whatever it gives you. Now run `python cli.py clear`. - Notice what the AI didn't know: it couldn't see `tasks.py`, so if a clean implementation belonged - there, it had to guess or cram it into the file it could see. Feel how *you* had to be the one to - know which files were involved. +1. **Seam 1 (multiple files).** First mark a task done so there's something to hide — `python cli.py + done 0`, then `python cli.py list` shows it as `[x]`. Now paste *only* `cli.py` into your chat and + ask: *"Make the `list` command hide tasks that are already done."* Apply whatever it gives you and + run `python cli.py list`. The clean version of this change lives in `tasks.py` — the file you + *didn't* paste: open it and you'll see `render()` already owns the `[x]`/`[ ]` box-and-index + formatting, and a `pending()` helper already returns exactly the not-done tasks. But the chat + never saw that file, so it had to either guess at methods it couldn't see (and `python cli.py + list` errors out) or reach into the raw task list and *re-create* that box-and-index formatting + inside `cli.py` — duplicating logic that already existed one file over. Either way, *you* had to + be the one who knew the change really belonged in the other file. 2. **Seam 2 (across time).** Close the chat tab. Open a new one. Ask it to *"continue where we left off."* Watch it have no idea what you were doing. The project's real state is sitting right there diff --git a/modules/06-branches-sandboxes-for-experiments/lab/make-conflict.sh b/modules/06-branches-sandboxes-for-experiments/lab/make-conflict.sh index 8732ea9..b896d2c 100644 --- a/modules/06-branches-sandboxes-for-experiments/lab/make-conflict.sh +++ b/modules/06-branches-sandboxes-for-experiments/lab/make-conflict.sh @@ -47,14 +47,14 @@ git branch -D "$BRANCH_B" >/dev/null 2>&1 || true # 5. Branch A: append one version of a line, commit. git switch -c "$BRANCH_A" >/dev/null -printf '\n\n' >> "$FILE" +printf '\n\n' >> "$FILE" git add "$FILE" git commit -q -m "practice: append line (branch A)" # 6. Branch B (off the original branch): append a DIFFERENT version to the same spot, commit. git switch "$START_BRANCH" >/dev/null git switch -c "$BRANCH_B" >/dev/null -printf '\n\n' >> "$FILE" +printf '\n\n' >> "$FILE" git add "$FILE" git commit -q -m "practice: append line (branch B)"