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

@ -1,7 +1,8 @@
"""MAS v0.1 conformance corpus.
`addresses.json` is vendored unchanged from the spec bundle
(`mas-v0.1-spec/conformance/addresses.json`) and is normative.
(`mas-v0.2-spec/conformance/addresses.json`, a superset of v0.1.1's) and is
normative.
`properties.json` adds implementation-independent property and boundary
cases. `statutes/` holds statute validation cases. `statute_aware.json` is
vendored unchanged from the v0.2 draft bundle

View file

@ -308,7 +308,7 @@
},
{
"id": "p1-041",
"local_part": "tïcket=PR42",
"local_part": "t\u00efcket=PR42",
"profile": "p1",
"valid": false,
"error": "non-ASCII outside canonical MAS v0.1"
@ -350,5 +350,28 @@
"facet": null,
"interaction": null
}
},
{
"id": "p1-050",
"local_part": "ticket=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"profile": "p1",
"valid": true,
"parsed": {
"target": "ticket=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"target_kind": "resource",
"resource_type": "ticket",
"resource_id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"facet": null,
"interaction": null
},
"note": "64 octets: the SMTP limit (section 13)"
},
{
"id": "p1-051",
"local_part": "ticket=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"profile": "p1",
"valid": false,
"error": "longer than 64 octets",
"note": "v0.2: parsers MUST reject over 64 octets (section 13)"
}
]