MAS v0.2 final (MAS-WP-0009 finished); residual MAS-WP-0014

Founder decision after the second implementation: close the two open gaps,
then declare v0.2 final. Section 13: parsers MUST reject over 64 octets
(fixtures p1-050/051); section 8: equivalence is between targets, key format
not normative. Draft markers removed, CHANGELOG dated 2026-10-19,
MAS_VERSION 0.2, mas_conformance vendors the v0.2 addresses.json. Mode
contract v0.1 stays draft: MAS-WP-0014 (independent email side).

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
This commit is contained in:
tegwick 2026-10-19 13:35:10 +02:00
parent a841ceec73
commit f07576451a
16 changed files with 178 additions and 40 deletions

View file

@ -4,7 +4,7 @@ type: workplan
title: "Declare MAS v0.2 final"
domain: communication
repo: mail-address-semantics
status: active
status: finished
owner: claude
topic_slug: coulomb-social
created: "2026-10-19"
@ -43,7 +43,7 @@ read in a way `mas_core` does not.
```task
id: MAS-WP-0009-T02
status: progress
status: done
priority: low
state_hub_task_id: "a30c1b69-4b41-5636-865a-82341175668b"
```
@ -80,3 +80,19 @@ in the changelog.
and the JS parser does not. No fixture covers it.
- **Not independently validated:** the email side of the mode contract.
It exists only in Python; the JS work covers the master side.
## Outcome of T02 (2026-10-19)
- **Founder decision: close the open gaps, then declare v0.2 final.**
- Length (§13): parsers MUST reject over 64 octets. Fixtures p1-050 and
p1-051. The JS parser was aligned; `mas_core` already did this.
- Equivalence (§8): it is between targets (facets and interactions take
no part), and the key format is not normative.
- **v0.2 is final** (2026-10-19). "Draft" is removed from the bundle and
`MAS_VERSION` is 0.2. `mas_conformance/addresses.json` now vendors the
v0.2 bundle (a superset of v0.1.1's).
- **Results.** Both implementations pass every fixture: `mas test` parser
64/64 and statute-aware 33/33; JS `node --test` 85/85. They agree on
every generated case in the differential test.
- **Mode contract v0.1 stays a draft** (founder). Residual: MAS-WP-0014
(an independent email side).

View file

@ -0,0 +1,47 @@
---
id: MAS-WP-0014
type: workplan
title: "Finalize mode contract v0.1: an independent email side"
domain: communication
repo: mail-address-semantics
status: backlog
owner: claude
topic_slug: coulomb-social
created: "2026-10-19"
updated: "2026-10-19"
origin: residual
origin_ref: MAS-WP-0009
---
# Finalize mode contract v0.1
Residual of MAS-WP-0009. The founder decided on 2026-10-19 that mode
contract v0.1 stays a draft. Its master side is validated independently
(`impl/js/src/master.mjs` passes the slave-setup flows), but the email side
exists only in Python (`mas_modes.email_mode`).
## An independent email side, or a real integration
```task
id: MAS-WP-0014-T01
status: wait
priority: low
```
Do one of these. Either build an email side independent of
`mas_modes.email_mode`, in another language or by another team, that
passes `mas-modes-v0.1-spec/conformance/flows.json` (both roles) from the
bundle alone. Or run a real outside master or mode integration (a CMS,
ticketing, telephony) against the contract and record the findings. Fold
the findings into CONTRACT.md as proposals, as SCP-9 did for v0.2.
## Declare final
```task
id: MAS-WP-0014-T02
status: wait
priority: low
```
With the findings folded in, ask the founder to declare mode contract v0.1
final. Then remove "draft" from the bundle and v0.2 §7.1.