Repository navigation
Description
Tracking issue for aligning the three MDX/MDXLD-facing properties with the frame ratified 2026-07-27, and for the two upstream conversations that alignment opened.
The frame
MDX is an open standard authored by others — the MDX community, mdxjs.com. MDXLD is ours: an extension/superset of MDX, plus a superset of YAML-LD in the frontmatter ($id / $type / $context), with $context always https://schema.org.ai, unversioned.
Markdown ──▶ MDX ──▶ MDXLD
(theirs) (theirs, open) (ours, superset)
JSON-LD ──▶ YAML-LD ──▶ MDXLD frontmatter
(theirs) (theirs, open) (ours, superset)
Exactly parallel to schema.org → schema.org.ai and auth.md → id.org.ai. Per the owner's amendment: "G1 is other standards bodies; G2 is our superset and new standards" — the capitalised term-of-art Standard stays reserved for externally governed G1 bodies; our authored G2 work may be called our new standards.
Pull requests
| PR | Property | Worst thing it fixes |
|---|---|---|
| dot-org-ai/mdx.org.ai#2 | mdx.org.ai | "Every MDX document naturally contains these four distinct layers" — MDX defines no frontmatter at all. The page described MDXLD and called it MDX. |
| dot-org-ai/primitives.org.ai#46 | primitives.org.ai | mdxjs.com, foundation.org.ai, schema.org.ai and mdx.org.ai each appeared zero times repo-wide. MDXLD and MDXUI — two of the ratified eleven primitives — were absent from the site entirely. |
| ai-primitives/mdxld.org#3 | mdxld.org | The site was serving the unmodified docs-template under another property's identity, with a "MDXLD v1.0 Released" banner. |
All three now: (1) state MDX is an open standard by the MDX community and link mdxjs.com; (2) state MDXLD is our superset of MDX with YAML-LD-superset frontmatter and $context = https://schema.org.ai; (3) carry a footer link The Org.AI Foundation → https://foundation.org.ai; (4) have exactly one role, with canonicals that agree.
Upstream issues (superset-and-engage)
| Issue | Where | Ask |
|---|---|---|
| mdx-js/mdx#2690 | MDX | Docs: what is MDX's position on the meaning of frontmatter? Their docs say frontmatter isn't supported by default and comes from remark-frontmatter, but never state that MDX assigns it no semantics and delegates to the host — the one thing an extension author needs to cite. Narrow question attached: is there a recommended convention for extension authors defining frontmatter key vocabularies? |
| w3c/yaml-ld#238 | YAML-LD | The $-sigil convenience context is published (json-ld.org/contexts/dollar-convenience.jsonld, live, WG-endorsed) but became undocumented when their #72 removed the Best Practices section on 2026-02-22 and the promised migration to JSON-LD-BP never happened. Asks for an informative note, explicitly not a syntax change and explicitly off the CR path. |
Both filed on the product.md#1 posture: conform on the shared core, name our extensions as proposals to converge on rather than deviations to erase, and be concrete enough that engagement is possible.
The finding that changed our own copy
Researching the upstream issues corrected us on two points, and all four PRs/commits reflect the correction:
- MDX is not a superset of Markdown, and never claims to be. The word "superset" appears nowhere in their docs;
/docs/what-is-mdx/lists the markdown features that don't work in MDX (indented code, autolinks, raw HTML). Our copy had asserted it. MDXLD's promise to MDX is strictly stronger than MDX's promise to Markdown — which is a better argument anyway, and is what the pages now say. $idand$typeare not our invention and not a deviation. JSON-LD 1.1 §4.1.6 permits keyword aliasing via the context, and the JSON-LD community publishes exactly that alias set. We were claiming a sanctioned convention as ours.$contextis the real deviation, because@contextis the one keyword that cannot be aliased — which is whydollar-convenience.jsonldcontains no$contextentry. The mechanical cause (MDX compiles to ESM;@contextis not a legal JS identifier) and the one-rename compatibility shim are now stated on every property.
Conceding the part that isn't ours is what makes the part that is ours credible.
Canonical arrangement — owner ruling wanted
The hierarchy names docs.org.ai/mdxld as MDXLD's canonical entry. I did not point anything at it: docs.org.ai does not serve. It resolves to 207.207.210.107 / .229 and fails the TLS handshake (SSLV3_ALERT_HANDSHAKE_FAILURE). Not merely unbuilt — unreachable. A rel=canonical to an origin that cannot complete a handshake asks search engines to drop the page that works in favour of one that does not resolve.
Implemented instead, and defensible on the ratified text rather than only as a fallback. §2 Door 4 · "The format" gives both mdx OWNS … MDXLD … PRIM MDXLD. Keystone and docs OWNS /mdxld — the format spec, the $ sigil rules, the reserved-key list. Under L1 those are two referents at two grains: mdx.org.ai owns the format; docs.org.ai/mdxld owns the specification document.
| Property | Role | Canonical |
|---|---|---|
| mdx.org.ai | MDXLD's documentation home | self |
| mdxld.org | serving surface | front page → https://mdx.org.ai; deeper pages self |
| primitives.org.ai | definitional index of the primitives | self; its MDXLD card links out to mdx.org.ai rather than restating the format |
| docs.org.ai/mdxld | the specification document | when built, and when the host serves |
Ruling wanted: confirm this, or say the canonical should wait for docs.org.ai to come up.
Also wanting a ruling
mdxld.org's place in the hierarchy. Proposed by exact parallel to Amendment A1's ruling onproduct.md: a serving surface, outside the 144, the statusmd.org.aiandcdn.org.aihold..org.ai-layer work on a.orgname, which the Layer rule permits. The count stays 144.- primitives.org.ai states its primitive count four contradictory ways — 9 home cards, "seven core primitives" in
llms.txt, 7 in the meta description, 22 in the sidebar — and none is the ratified eleven. The nav says Business where the list says Business-as-Code, Agent for Autonomous Agents, Human for Human-in-the-Loop, and files Digital Workers/Digital Tools under "Infrastructure". PR #46 removes the false "seven" and adds MDXLD/MDXUI but deliberately does not pick a number. ui.org.aidoes not resolve, so MDXUI is named without a link. An honest blank beats a dead link, but MDXUI is one of the eleven and currently has no home.- Should
ai-primitives/mdxld.orgmove todot-org-ai? It is the only one of the three outside the org.
Hazards found, not fixed
primitives.org.aicontains a self-referential submodule atai/primitives/— the repo mounted inside itself, pinned 387 commits behind (2026-01-13) — whosewrangler.jsoncis byte-identical to the live one: same worker name, same route. Runningpnpm deployfrom inside it overwrites production with the January snapshot.mdx.org.ai'smainis not Prettier-clean.prettier --write docs/**/*.mdxtouches ~94 unrelated files. PR Align mdx.org.ai with the ratified MDX/MDXLD frame #2 reverted all of that; worth a formatting-only PR.primitives.org.aiCI runspnpm test:unit, which is undefined at the root, so the test step errors.mainhas no branch protection, so nothing gates merges.AGENTS.mdin both repos mandates directgit pushtomain, which contradictsprimitives.org.ai's ownCONTRIBUTING.mdand is a poor fit for live-site copy carrying a canonical decision. All three changes went through PRs.
Activity