From 5f9f28658bb3554d07d4f054cb6b1ac48122927f Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Tue, 28 Jul 2026 15:26:12 +0100 Subject: [PATCH] fix(a2ml): reconcile the media type to application/vnd.a2ml before IANA submission MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The repo carried FOUR competing media-type names: application/vnd.a2ml (27 uses, incl. the completed IANA application), text/a2ml (5), application/vnd.a2ml+text (3) and application/a2ml (1). The naming decision was already made — a2ml/IANA-MEDIA-TYPE-APPLICATION.md is a finished RFC 6838 vendor-tree application for application/vnd.a2ml (rev 2, "ready for submission") — but four files never caught up, and a submission contradicted by its own normative spec invites expert-review pushback. Reconciled to the application docs name in: - a2ml/SPEC.adoc (x2: media-type table + IANA Considerations) - a2ml/site/spec.md (application/a2ml is a standards-tree name that would need IETF review, not the vendor tree we are applying under) - a2ml/READINESS.md (+text is not a registered structured-syntax suffix under RFC 6838 4.2.8) Deliberately NOT touched: a2ml/archive/SPEC-v1.0.0.adoc (frozen historical record) and a2ml/RECORD-DIALECT-SPEC.adoc 14, which knowingly documents the inconsistency and defers resolution to the maintainers — update that section once IANA assigns the type. REGISTRY.a2ml regenerated (SPEC.adoc is registry-tracked); build-registry.sh --check and build-scorecards.sh --check --strict both pass. Co-Authored-By: Claude Fable 5 --- .machine_readable/REGISTRY.a2ml | 18 +++++++++--------- a2ml/READINESS.md | 2 +- a2ml/SPEC.adoc | 4 ++-- a2ml/site/spec.md | 2 +- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.machine_readable/REGISTRY.a2ml b/.machine_readable/REGISTRY.a2ml index 373a8df1..52ae7325 100644 --- a/.machine_readable/REGISTRY.a2ml +++ b/.machine_readable/REGISTRY.a2ml @@ -45,7 +45,7 @@ name = "A2ML — Attested Markup Language" stream = "foundation" home = "a2ml/" canonical_doc = "a2ml/README.adoc" -source_hash = "sha256:215dd1cc7dd184922d6cb04957cd17dfccb7f00ea78252ff5a53634d67851980" +source_hash = "sha256:3409e79367d002ba52f4ed1742b2846c1beffdf8acf78c53997a69a32bd46617" route = "the typed/verified machine-readable document format" [[spec]] @@ -54,7 +54,7 @@ name = "K9 Self-Validating Components" stream = "foundation" home = "k9-svc/" canonical_doc = "k9-svc/README.adoc" -source_hash = "sha256:84313508e94620b1fb70a853d49e9e080d93ff8413475caaaf0eb64db499a69f" +source_hash = "sha256:9637f4fd9e24d12035da75a719d52127eb1993b206954acde7b576a8a7ad2e96" route = "self-validating components with embedded contracts + deploy logic" [[spec]] @@ -72,7 +72,7 @@ name = "META.a2ml spec" stream = "foundation" home = "meta-a2ml/" canonical_doc = "meta-a2ml/README.adoc" -source_hash = "sha256:4b00ebf2fa1ab6aee46b67be34715b4198d4643ce2025c82882afda502d9c038" +source_hash = "sha256:f5a4aa91b2917ab1945addac2fef904f3b2958240743f2b00a1fbc0f6aca946c" route = "architecture decisions / governance metadata format" [[spec]] @@ -135,7 +135,7 @@ name = "0-AI Gatekeeper Protocol" stream = "protocol" home = "0-ai-gatekeeper-protocol/" canonical_doc = "0-ai-gatekeeper-protocol/README.adoc" -source_hash = "sha256:a5bb4eaac86202798bd47f7e403c6f95fcf1c95ee517e8930a599983a1dd8c64" +source_hash = "sha256:9129453f1962a3cea37702d04e7e8eea353873987dd3e764f8217a045803640d" route = "the AI-agent entry/gating protocol behind 0-AI-MANIFEST" [[spec]] @@ -152,8 +152,8 @@ id = "avow-protocol" name = "AVOW Protocol" stream = "protocol" home = "avow-protocol/" -canonical_doc = "avow-protocol/README.adoc" -source_hash = "sha256:ca167dc32551b71450176b9f9f7538c165b55ce19ee31f5cb7a334affd4edb3c" +canonical_doc = "avow-protocol/BINDING.adoc" +source_hash = "sha256:ed5b1c9415c137348313f6d8a65d0d6eb320abf2f64e76bb25e108d7a21a3b5b" route = "consent-attested messaging / origin attribution" [[spec]] @@ -162,7 +162,7 @@ name = "AXEL Protocol" stream = "protocol" home = "axel-protocol/" canonical_doc = "axel-protocol/README.adoc" -source_hash = "sha256:326c47a6ca32531d4acff17aaf0313b7579a9d5749429f72f97e907af1fa8d33" +source_hash = "sha256:020e11cbab41cc5cb86182bc6ba93b58ee6b9bf29237d172e735363eebc5f27c" route = "age-gating + explicit-content enforcement" [[spec]] @@ -180,7 +180,7 @@ name = "Consent-Aware HTTP" stream = "protocol" home = "consent-aware-http/" canonical_doc = "consent-aware-http/README.adoc" -source_hash = "sha256:d5cee84e0bccc969cbc76cd17cbf18e6835750a5e664788a4a96f5b50f5fdb2a" +source_hash = "sha256:a646ae072372fe62bf3fcffa80b1a196f1fe3b9df8e7be4fc5e54be49426b022" route = "consent headers / AI-usage boundaries for HTTP" [[spec]] @@ -225,7 +225,7 @@ name = "RSR — Rhodium Standard Repositories" stream = "governance" home = "rhodium-standard-repositories/" canonical_doc = "rhodium-standard-repositories/README.adoc" -source_hash = "sha256:d196156cc4fdade946fab21b87ba4fa076106186bbf59c23fb21fb1cfd64e219" +source_hash = "sha256:03252ce83c0361887c6a96530c8bba15c4c7f816c07d6d2ffbffd53250e3bf61" route = "the repository-compliance standard every repo is graded against" [[spec]] diff --git a/a2ml/READINESS.md b/a2ml/READINESS.md index 7ed79236..919f2c58 100644 --- a/a2ml/READINESS.md +++ b/a2ml/READINESS.md @@ -60,7 +60,7 @@ - Core schema stable since v1.0 - Referenced by 6 language implementations (Rust, Elixir, Gleam, Haskell, Deno, Julia) - Deployed on 105+ repos as the canonical AI manifest format -- IANA media type submission in progress (`application/vnd.a2ml+text`) +- IANA media type submission in progress (`application/vnd.a2ml`) **Known limitations:** - PLAYBOOK.a2ml schema at v0.9 (not yet stable) diff --git a/a2ml/SPEC.adoc b/a2ml/SPEC.adoc index 09832aaa..cbb65109 100644 --- a/a2ml/SPEC.adoc +++ b/a2ml/SPEC.adoc @@ -25,7 +25,7 @@ modes and acquires meaning only when a profile selects it. [cols="1,3"] |=== -| Media Type | `text/a2ml` (registration pending) +| Media Type | `application/vnd.a2ml` (registration pending) | File Extension| `.a2ml` | Version | 1.1.0 (Stable) | Era | v1 @@ -685,7 +685,7 @@ evidence of *validation intent*, never of *granted capability*. == 13. IANA Considerations -Proposed media type `text/a2ml`; file extension `.a2ml`; no magic number; +Proposed media type `application/vnd.a2ml`; file extension `.a2ml`; no magic number; fragment identifier `#section-id`. See the separate IANA registration document. == 14. Interoperability diff --git a/a2ml/site/spec.md b/a2ml/site/spec.md index 354f14ed..e5ad8730 100644 --- a/a2ml/site/spec.md +++ b/a2ml/site/spec.md @@ -20,7 +20,7 @@ The current normative specification is **A2ML v1.1.0** — Surface Grammar + Typ - **Syntax modules** (opt-in) - **Grammar appendix** - **Conformance + test vectors** -- **IANA media type draft** — `application/a2ml` +- **IANA media type draft** — `application/vnd.a2ml` - **Comparison matrix** - **Citation guide**