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.
Find a file
tegwick 71c17fb5f9 MAS-WP-0014 T01: independent JS email side for mode contract v0.1; MCP-1..6; flow a-008
impl/js/src/email.mjs (written from CONTRACT.md + FLOWS.md): both roles,
case store, handoffs, timeouts, one-cap outbox with holding, authorization.
Passes all 22 flows from the bundle; with the JS master all 12 slave
flows (no Python contract party). Writing it found six contract gaps,
folded into the draft as MCP-1..6 (acknowledgement, details convention,
resume names the outcome, opaque case key, error table, transfer
reporting); flows now check outcome tokens, not reference prose. A
mutation check found a missing flow: a-008 (per-type master check).

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 13:56:53 +02:00
deploy/railiance MAS-WP-0012 finished: one outbound path and one send cap 2026-10-19 12:44:16 +02:00
docs MAS-WP-0014 T01: independent JS email side for mode contract v0.1; MCP-1..6; flow a-008 2026-10-19 13:56:53 +02:00
examples MAS-WP-0012 finished: one outbound path and one send cap 2026-10-19 12:44:16 +02:00
experiments/postfix-probe MAS-WP-0004: Postfix integration profile, corpus probe in pytest, Exim notes 2026-10-19 09:25:03 +02:00
history Live MX redeployed (mas-live:v0.2-a95f848) and kept by founder decision; records updated 2026-10-19 11:15:12 +02:00
impl/js MAS-WP-0014 T01: independent JS email side for mode contract v0.1; MCP-1..6; flow a-008 2026-10-19 13:56:53 +02:00
integrations MAS-WP-0004: Postfix integration profile, corpus probe in pytest, Exim notes 2026-10-19 09:25:03 +02:00
mas-modes-v0.1-spec MAS-WP-0014 T01: independent JS email side for mode contract v0.1; MCP-1..6; flow a-008 2026-10-19 13:56:53 +02:00
mas-v0.1-spec MAS-WP-0005-T02: SCP-5 and SCP-7 spec text; v0.1.1 errata complete 2026-10-18 18:18:59 +02:00
mas-v0.2-spec MAS v0.2 final (MAS-WP-0009 finished); residual MAS-WP-0014 2026-10-19 13:35:10 +02:00
mas_cli MAS-WP-0010 finished: email slave role, stub outside master, contract flows, SCP-8 2026-10-19 11:03:16 +02:00
mas_conformance MAS v0.2 final (MAS-WP-0009 finished); residual MAS-WP-0014 2026-10-19 13:35:10 +02:00
mas_core MAS v0.2 final (MAS-WP-0009 finished); residual MAS-WP-0014 2026-10-19 13:35:10 +02:00
mas_gateway MAS-WP-0011 finished: peer authentication in mode contract v0.1 2026-10-19 11:25:24 +02:00
mas_modes MAS-WP-0014 T01: independent JS email side for mode contract v0.1; MCP-1..6; flow a-008 2026-10-19 13:56:53 +02:00
tests MAS-WP-0014 T01: independent JS email side for mode contract v0.1; MCP-1..6; flow a-008 2026-10-19 13:56:53 +02:00
workplans MAS-WP-0014 T01: independent JS email side for mode contract v0.1; MCP-1..6; flow a-008 2026-10-19 13:56:53 +02:00
.custodian-brief.md chore(consistency): sync task status from DB [auto] 2026-10-08 00:51:39 +02:00
.gitignore Register with State Hub; add MAS v0.1 spec bundle, intent and reference-experiment workplan 2026-10-08 00:14:14 +02:00
AGENTS.md AGENTS.md: align purpose and spec-bundle notes with INTENT/SCOPE phase 2 2026-10-19 10:12:16 +02:00
INTENT.md INTENT/SCOPE: mode reference implementation (handoff semantics for P2, email master/slave roles, callback stub, reuse surface) 2026-10-19 10:35:56 +02:00
pyproject.toml MAS v0.2 final (MAS-WP-0009 finished); residual MAS-WP-0014 2026-10-19 13:35:10 +02:00
README.md MAS-WP-0010 finished: email slave role, stub outside master, contract flows, SCP-8 2026-10-19 11:03:16 +02:00
SCOPE.md Live MX redeployed with mas-live:v0.2-480e69a (one outbound path, v0.2 final); cap counter migrated 4/300 2026-10-19 13:37:09 +02:00
WORK-RECORDS.md Refresh work records after sync 2026-10-08 01:08:20 +02:00

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