generated from coulomb/repo-seed
feat: start mailbox evidence scanner
This commit is contained in:
48
docs/email-evidence-canon.md
Normal file
48
docs/email-evidence-canon.md
Normal file
@@ -0,0 +1,48 @@
|
||||
# Email Evidence Canon
|
||||
|
||||
## Rule
|
||||
|
||||
Email events are evidence, not result satisfaction.
|
||||
|
||||
The scanner reports email-channel facts and uncertainty. A downstream
|
||||
coordination runtime decides whether those facts satisfy a coordination case.
|
||||
|
||||
## Initial Message Classes
|
||||
|
||||
- `hard_bounce`
|
||||
- `soft_bounce`
|
||||
- `delayed_delivery_notice`
|
||||
- `final_delivery_failure`
|
||||
- `out_of_office`
|
||||
- `human_reply`
|
||||
- `complaint_or_abuse`
|
||||
- `unsubscribe_or_opt_out`
|
||||
- `challenge_response`
|
||||
- `unknown_return_message`
|
||||
- `unrelated_message`
|
||||
- `parse_failed`
|
||||
|
||||
## Initial Normalized Events
|
||||
|
||||
| Message class | Normalized event | Assessment |
|
||||
| --- | --- | --- |
|
||||
| `hard_bounce` | `notification.endpoint.rejected_permanent` | `fail.hard_bounce` |
|
||||
| `soft_bounce` | `notification.endpoint.rejected_temporary` | `undef.deferred` |
|
||||
| `delayed_delivery_notice` | `notification.endpoint.deferred` | `undef.deferred` |
|
||||
| `final_delivery_failure` | `notification.endpoint.rejected_permanent` | `fail.expired_without_delivery` |
|
||||
| `out_of_office` | `interaction.out_of_office_received` | `undef.out_of_office` |
|
||||
| `human_reply` | `interaction.reply_received` | `success.reply_received` |
|
||||
| `complaint_or_abuse` | `notification.channel.complaint_received` | `fail.complaint_received` |
|
||||
| `unsubscribe_or_opt_out` | `notification.channel.unsubscribe_received` | `fail.unsubscribed` |
|
||||
| `unknown_return_message` | `notification.endpoint.unknown` | `undef.conflicting_evidence` |
|
||||
| `challenge_response` | `interaction.unverified_actor_interaction` | `undef.identity_uncertain` |
|
||||
|
||||
## Overclaim Prevention
|
||||
|
||||
- No bounce found does not mean delivery success.
|
||||
- Provider acceptance does not mean endpoint acceptance.
|
||||
- Endpoint acceptance does not mean inbox placement.
|
||||
- Out-of-office does not prove recipient awareness or action.
|
||||
- Human reply does not prove legal acceptance.
|
||||
- Unknown return messages remain visible.
|
||||
- Scanner and proxy interactions must stay below identity-bound interaction.
|
||||
Reference in New Issue
Block a user