Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ language** — README's "What AMAP is not" says this normatively; keep it true.

| | |
|---|---|
| Document | **`draft-rapp-amap-00`**, dated 2026-10-18; corresponds to contract 3.1.0 (the frozen files' titles) |
| Document | **`draft-rapp-ammp-00`**, "The Agent Mediated Messaging Protocol (AMMP)", dated 2026-10-18; corresponds to contract 3.1.0 (the frozen files' titles). Renamed from AMAP on 2026-10-18; the repository, `draft/draft-amap.xml`, the `amap-*` names and the `AMAP-Peer-*` header fields are not renamed yet |
| Wire `contract_version` | **`"2"`** — the draft's Versioning section says why it is not reset to `"1"` |
| `README.md` claims | **121 fixtures** — matches the gate |
| Actual gate result | **121 fixtures (42 valid, 79 invalid), 0 unexpected**, then **114 signed peer cases and 10 MIME cases, RFC 8032 vectors ok, 0 unexpected** |
Expand Down Expand Up @@ -84,7 +84,7 @@ The draft's JSON is never hand-copied. `draft/tools/sync_sources.py`
`<sourcecode>` block, rewriting only that CDATA body and folding per RFC 8792.
xml2rfc's own `src=` can't do it: 3.34.1 crashes on non-ASCII UTF-8 in a src
file. Gates in `make -C draft`:
- a byte comparison: `dist/draft-rapp-amap-00.xml` must equal the source (never edit `dist/`);
- a byte comparison: `dist/draft-rapp-ammp-00.xml` must equal the source (never edit `dist/`);
- `sync_sources.py`: blocks equal disk, and no schema or listed fixture lacks a block;
- `check_render.py`: the same, plus roster counts, docName, no host paths;
- `check_coverage.py`: every RFC 2119 sentence in the protocol sections
Expand Down Expand Up @@ -333,7 +333,7 @@ not defects:
- **`fixtures/validate.py` and `fixtures/peer-signed/` code comments still cite
`spec/contract.md` / `spec/peer-origin.md` section numbers.** They resolve,
because the frozen files stay. (The schema descriptions were remapped to the
draft's section names for draft-rapp-amap-00.)
draft's section names for draft-rapp-ammp-00, then named AMAP.)
- **CI changes are proposed, not applied.** `.github/workflows/` is read-only
from agent sessions, so a workflow change is handed to the operator to apply.
- **The `attestation` field name collides with IETF RATS usage** (RFC 9334):
Expand Down
6 changes: 3 additions & 3 deletions CONFORMANCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ specification is mounted read-only in this container at:

```
~/.amap-spec/
dist/draft-rapp-amap-00.txt THE NORMATIVE PROSE: the AMAP Internet-Draft, rendered.
dist/draft-rapp-ammp-00.txt THE NORMATIVE PROSE: the AMAP Internet-Draft, rendered.
Cite it by section number.
schemas/ JSON Schema documents the spec's artifacts must validate against
fixtures/ canonical example artifacts, valid and invalid
Expand Down Expand Up @@ -38,7 +38,7 @@ rather than inventing one.
**Read the spec before changing behaviour that the spec governs.** Do not work
from memory of what amap "usually" does, and do not infer a rule from other
code in this workspace — other code may itself be non-conformant. The draft at
`~/.amap-spec/dist/draft-rapp-amap-00.txt`, with `schemas/` and `fixtures/`, is the
`~/.amap-spec/dist/draft-rapp-ammp-00.txt`, with `schemas/` and `fixtures/`, is the
only authority here, for the peer lane as well as the mail lane.

**When you touch a spec-governed surface, verify conformance rather than
Expand Down Expand Up @@ -67,7 +67,7 @@ need different handling, so name which one you believe it is:
invented rule as a spec requirement.

**A missing mount is not permission to proceed.** If
`~/.amap-spec/dist/draft-rapp-amap-00.txt` is absent, the feature is not installed,
`~/.amap-spec/dist/draft-rapp-ammp-00.txt` is absent, the feature is not installed,
the operator's checkout has moved, or this sandbox launched before the `dist`
mount existed and needs a relaunch. Say so and stop, rather than falling back to
the frozen `spec/contract.md` or `spec/peer-origin.md`, or guessing at the
Expand Down
2 changes: 1 addition & 1 deletion CONSUMERS.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Maintained by hand, and therefore incomplete — see the honesty note below.
| a connector interface document | defines what a connector IS, upstream of any one implementation | **targets v3.1.0 DRAFT** (§5.2); older sections pinned v2.3.0 and are mid-cascade |
| a conformance harness | runs the fixture gate against implementations | unknown |

The pins above are dated. The current revision, `draft-rapp-amap-00`,
The pins above are dated. The current revision, `draft-rapp-ammp-00`,
corresponds to contract 3.1.0 (wire `contract_version` `"2"`); its body no
longer says "DRAFT". It also folds in cross-host statement changes made since
those dates (the statement id grammar, point decoding, the size limit and
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ implementation: a trusted mail runtime implements one half, an untrusted
per-agent connector implements the other, and the two can be built by different
people and versioned independently.

**Current revision: `draft-rapp-amap-00`**, which corresponds to contract
**Current revision: `draft-rapp-ammp-00`**, which corresponds to contract
3.1.0 (wire `contract_version` `"2"` - the contract's own SemVer and the wire
major track different things as of 3.0.0; see the draft's Versioning and
Conformance section). The draft has not been submitted.
Expand Down Expand Up @@ -134,14 +134,14 @@ draft/draft-amap.xml the normative prose, as an IETF Internet-Draft - actors,
hand-edited, and the source of dist/
schemas/ JSON Schema (2020-12) for each message
fixtures/ golden valid + invalid artifacts, and the validator
dist/ the draft rendered: draft-rapp-amap-00.txt to read, .xml to submit
dist/ the draft rendered: draft-rapp-ammp-00.txt to read, .xml to submit
spec/contract.md FROZEN - the prose the draft was reconciled against
spec/peer-origin.md FROZEN - the peer-origin profile's prose before it moved
into the draft
```

The Internet-Draft (`draft/draft-amap.xml`), together with `schemas/` and
`fixtures/`, is the normative contract. Read it as `dist/draft-rapp-amap-00.txt`.
`fixtures/`, is the normative contract. Read it as `dist/draft-rapp-ammp-00.txt`.
The JSON the draft shows is written into it from `schemas/` and `fixtures/`,
never copied by hand, and the build fails if the two ever differ.

Expand Down
2 changes: 1 addition & 1 deletion SANDY-FEATURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ Five named mounts rather than one `.` mount of the whole repo. `dist` was added
on 2026-09-24, when the Internet-Draft became the canonical prose: without it,
every sandbox read a `spec/contract.md` that says it is frozen and points at a
file no sandbox could open. `dist/` is mounted rather than `draft/` because the
rendered `draft-rapp-amap-00.txt` is what an agent can read. `draft/` holds the XML
rendered `draft-rapp-ammp-00.txt` is what an agent can read. `draft/` holds the XML
source and build tooling, which an agent has no use for. One `.` mount: `.` would also
carry `.git` and everything else into every amap sandbox for no benefit, and
`.git` cannot be named as a `from` anyway (leading dot is rejected).
Expand Down
2 changes: 1 addition & 1 deletion WORKFLOWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ make -C draft # build dist/ and run every gate
make -C draft normdiff BASE=origin/main
```

- The dist copy: `dist/draft-rapp-amap-00.xml` must equal `draft/draft-amap.xml`
- The dist copy: `dist/draft-rapp-ammp-00.xml` must equal `draft/draft-amap.xml`
byte for byte. It looks identical to the source and is easy to edit by
mistake; an edit there fails the check instead of being silently overwritten.
- `tools/sync_sources.py`: every JSON block in the draft equals its file on
Expand Down
Loading
Loading