4. Run `./REBASE.sh` to verify the chain is consistent.
5. Run `./PUSH.sh` to publish.
+## Manual Rebasing Workflow
+
+The `REBASE.sh` script automates rebasing in principle, but in practice conflicts arise frequently because branches intentionally differ — they demonstrate different aspects of Kafka. Claude Code takes over the role of the human who previously had to intervene manually.
+
+### Conflict Resolution Approach
+
+**Resolve silently** (no user confirmation needed) when the resolution is straightforward and follows directly from the goals of the exercise branch.
+
+**Stop and propose** when:
+- A conflict hints at an unintentional divergence — something that was improved in one branch but never backported due to time constraints
+- Improvements from later branches (e.g. test cases, structural cleanups) could sensibly be applied to earlier branches
+- There is an opportunity to align branches in a way that reduces future rebase conflicts
+
+In these cases: show the problem, explain why it matters, and make a concrete proposal — don't just ask an open question.
+
+### General Principles
+
+- Work branch by branch in the order defined in `BRANCHES.sh`
+- Distinguish between **intentional** differences (different teaching goals) and **accidental** differences (time pressure, forgotten backports)
+- Suggest backporting improvements from later to earlier branches where it makes sense
+- After rebasing, always return to the `scripting` branch
+
## Key Constraints
- `PUSH.sh` force-pushes — it is intentional and expected for this training workflow.