Map a MAS gateway event into the email-connect evidence ceiling.
mas-email-evidence 0.1 reports MX acceptance, a bounce, or a reply, and refuses the claim that a person read the message. Ordinary product mail stays in email-connect. A product speaks the mode contract. Assistant: grok Assistant-Session: 01a198fa-fd27-7e41-a0a2-57355c3e4efd
This commit is contained in:
parent
f18eb0b8df
commit
aef4c5dd71
5 changed files with 271 additions and 2 deletions
69
docs/mas-email-evidence-v0.1.json
Normal file
69
docs/mas-email-evidence-v0.1.json
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
{
|
||||
"contract": "mas-email-evidence",
|
||||
"version": "0.1",
|
||||
"source": "mas-gateway",
|
||||
"owner": "mail-address-semantics",
|
||||
"consumer": "email-connect",
|
||||
"statement": "A MAS gateway event is a channel fact from the MAS MX. This mapping reports MX acceptance, a bounce, or a reply. It does not claim that a person read the message, opened a payload, or satisfied a business result. Tickets, statutes, and templates stay outside this contract.",
|
||||
"evidence_ceiling": {
|
||||
"max_positive_event": "interaction.reply_received",
|
||||
"max_positive_strength": "medium",
|
||||
"can_prove_human_awareness": false,
|
||||
"can_prove_payload_access": false,
|
||||
"can_prove_payload_delivery": false,
|
||||
"can_prove_identity": false,
|
||||
"can_prove_authority": false,
|
||||
"can_prove_non_repudiation": false
|
||||
},
|
||||
"outcomes": {
|
||||
"parse_failed": {
|
||||
"event_type": "diagnostic.message.parse_failed",
|
||||
"assessment_category": "undef",
|
||||
"assessment_subclass": "undef.parse_failed",
|
||||
"evidence_strength": "none",
|
||||
"normalized_meaning": "The value is not a MAS gateway event v0.1. No acceptance, bounce, or reply is claimed."
|
||||
},
|
||||
"bounced_permanent": {
|
||||
"event_type": "notification.endpoint.rejected_permanent",
|
||||
"assessment_category": "fail",
|
||||
"assessment_subclass": "fail.hard_bounce",
|
||||
"evidence_strength": "negative",
|
||||
"normalized_meaning": "The message accepted by the MAS MX is a permanent delivery failure for an earlier message. That is not evidence about a person."
|
||||
},
|
||||
"bounced_temporary": {
|
||||
"event_type": "notification.endpoint.rejected_temporary",
|
||||
"assessment_category": "undef",
|
||||
"assessment_subclass": "undef.deferred",
|
||||
"evidence_strength": "ambiguous",
|
||||
"normalized_meaning": "The message accepted by the MAS MX is a temporary delivery failure. Later evidence can change this."
|
||||
},
|
||||
"bounce_unclassified": {
|
||||
"event_type": "notification.endpoint.unknown",
|
||||
"assessment_category": "undef",
|
||||
"assessment_subclass": "undef.conflicting_evidence",
|
||||
"evidence_strength": "ambiguous",
|
||||
"normalized_meaning": "The message looks like a delivery report, and the permanent or temporary result is not reliable."
|
||||
},
|
||||
"out_of_office": {
|
||||
"event_type": "interaction.out_of_office_received",
|
||||
"assessment_category": "undef",
|
||||
"assessment_subclass": "undef.out_of_office",
|
||||
"evidence_strength": "weak",
|
||||
"normalized_meaning": "An automatic reply was accepted by the MAS MX. It is not a human reply and it does not show that a person read the earlier message."
|
||||
},
|
||||
"reply_received": {
|
||||
"event_type": "interaction.reply_received",
|
||||
"assessment_category": "success",
|
||||
"assessment_subclass": "success.reply_received",
|
||||
"evidence_strength": "medium",
|
||||
"normalized_meaning": "A non-automatic reply was accepted by the MAS MX. A reply does not prove who read the earlier message or that a request was accepted."
|
||||
},
|
||||
"mx_accepted": {
|
||||
"event_type": "notification.endpoint.accepted",
|
||||
"assessment_category": "undef",
|
||||
"assessment_subclass": "undef.endpoint_accepted_only",
|
||||
"evidence_strength": "weak",
|
||||
"normalized_meaning": "The MAS MX accepted this message for the recipient. Acceptance is not inbox placement and not human reading."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -45,6 +45,17 @@ that handoff (it carries a per-handoff token), with an increasing `seq`.
|
|||
Never send `timed-out`.
|
||||
`mas_modes/stubs/callback.py` is a complete example.
|
||||
|
||||
## Ordinary product mail stays in email-connect
|
||||
|
||||
A product integrates with this facility by speaking the mode contract. It
|
||||
does not send MAS syntax through the email-connect transactional receiver.
|
||||
`docs/mas-email-evidence-v0.1.json` maps one gateway event into
|
||||
email-connect's evidence ceiling: the MX accepted the message, the message
|
||||
is a bounce, or the message is a non-automatic reply. The ceiling refuses
|
||||
the claim that a person read it. `mas_gateway.email_evidence` is the
|
||||
reference function. Tickets and statutes stay here. Templates and the
|
||||
product ledger stay in email-connect.
|
||||
|
||||
## Examples only, not products
|
||||
|
||||
- `examples/ticket_service/`: the reference ticket service, used as the
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue