Keeping Merges Clean
The seam discipline that keeps an update from conflicting with your product code.
A kit update merges cleanly or it doesn't, almost entirely based on decisions you made while building your product, not decisions the kit's authors made while shipping the update. Three habits keep the merge painless.
Don't edit the plumbing in place
Extend through the documented seams instead of modifying kit files directly: add a new integration
in app/adapters/, add a new feature by copying the example slice's shape rather than editing it,
add configuration rather than rewriting an initializer's internals. A kit file you never touched
merges cleanly by definition; there's nothing for git to reconcile. See
The Adapter+Fake Pattern and
Adding a Resource for the seams themselves.
Keep your product code in clearly separate files
Your own models, controllers, and views, living in files the kit itself never touches, rarely conflict with an incoming update no matter how much the kit changes elsewhere. The risk isn't in adding new files; it's in editing shared ones.
Expect conflicts to concentrate in files you customized
The landing page, the design tokens, app_identity.rb: these are exactly the files
Making It Yours told you to edit, and they're also the
files most likely to see a conflict on a future merge, since both you and a kit update might touch
the same lines. That's expected, not a sign something went wrong. Resolve those by hand, favoring
your own product-specific values, and the rest of the merge fast-forwards without any intervention.
Next
See where kit changes are actually documented: Release Notes.