- Lab-script path convention: course scripts live in modules/NN/lab/; copy the
one a step needs into tasks-app, then run by bare name (M4/M6/M7/M26 + headers).
- tasks.json stays gitignored: M20 verifies via `cli.py list`/`cat tasks.json`
(not git diff) and frames runtime state as deliberately ignored; M22 cleanup
uses `rm tasks.json`; M10 review-lab gets its own .gitignore.
Module 21's lab deliberately ships NO .gitignore (teaching device) — untouched.
- Stop running-example command collisions: M5 clear->search, M6 count/clear->
stats/purge, M7 clear/count->wipe/remaining (README + scripts + agent prompts +
branch/worktree names). M6 conflict still reproduces on the carried usage line.
Closes#7Closes#10Closes#11
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_01TfzV5QvtPDz8LJS3Pu5VLT
claude
merged commit 06b9f8f308 into main2026-06-22 15:35:52 -04:00
claude
deleted branch fix/p1-running-example-consistency2026-06-22 15:35:52 -04:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Cross-cutting consistency for the running tasks-app example.
modules/NN/lab/<script>into tasks-app, run by bare name) applied across M4/M6/M7/M26 and script headers.tasks.jsonstays gitignored; M20 verifies viacli.py list/catinstead ofgit diff, M22 cleanup usesrm, M10 review-lab gets its own ignore. Module 21's deliberately-absent.gitignoreis preserved (teaching device — verified untouched).clear→search, M6count/clear→stats/purge, M7clear/count→wipe/remaining(prose + scripts + prompts + branch/worktree names). M6's engineered merge conflict still reproduces.Pedagogy audit honored: no deliberate device altered (M1/M12/M13/M21 unchanged). Verified lab commands on /tmp copies with a cumulative usage line.
Closes #7
Closes #10
Closes #11
🤖 Generated with Claude Code