This chapter defines semantic operations, outbound delivery, execution decomposition, context resolution, and response contracts.
This is the missing interoperability layer most systems ignore.
Without it, two implementations may share identity, auth, D2D, and trust but still fail to behave similarly from the user's point of view.
The Interaction Contract layer standardizes:
The protocol SHOULD standardize semantic operation types, not command spellings.
The registry itself is already part of the protocol design. The remaining 1.0 work is to freeze:
Implementations SHOULD advertise their supported semantic operations through the capability discovery layer rather than forcing remote peers to infer them from product-specific UI or command names.
Recommended primary semantic operations are:
remember_contextanswer_nowpropose_plancommunicate_personrequest_servicedelegate_taskwatch_conditionControl operations:
approve_operationinspect_statusmodify_existingcancel_operationrecover_operationResource operations:
manage_contactmanage_configmanage_devicemanage_sessioninspect_auditTrust operations:
query_trustpublish_reviewpublish_vouchpublish_flagOutbound delivery operations:
deliver_briefingdeliver_alertdeliver_updatedeliver_completiondeliver_failurerequest_clarificationescalate_attentionThese are protocol semantics, not command names.
One implementation might expose:
/ask/plan/send/requestAnother might expose:
/query/advise/message/serviceAnother might expose no slash commands at all and use only buttons, forms, or plain language.
All of them remain interoperable if they preserve the same semantic contracts.
The interaction protocol is not only human -> Dina.
It must also standardize when Dina speaks to the human without a fresh inbound command.
At minimum, a conforming implementation SHOULD support these proactive delivery semantics:
deliver_briefing: aggregated, priority-ranked summarydeliver_alert: immediate fiduciary or harm-preventing noticedeliver_update: non-terminal progress or state changedeliver_completion: solicited work reached a useful terminal pointdeliver_failure: solicited work failed or became invalidrequest_clarification: Dina cannot proceed safely without more inputescalate_attention: a previously lower-priority item now requires interruptionThese are semantic contracts, not UI prescriptions.
One implementation may show a push notification.
Another may add a notification center item.
Another may surface the item only in a daily briefing.
The current Dina reference product maps its external command surface approximately as follows:
/remember -> remember_context/ask -> answer_now/plan -> propose_plan/send -> communicate_person/request -> request_service/task -> delegate_task/watch -> watch_condition/approve -> approve_operation/status -> inspect_status/edit -> modify_existing/cancel -> cancel_operation/recover -> recover_operationResource examples:
/contact ... -> manage_contact/config ... -> manage_config/device ... -> manage_device/session ... -> manage_session/audit ... -> inspect_auditTrust examples:
/trust -> query_trust/review -> publish_review/vouch -> publish_vouch/flag -> publish_flagThis mapping is explicitly non-normative.
This is the key interaction rule:
Examples:
answer_now operation may internally decompose into answer_now + request_service + propose_plan + context_resolutionpropose_plan operation may internally decompose into answer_now + compare + synthesizedelegate_task operation may internally decompose into propose_plan + answer_now + request_service + watch_conditionwatch_condition operation may internally decompose into request_service + subscribe + status_trackingThis rule is required to handle real scenarios such as:
The protocol SHOULD model interactions as frames, not isolated stateless turns.
An interaction frame SHOULD carry at least:
Follow-up turns SHOULD remain within the existing outer contract unless the user clearly pivots.
Examples:
The interaction protocol SHOULD distinguish:
This distinction matters because:
communicate_person is different from request_serviceThe interaction protocol SHOULD treat persona scope as part of routing, not merely storage.
At minimum, a conforming implementation SHOULD evaluate:
This is necessary for interoperable governance because:
Before fulfillment, a Dina-compatible implementation SHOULD resolve:
This is what allows phrases like:
to become structured interoperable requests.
The interaction protocol SHOULD also standardize how work completion and failure are surfaced back to the human.
At minimum, implementations should distinguish:
This is the outbound half of Silence First.
The response layer SHOULD support a portable envelope with a small, typed set of response kinds:
summarylisttablecomparisonstatuserrorrawThis is not just UI polish. It is part of protocol interoperability because agents, Dinas, bridges, and clients need a stable result contract.
At minimum, the response envelope SHOULD freeze these core fields:
schema_versiontypetitletextdatametaThe response layer SHOULD also remain explicitly extensible. A conforming envelope MAY include:
annotationsdisclosuresextensionsThis is important because different Dina-compatible ecosystems may allow different downstream behaviors while still remaining interoperable.
Examples:
The protocol should require that such additions be explicit and machine-readable rather than hidden inside arbitrary text.
A draft machine-readable schema for this contract lives in:
schemas/response-envelope.jsonImplementations SHOULD advertise supported response kinds, envelope versions, and extension namespaces through the capability discovery layer.
Email, chat apps, and provider APIs remain important, but they are not the same thing as Dina-to-Dina communication.
The interaction protocol therefore distinguishes:
This preserves the qualitative difference between:
without requiring every implementation to expose those differences through the same UI.