Module 6 - AI auto resolves merge conflict #97
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?
Modern frontier models can auto fix merge conflicts and the user never knows. We may need to try to merge manually in the hands on lab to show the conflict. then undo it, then have AI do the merge and show how AI will auto resolve conflicts.
Build scope (AI-ready)
Problem
Module 6's Part C lab teaches conflict resolution by telling the learner to direct the
agent to merge two colliding branches (
feature/statsintofeature/purge), expecting Gitto stop on a conflict so the learner can read the
<<<<<<</=======/>>>>>>>markers(Learning objective #4). With a current frontier editor-agent that assumption is now wrong:
told to "merge X into Y," the agent often resolves the conflict silently in the same turn
and reports a clean merge. The learner never sees a marker, never practices reading one, and
walks away thinking conflicts just do not happen anymore. The real lesson is the opposite and
sharper: the AI hides conflicts so smoothly you must (a) know what a conflict is and
(b) check
git diffafter every merge, because an invisible auto-resolution can be subtlywrong (it can keep the worse side or blend two changes into one that satisfies neither).
Affected files / areas
modules/06-branches-sandboxes-for-experiments/README.md(primary):conflict first, undo it, then let the AI auto-resolve and verify.
reality that a frontier agent may resolve the conflict before you ever see a marker.
not "you hand it the conflict."
not even know a conflict occurred, which is why the post-merge
git diffis the safeguard."reword from "Git stops, read the markers" to "see a conflict at least once, then verify the
AI's resolution even when it is invisible."
modules/06-branches-sandboxes-for-experiments/lab/make-conflict.sh: already manufactures areal conflict and leaves it mid-merge with both manual and agent instructions, so it still
works as the deterministic fallback. Light touch only: its on-screen guidance (lines ~74-80)
could add "look at the markers yourself before handing it to the agent." Do not change its
mechanic.
blog/07-branches-sandboxes.md(sibling surface, lines ~124-158): the public blog mirrors thesame conflict section and shows
git merge feature/statsby hand. Update it to match themodule's new framing so the two do not drift.
Recommended approach
Rework Part C step 3 onward into a three-beat sequence:
ways; pick one and keep the voice:
conflict and show it, not resolve it ("merge
feature/statsintofeature/purge; if itconflicts, stop and show me the conflict, do not resolve it yet"). This idiom is already
used and proven in Module 26 (
README.mdstep ~370-385: "stop on the first conflictinstead of resolving it").
git merge feature/statsby hand once to see Git stop. Acceptable because Part C already has thelearner run verification commands by hand, but it must be framed explicitly as a one-time
"see the machine" step, not a regression to manual git (see stop-lines).
git merge --abortrewinds to before the merge (already documented at line ~190).feature/statsintofeature/purge" with no stop-on-conflict guard, and watch it auto-resolve in one turn with nomarkers shown. Then make the verify the punchline:
git diff/ run the app to confirm theinvisible resolution is correct (here, the usage string lists both
statsandpurge).Land the takeaway in prose: the skill is no longer "resolve markers by hand"; it is "know a
conflict happened and check the AI's silent resolution." Keep the existing
stats/purgefictionand the
make-conflict.shfallback intact.Target surface(s)
Course content (Markdown). The Module 6 README is the deliverable; the blog mirror and the
make-conflict.sh on-screen text are required follow-ons for consistency. No application/code logic
changes to
tasks-app.Acceptance criteria / how to verify
This repo has no prose test suite; CI only syncs the wiki (
.gitea/workflows/sync-wiki.yml).Verify by:
tasks-app: buildfeature/statsandfeature/purge,confirm the new step makes the conflict visible at least once (markers appear), confirm
git merge --abortcleans it, then confirm a plain "merge them" instruction to an editor-agentauto-resolves with no markers surfaced and
git diffshows the merged usage string.bash make-conflict.shleaves a real conflict.grep -n '—'returns nothing in everychanged file (no em-dash), and no banned words are introduced (prose, delve, leverage, utilize,
robust, comprehensive, seamless, streamline, etc.).
the Where-it-breaks bullet, and Check-for-understanding all agree with the new Part C flow; the
blog section tells the same story.
cp ... make-conflict.shpath, modulecross-references).
Stop-lines (do not cross)
the agent and verifies; modules must not tell them to type git by hand as the norm. If you use
the by-hand
git mergewitness, justify it inline as a deliberate one-time "see the machine"step (mirrors how Modules 1-3 teach mechanics by hand on purpose). Preferred path avoids this by
using the agent's stop-on-conflict idiom.
tasks-appcode or invent new real commands;stats/purgestay fictionalusage-string edits, and the collision mechanic stays "two branches edit the same usage line."
stop-on-conflict idiom; reuse its pattern, do not duplicate or move it).
execution stays in the lab.
🤖 autopilot review gate: VETOED — a human needs to take this.
ineligible: no autopilot.repo config declaring deploy/build/testFix the issue (or merge by hand if it's a false positive), then remove
needs-humanto hand it back to autopilot.