mail-address-semantics/README.md
tegwick 87be0d1da3 MAS-WP-0010 finished: email slave role, stub outside master, contract flows, SCP-8
- EmailMode slave role: master-issued case ids, events to the master,
  sends only on instruction or autonomous policy, transfers blocked or to
  a primed webhook, timeouts left to the master; principle 10 refusals
  reported back.
- conformance/flows.json (13 flows) + mas_modes.runner; mas test runs the
  mode corpus (172/172).
- SCP-8 / v0.2 section 7.1: !MODE requests a handoff defined by the mode
  contract. docs/reuse-surface.md.
- Deploy image copies mas_modes (ticket service imports its mailer).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 5787@bnt-lap001
Assistant-Session: 5db26b82-138b-40cc-9856-4d5eb0f752fd
2026-10-19 11:03:16 +02:00

2.6 KiB

mail-address-semantics

Mail Address Semantics is a voluntary convention for naming people, actors and functions, and for addressing resources, facets, and optional interaction preferences through ordinary email addresses while keeping classification, authority, authentication, equivalence, and delivery implementation explicit and external to the address syntax.

This repo holds the normative MAS v0.1 bundle (mas-v0.1-spec/) and a Python reference experiment (see INTENT.md and workplans/MAS-WP-0002-*).

Parsing is local and deterministic. Discovery is networked. Policy is pure. Delivery remains external.

Layout

Path Role
mas_core/ parser, model, generator, statute (schema + semantic lint + inheritance), discovery, policy
mas_conformance/ Shared corpus: spec fixtures (vendored, drift-tested), property cases, statute cases
mas_cli/ mas parse / explain / discover / compose / lint-statute / test
mas_gateway/ Generic inbound mail → MAS event → HTTP (pipe for MTAs, webhook for providers)
mas_modes/ Mode contract v0.1: email side as master or slave (email_mode), callback stub, stub outside master, flow runner
mas-modes-v0.1-spec/ Mode contract bundle: CONTRACT.md, schemas (contract + gateway event), conformance flows
examples/statute/ Static /.well-known/mas for great-service.example + tiny server
examples/ticket_service/ Reference app proving create / correlate / closed / unknown
docs/experiment-review.md Milestone 9 findings
docs/reuse-surface.md What a multimodal framework can depend on

Quick start

uv venv && uv pip install -e '.[test]'
.venv/bin/pytest                       # full suite, offline (Postfix probe needs Docker)
.venv/bin/mas test                     # conformance corpus
.venv/bin/mas explain 'ticket!callback@great-service.example' \
    --statute examples/statute/great-service.example/.well-known/mas
.venv/bin/mas lint-statute examples/statute/great-service.example/.well-known/mas
.venv/bin/mas compose mas.coulomb.social ticket=GS-1 --facet comments --for google-groups \
    --statute examples/statute/mas.coulomb.social/.well-known/mas   # canonical + forwarder-safe

Local end-to-end run:

python examples/ticket_service/ticket_service.py --db /tmp/t.sqlite3 &        # :8025
mas-gateway --statute examples/statute/great-service.example/.well-known/mas \
    pipe --recipient 'ticket!callback@great-service.example' \
    --app-url http://127.0.0.1:8025/mas-events < message.eml
curl -s http://127.0.0.1:8025/outbox