"Borrow the grammar. Never borrow the database. Integration is not absorption."
The Rule Under Every Reuse
Every reuse in this track rests on one sentence: integration never transfers ownership. Waystone integrates deeply with Pippa, Rekindle, Recall, and Lantern — and after all that integration, each of those siblings still owns exactly what it owned before. Reuse carries forward the already-learned contract while the canonical owner stays canonical. The failure mode has a name: absorption, where "we integrated with X" quietly becomes "we now keep X's data" or "we copied X's code and it's ours now."
The Cleanest Example: Grammar Without Storage
Waystone's breadcrumb stream is inspired by the family's existing social-style stream. It reuses the interaction grammar — a compact composer, short posts in a scannable timeline, replies for follow-up fragments, threads, media previews, draft preservation. But it assigns its own travel semantics: a post is a Breadcrumb, a reply is another fragment of the same developing moment, a thread is a candidate event cluster (not a social conversation), a pin becomes Important Moment. And here is the crucial half: it inherits none of the stream's emotion, visibility, moderation, likes, public authorship, or storage. Waystone reuses the shape and keeps its own data at home. That is the whole distinction in one feature.
Extract Is Allowed; Clone Is Not
There is a legitimate middle path: if two siblings genuinely need the same UI primitive, refactor it into an actually generic shared piece with an explicit owner. That is Extract on the ledger, and it is healthy. What is forbidden is the lazy version — copy the implementation into your repo and edit it locally. That produces a fork with no owner, and it drifts the day either side improves. The cost of doing it properly is absorbed by the sibling that needs the capability, not pushed onto the sibling that owns it. Reuse is only reuse if, afterward, there is still exactly one canonical implementation of the thing.