2026-10-08 00:14:14 +02:00
|
|
|
# SCOPE
|
|
|
|
|
|
|
|
|
|
## One-liner
|
|
|
|
|
|
2026-10-19 09:46:27 +02:00
|
|
|
Reference implementation and spec workbench for Mail Address Semantics
|
2026-10-19 11:08:27 +02:00
|
|
|
(MAS), and the email building block for a future multimodal communication
|
|
|
|
|
framework. Contents: parser, statute discovery, pure policy, generator,
|
|
|
|
|
CLI, mail gateway, reference ticket service, a tested Postfix integration
|
|
|
|
|
profile, and the mode contract with an email side that works as master or
|
2026-10-19 13:35:10 +02:00
|
|
|
slave. It implements address spec v0.1.1 and v0.2 (final), and mode
|
|
|
|
|
contract v0.1 (draft). A second, independent implementation in
|
|
|
|
|
JavaScript (`impl/js/`) validates v0.2 and the master side of the mode
|
|
|
|
|
contract.
|
2026-10-08 00:14:14 +02:00
|
|
|
|
|
|
|
|
## Core Idea
|
|
|
|
|
|
2026-10-19 09:46:27 +02:00
|
|
|
Test whether ordinary email addresses can carry limited, parseable
|
|
|
|
|
semantics (opaque targets, `type=id` resources, `+` facets, `!`
|
|
|
|
|
interaction preferences) through real mail infrastructure, without
|
|
|
|
|
changing SMTP and without making addresses credentials or commands
|
|
|
|
|
(INTENT.md). The architectural boundary is fixed: the parser does no I/O,
|
|
|
|
|
policy is pure, only `mas_core/discovery.py` touches the network, and
|
|
|
|
|
delivery stays external.
|
2026-10-08 00:14:14 +02:00
|
|
|
|
|
|
|
|
## In Scope
|
|
|
|
|
|
2026-10-19 09:46:27 +02:00
|
|
|
- **Normative bundles.** `mas-v0.1-spec/` (v0.1.1 errata) and
|
2026-10-19 13:35:10 +02:00
|
|
|
`mas-v0.2-spec/` (final 2026-10-19: stand-ins, destination transforms,
|
2026-10-19 09:46:27 +02:00
|
|
|
`resource_id_case`). Spec changes go through
|
|
|
|
|
`docs/spec-change-proposals.md`.
|
2026-10-19 13:35:10 +02:00
|
|
|
- **`impl/js/`.** The second implementation: parser, statute-aware rules,
|
|
|
|
|
signing, outside master. Zero dependencies; `tests/test_js_impl.py` and
|
|
|
|
|
the differential test `tests/test_differential.py` run it when Node is
|
|
|
|
|
available.
|
2026-10-19 09:46:27 +02:00
|
|
|
- **`mas_core`.** Parser, model, statute validation and lint, exact-host
|
|
|
|
|
discovery with explicit `inherits`, policy, and the generator with v0.2
|
|
|
|
|
destination transforms.
|
|
|
|
|
- **`mas_conformance`.** Address, property, statute and v0.2
|
|
|
|
|
statute-aware corpora, vendored unchanged from the bundles and checked
|
|
|
|
|
for drift.
|
|
|
|
|
- **`mas` CLI.** `parse`, `explain`, `discover`, `compose`,
|
|
|
|
|
`lint-statute`, `test`.
|
|
|
|
|
- **`mas_gateway`.** MTA `pipe` and provider-style `webhook` to a
|
|
|
|
|
normalized HTTP event. It reads sender authentication only from trusted
|
|
|
|
|
`Authentication-Results`.
|
|
|
|
|
- **Examples.** A static statute and the reference ticket service: create,
|
|
|
|
|
correlate by address, closed lifecycle, quarantine, a DMARC-gated reply,
|
|
|
|
|
and a lifetime send cap.
|
|
|
|
|
- **MTA integration.** `integrations/postfix/` (profile plus README),
|
|
|
|
|
tested against a real Postfix by `experiments/postfix-probe/` and
|
|
|
|
|
`tests/test_postfix_profile.py` (needs Docker). Exim: notes only
|
|
|
|
|
(`integrations/exim/NOTES.md`).
|
2026-10-19 11:03:16 +02:00
|
|
|
- **Mode reference implementation** (INTENT.md, *Mode reference
|
|
|
|
|
implementation*). `mas-modes-v0.1-spec/` is a language-neutral contract
|
|
|
|
|
(handoffs, statuses, timeouts, master/slave roles, outside-master
|
|
|
|
|
commands) with JSON schemas, including the gateway event, and
|
|
|
|
|
conformance flows. `mas_modes/` holds the email side in both roles
|
|
|
|
|
(master per resource type over the ticket service, or slave to an
|
|
|
|
|
outside master that issues case ids), a scripted callback stub, a stub
|
|
|
|
|
outside master and the flow runner. Email is the only real channel. See
|
|
|
|
|
`docs/reuse-surface.md`.
|
2026-10-19 09:46:27 +02:00
|
|
|
- **Live test environment.** `deploy/railiance/`: the MX for
|
|
|
|
|
`mas.coulomb.social`, with replies through Scaleway TEM capped at 300.
|
|
|
|
|
It is temporary; MAS-WP-0007 retires it.
|
2026-10-08 00:14:14 +02:00
|
|
|
|
|
|
|
|
## Out of Scope
|
|
|
|
|
|
2026-10-19 10:35:56 +02:00
|
|
|
- Real non-email modes (telephony, chat, SMS, video), connectors to real
|
|
|
|
|
CMS or ticketing products, and the multimodal framework itself. Other
|
|
|
|
|
modes exist here only as contract-speaking test stubs.
|
2026-10-19 13:35:10 +02:00
|
|
|
- Further language implementations beyond `impl/js/`, and `impl/js/` as
|
|
|
|
|
a published package.
|
2026-10-19 09:46:27 +02:00
|
|
|
- Postfix policy daemon, Exim profile (until there is demand), mail-client
|
|
|
|
|
plugins and inspectors, browser extensions, a web composer.
|
|
|
|
|
- Central MAS registry, signed statutes, implicit parent-domain
|
|
|
|
|
inheritance, production identity federation.
|
|
|
|
|
- P3 economic semantics: `$` and `^` stay reserved. Also payments,
|
|
|
|
|
signatures and marketplaces.
|
|
|
|
|
- Application business logic in the gateway. Production ticketing. Sender
|
|
|
|
|
policy beyond what the reference service needs to avoid backscatter.
|
|
|
|
|
- Irreversible operational actions (cluster teardown, key revocation,
|
|
|
|
|
redeploys) without founder approval.
|
2026-10-08 00:14:14 +02:00
|
|
|
|
|
|
|
|
## Current State
|
|
|
|
|
|
2026-10-19 09:46:27 +02:00
|
|
|
- Status: active. The reference experiment (MAS-WP-0002) passed its
|
|
|
|
|
decision gate on 2026-10-18; the findings are in
|
|
|
|
|
`docs/experiment-review.md`.
|
2026-10-19 13:35:10 +02:00
|
|
|
- Finished: MAS-WP-0001 to 0006 and 0008 to 0013. That covers v0.2,
|
|
|
|
|
which is final; the mode contract with authentication, one outbound
|
|
|
|
|
path and harness-independent flows; and the second implementation. Postfix profile, v0.1.1
|
2026-10-19 11:08:27 +02:00
|
|
|
errata, v0.2 draft, address composer, v0.2 conformance cases, and the
|
|
|
|
|
mode contract with its reference implementation.
|
2026-10-19 13:35:10 +02:00
|
|
|
- Open: MAS-WP-0007 (retire the live MX; backlog, kept by decision) and
|
|
|
|
|
MAS-WP-0014 (finalize mode contract v0.1; waits for an independent email
|
|
|
|
|
side).
|
|
|
|
|
- v0.2 is final (founder, 2026-10-19, after MAS-WP-0009). Mode contract
|
|
|
|
|
v0.1 stays a draft.
|
2026-10-19 11:03:16 +02:00
|
|
|
- P2 is decided: `!MODE` requests a handoff (founder, 2026-10-19; SCP-8,
|
|
|
|
|
v0.2 §7.1). The mode contract v0.1 draft and the reference
|
|
|
|
|
implementation are done (MAS-WP-0010); `mas test` runs the contract
|
|
|
|
|
corpus.
|
2026-10-19 11:15:12 +02:00
|
|
|
- The live MX runs image `mas-live:v0.2-a95f848` (redeployed 2026-10-19)
|
|
|
|
|
and is kept up by founder decision (MAS-WP-0007 stays in backlog).
|
2026-10-19 13:35:10 +02:00
|
|
|
The deployment with MAS-WP-0012 (one outbound path) is recorded in
|
|
|
|
|
MAS-WP-0007.
|
|
|
|
|
- Tests: `.venv/bin/pytest` runs 274 tests, offline apart from loopback
|
|
|
|
|
fixtures, the Docker probe and Node for `impl/js/`. `mas test` runs
|
|
|
|
|
four corpora: parser 64, statute 16, v0.2 statute-aware 33, mode
|
|
|
|
|
contract 195. `cd impl/js && node --test` runs 85 more.
|
2026-10-19 11:08:27 +02:00
|
|
|
- Assessments: `history/` (latest: `2026-10-19T090725Z-scope-vs-intent.md`).
|
2026-10-08 00:14:14 +02:00
|
|
|
|
|
|
|
|
## Getting Oriented
|
|
|
|
|
|
2026-10-19 11:08:27 +02:00
|
|
|
- Start with: INTENT.md, then `docs/experiment-review.md` and
|
|
|
|
|
`docs/reuse-surface.md`
|
2026-10-08 00:14:14 +02:00
|
|
|
- Agent instructions: AGENTS.md
|
|
|
|
|
- Workplans: workplans/
|