MAS-WP-0009 T01: independent JS implementation (impl/js), differential test, SCP-9
impl/js (Node, zero deps, written from the specs): parser, v0.2 statute-aware rules, signing, outside master. Passes addresses.json, statute-aware.json and auth.json unchanged; its master passes the 11 slave-setup mode flows against the Python email side (ExternalMaster). Differential testing vs mas_core found two unstated stand-in rules, now SCP-9 in the v0.2 draft with fixtures si-011..013, dt-109; ABNF comments no longer say v0.1. Runner: external masters, step errors fail the flow. 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:
parent
ecb1ba47f6
commit
a841ceec73
23 changed files with 938 additions and 49 deletions
|
|
@ -327,6 +327,33 @@ implement handoffs get a contract to conform to.
|
|||
|
||||
---
|
||||
|
||||
## SCP-9: stand-ins stand for absent operators
|
||||
|
||||
**Section:** §6.3 Stand-ins.
|
||||
|
||||
**Evidence:** MAS-WP-0009. A JavaScript implementation, written only from
|
||||
the spec text, was compared with `mas_core` over 3000 generated
|
||||
local-parts. They disagreed on two inputs that §6.3 leaves open:
|
||||
|
||||
- `q!---callback`: read literally ("ends in `---MODE`"), the interaction
|
||||
stand-in applies even though the local-part already has `!`. That gives
|
||||
two interactions, which is invalid. `mas_core` reads it canonically.
|
||||
- `ticket---`, `ticket---chat` (`chat` not enabled): read literally
|
||||
("split at the first `--`"), this is `ticket=-` / `ticket=-chat`.
|
||||
`mas_core` does not read a resource stand-in whose id begins with `-`,
|
||||
because three dashes signal the interaction stand-in.
|
||||
|
||||
**Change (applied to the v0.2 draft):** the interaction stand-in needs a
|
||||
local-part with no `!`. The resource stand-in needs an `ID` that does not
|
||||
begin with `-`. Identifiers beginning with `-` cannot be written with the
|
||||
resource stand-in, so generators refuse. New table rows; fixtures si-011
|
||||
to si-013 and dt-109.
|
||||
|
||||
**Impact:** clarifies edge cases. Neither implementation changes behavior
|
||||
on any earlier fixture.
|
||||
|
||||
---
|
||||
|
||||
## Lower-priority gaps (no proposal yet)
|
||||
|
||||
Recorded in the review, not urgent:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue