mail-address-semantics/README.md
tegwick 499ddce015 MAS-WP-0006: mas compose (canonical + forwarder-safe address)
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 09:27:31 +02:00

43 lines
2.3 KiB
Markdown

# 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) |
| `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 |
## Quick start
```bash
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:
```bash
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
```