"Embed the conversation; do not duplicate the conversational self."
Separate need from ownership
A Sidekick inside Inkwell may discuss a passage, help shape keywords, or explain a review note. It is still a surface onto a cwkPippa conversation, not a miniature assistant with separate memory.
Shape the crossing
Persist the canonical conversation id and place it in the Inkwell folder owned by cwkPippa. The UI renders and sends through that binding. Product context may be attached explicitly; conversation history remains with its owner.
The duplication temptation
A local messages table quietly forks history. A generic chat without a bound conversation loses continuity. Reusing an id across unrelated entries can leak context, so the binding and scope need explicit rules.
Let requests and references cross
Audit “Sidekick Binds a Conversation” beyond code imports. Trace which request reaches which owner, whether the result is a value or managed reference, and who explains failure and retry. Credentials, canonical history, or a voice catalog copied into Inkwell are a second system, not a convenient integration.
Write the boundary table
Specify when an entry reuses a conversation and when it must start a new bound conversation. Include timeout, stale output, sibling unavailability, and schema mismatch. Any blank where both sides assume the other will act is the owner of the next incident.
Owning less makes the product more itself
Inkwell's identity is not another brain or voice engine. It composes original-first flow, penless review, handwriting UX, and late-result landing into one experience. Boundaries are features that make that composition possible.