A current frontier editor-agent told to "merge X into Y" resolves the conflict and completes the merge in one turn, so the learner never sees a <<<<<<</=======/>>>>>>> marker. Module 6's old Part C assumed Git would stop and ask, teaching a skill (edit the markers by hand) the AI now performs before you can blink.
This reworks Part C into a three-beat sequence:
Witness the conflict once by directing the agent to stop on conflict and show it (the stop-on-conflict idiom already proven in Module 26), so the learner sees one real conflict and recognizes the shape.
Undo it with git merge --abort.
Let the AI merge for real and auto-resolve silently, then make the punchline the verify: git diff after every merge is the only thing standing between you and a silently-bad resolution that left no error behind.
The takeaway lands in prose: the skill is no longer "resolve markers by hand," it's "know a conflict can happen and check the AI's invisible resolution."
Matching surfaces updated (so the module tells one story)
A current frontier editor-agent told to "merge X into Y" resolves the conflict and completes the merge in one turn, so the learner never sees a `<<<<<<<`/`=======`/`>>>>>>>` marker. Module 6's old Part C assumed Git would stop and ask, teaching a skill (edit the markers by hand) the AI now performs before you can blink.
This reworks Part C into a three-beat sequence:
1. **Witness the conflict once** by directing the agent to stop on conflict and show it (the stop-on-conflict idiom already proven in Module 26), so the learner sees one real conflict and recognizes the shape.
2. **Undo it** with `git merge --abort`.
3. **Let the AI merge for real and auto-resolve silently**, then make the punchline the verify: `git diff` after every merge is the only thing standing between you and a silently-bad resolution that left no error behind.
The takeaway lands in prose: the skill is no longer "resolve markers by hand," it's "know a conflict can happen and check the AI's invisible resolution."
### Matching surfaces updated (so the module tells one story)
- Learning objective #4
- Key concept "Merge conflicts: when two changes collide" (adds the auto-resolution reality)
- "The AI angle" conflict bullet
- "Where it breaks" plausible-and-wrong bullet (the post-merge `git diff` is the safeguard *because* the conflict was invisible)
- "Check for understanding"
- `blog/07-branches-sandboxes.md` conflict section (sibling surface kept in sync)
- `lab/make-conflict.sh` on-screen guidance ("read the markers yourself first"); mechanic unchanged
### Verification
- De-slop gate: `grep -n '—'` clean and no banned words in all changed files.
- `make-conflict.sh` smoke-tested in a throwaway repo: still manufactures a real conflict (3 marker lines), fallback intact.
- `tools/build_wiki.py` renders all 27 modules without error.
- Stop-lines honored: AI-drives-git reframe preserved (the by-hand `git status`/`git diff` are verification, not git-by-hand norm), no `tasks-app` code changed, Module 26 untouched, `stats`/`purge` stay fictional.
Closes #97
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01KCv6VTpBG6Zo4xR4AvUQpj
A current frontier editor-agent told to "merge X into Y" resolves the
conflict and completes the merge in one turn, so the learner never sees a
marker. The old Part C assumed Git would stop and ask. Rework the lab into
a three-beat sequence: witness the conflict once (agent stop-on-conflict
idiom, as in Module 26), undo it with `git merge --abort`, then let the AI
merge for real and auto-resolve while the learner does the one job still
theirs: verify with `git diff` after every merge.
Updates the matching surfaces so they tell one story: learning objective
#4, the Merge-conflicts key concept, the AI-angle bullet, the
Where-it-breaks bullet, Check-for-understanding, the blog mirror, and the
make-conflict.sh on-screen guidance (read the markers yourself first).
Closes#97
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_01KCv6VTpBG6Zo4xR4AvUQpj
justin
merged commit 8e0ae0d58a into main2026-06-23 09:07:34 -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.
A current frontier editor-agent told to "merge X into Y" resolves the conflict and completes the merge in one turn, so the learner never sees a
<<<<<<</=======/>>>>>>>marker. Module 6's old Part C assumed Git would stop and ask, teaching a skill (edit the markers by hand) the AI now performs before you can blink.This reworks Part C into a three-beat sequence:
git merge --abort.git diffafter every merge is the only thing standing between you and a silently-bad resolution that left no error behind.The takeaway lands in prose: the skill is no longer "resolve markers by hand," it's "know a conflict can happen and check the AI's invisible resolution."
Matching surfaces updated (so the module tells one story)
git diffis the safeguard because the conflict was invisible)blog/07-branches-sandboxes.mdconflict section (sibling surface kept in sync)lab/make-conflict.shon-screen guidance ("read the markers yourself first"); mechanic unchangedVerification
grep -n '—'clean and no banned words in all changed files.make-conflict.shsmoke-tested in a throwaway repo: still manufactures a real conflict (3 marker lines), fallback intact.tools/build_wiki.pyrenders all 27 modules without error.git status/git diffare verification, not git-by-hand norm), notasks-appcode changed, Module 26 untouched,stats/purgestay fictional.Closes #97
🤖 Generated with Claude Code
https://claude.ai/code/session_01KCv6VTpBG6Zo4xR4AvUQpj