Sharpen Module 1 Seam 1 so the example forces a real multi-file change #36
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
Part B Seam 1's purpose is to make the learner feel that one-file copy-paste breaks across files, but a
clearcommand is trivially implementable entirely insidecli.py(e.g.save(TaskList())), so the AI seeing onlycli.pyproduces working code andpython cli.py clearsucceeds — the seam doesn't bite. (The AI might instead guesstlist.clear()and crash, making the demo non-deterministic.) The text even hedges ("if a clean implementation belonged there").Evidence
modules/01-the-copy-paste-problem/README.mdlines 170-175: "Add aclearcommand that removes all tasks." … "it couldn't seetasks.py, so if a clean implementation belonged there, it had to guess or cram it into the file it could see."Why it matters
This is the load-bearing "feel the seam on purpose" lab in a LOCKED reference exemplar that later modules emulate; the seam can silently succeed instead of biting (unlike Seams 2 and 3).
Proposed change
Use a task whose clean implementation lives in
tasks.py, e.g. "makelisthide completed tasks." The clean fix editsrender()intasks.py(apending()helper the AI can't see already exists), so an AI given onlycli.pymust reach intotlist.tasksand re-derive the[x]/[ ]box+index formatting — visible duplication, a sharper seam. Module 2 reuses the app with an independent task and never references the Module 1clearcommand, so the chain is intact.Acceptance criteria
tasks.py.clearSeam-1 task.Affected files
modules/01-the-copy-paste-problem/README.mdReferences
Source finding F18 (realVotes 3/3). Touches locked exemplar Module 1 — confirm with course owner; preserve voice/structure.
Filed from an adversarial multi-agent course review (217 raw findings → 54 adversarially-verified survivors). Scoped for manual review; intentionally not auto-assigned to an agent.