Start with the three-layer boundary
CommunicationSpec and CommunicationRuntime define the protocol, journal, projections and authority behavior. ModuleCommunicationOS provides reusable product UI. Apps and bundles choose deployment, identity, transport and provider configuration. This makes the communication hub usable both inside another product and as a standalone host. Select the package by the job you are doing, then follow the host-specific binding; importing the visual module alone does not connect a live account or create a durable delivery system.
Keep journal truth separate from external delivery
The runtime maintains scope-isolated append-only journal behavior and deterministic projections. Typed provider ingestion can retain non-message events as their own journal records instead of fabricating messages. Send checks apply to the current human, agent or system principal. The documented default remains legacy_draft_only; membership_grants mode requires current membership and auditable, revocable grants from the host. Inspect delivery intent, eligibility, queue acceptance and retry evidence as separate transitions so the product can explain whether a message was drafted, accepted or actually delivered.
Choose honest UI data modes
The communication landing surface accepts an explicit dataMode. Deterministic examples keep preview behavior, while authenticated managed routes use live projections. Live mode derives counts from the supplied workspace projection and removes synthetic-data disclosure. Keep the same distinction in a new host: a preview should teach the interaction, while a live screen must reflect the selected workspace and current authority. Capability-gated actions, pending outbox work and meeting threads should remain inspectable from the interface.
Follow a practical path.
Trace one inbound item
Follow the provider event through normalization, scope validation and append-only journal storage into the room/space projection. Inspect whether a non-message event retains its correct kind and evidence.
Trace one outbound draft
Identify the principal, room membership, grant and selected channel. Follow the transition through current send checks, provider queue acceptance and delivery evidence, including an ambiguous or retried outcome.
Embed the appropriate surface
Choose the reusable module route or slot and supply the host’s actual projection and data mode. Review denied membership, disconnected channel and pending delivery states before treating the resulting screen as a live communication workflow.