Skip to content

Credit MDX upstream, name MDXLD, add the Foundation footer - #46

Merged
nathanclevenger merged 5 commits into
mainfrom
align/mdxld-ratified-frame
Jul 28, 2026
Merged

nathanclevenger merged 5 commits into
mainfrom
align/mdxld-ratified-frame

Conversation

@nathanclevenger

Copy link
Copy Markdown
Contributor

The ratified 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, with $context always https://schema.org.ai, unversioned.

Good news first: this repo had no versioned $context URLs, and its two MDXLD references were already correctly attributed outward rather than claimed as ours. The problem here is not false claims — it is silence.

What the audit found

Zero occurrences, repo-wide, of every one of these:

Domain Occurrences in site/ or content/
mdxjs.com 0 — MDX is used and named but never credited to upstream
foundation.org.ai 0
schema.org.ai 0 — despite CLAUDE.md:75 declaring it the canonical type-URI namespace
mdx.org.ai 0 in the site (one mention in an ASCII diagram in docs/plans/)

There is no footer. site/lib/layout.shared.tsx sets nav.title and githubUrl and nothing else. No licence, no copyright, no attribution, no link to any sibling property. The single clickable outbound link in the entire site chrome was the GitHub icon.

MDXLD and MDXUI — two of the ratified eleven primitives — were absent from the site entirely. MDXLD appeared only as two inline links in content/domain.mdx; MDXUI has zero occurrences in content/ or site/.

Governed-vocabulary misuse in deployed copy: content/index.mdx:9 — "From functions to businesses, every layer is designed for the age of AI." layer means the .org.ai / .do / .studio strata and nothing else.

Self-contradiction: content/domain.mdx:17 says "every domain defines a JSON-LD @context" and then shows $context: in the very next code block.

Changes

  1. content/index.mdx — new "How it is written down" section naming MDXLD and MDXUI, per the ratified rule that this site is the definitional index of the primitives with one card per primitive, each linking to that primitive's home. It states MDX is theirs (linked), MDXLD is ours and a superset of both MDX and YAML-LD, and $context is https://schema.org.ai unversioned. Also fixes the layer misuse.
  2. content/domain.mdx — @context/$context contradiction resolved; MDXLD named and linked to mdx.org.ai.
  3. site/app/layout.tsx — adds alternates.canonical (there were no canonical tags anywhere) and a real footer linking The Org.AI Foundation and crediting MDX upstream.
  4. site/lib/layout.shared.tsx — nav links to MDXLD, schema.org.ai, the Foundation.
  5. site/app/llms.txt/route.ts — see below.

MDXUI is named but not linked, because ui.org.ai does not resolve (curl returns 000). An honest blank beats a dead link. Same reasoning kept docs.org.ai out of these pages — it fails the TLS handshake outright.

Canonical arrangement

primitives.org.ai self-canonicalises. It is the definitional index; it links MDXLD to mdx.org.ai rather than restating the format, so the two properties never serve the same referent. The hierarchy names docs.org.ai/mdxld as MDXLD's canonical entry, but that host does not serve — see mdx.org.ai#2 for the full reasoning and the ruling requested.

Deliberately NOT decided here — needs your ruling

The site states its primitive count three different, mutually contradictory ways:

Surface Count Contents
content/index.mdx:11-39 home cards 9 Function, Database, Workflow, Task, Agent, Human, Product, Service, Business
site/app/llms.txt/route.ts:17 "seven core primitives" drops Task and Human
site/app/layout.tsx meta description 7 matched llms.txt
content/meta.json sidebar 22 adds Domain, Noun, Verb, Thing, Action, Event, Experiment, Goal, Plan, Project, Tool, Types…

None of the four is the ratified eleven (Business-as-Code, Services-as-Software, Digital Workers, Digital Tools, Autonomous Agents, Human-in-the-Loop, AI Functions, AI Workflows, AI Database, MDXLD, MDXUI). The nav names Business where the ratified list says Business-as-Code, Agent where it says Autonomous Agents, Human where it says Human-in-the-Loop; and it files Digital Workers and Digital Tools under "Infrastructure" rather than as primitives.

Reconciling that is a real content restructure with naming consequences, not a copy edit. This PR does not pick a number — it removes the false "seven" assertion and adds MDXLD/MDXUI to both the page and llms.txt, leaving the reconciliation to your ruling.

Two hazards found, not fixed here

  1. ai/primitives/ is a self-referential git submodule — this repo mounted inside itself, pinned at 8bf06bc (2026-01-13, 387 commits behind). Its ai/primitives/site/wrangler.jsonc is byte-identical to site/wrangler.jsonc: same worker name primitives-org-ai, same route primitives.org.ai/*. Anyone running pnpm deploy from inside it overwrites production with the January snapshot. CI materialises it on every run (submodules: recursive). Recommend deleting it in a separate PR.
  2. CI's pnpm test:unit is undefined at the root (package.json and turbo.json define no such task), so the test step errors out. main has no branch protection (gh api …/branches/main/protection → 404), so nothing gates merges regardless.

Also: /og-image.png is referenced twice in site/app/layout.tsx but does not exist in site/public/, and README.md:94-95's two documentation links 404 (the site serves docs at root, not /docs).

Process note

CONTRIBUTING.md:108-136 requires branch + PR; AGENTS.md:24-39 mandates direct git push. I followed CONTRIBUTING. Committed with --no-verify only because this worktree has no node_modules for the husky hook; Prettier was run manually against .prettierrc.json on the three .ts/.tsx files (the hook covers *.{ts,tsx} only, so the .mdx edits were never in its scope).

🤖 Generated with Claude Code

primitives.org.ai never mentioned mdxjs.com, foundation.org.ai,
schema.org.ai or mdx.org.ai — zero occurrences of each, repo-wide.
The only clickable outbound link in the whole site chrome was the
GitHub repo. Two of the eleven ratified primitives, MDXLD and MDXUI,
were absent from the site entirely.

- content/index.mdx gains a "How it is written down" section naming
  MDXLD and MDXUI and linking each to its home, per the ratified rule
  that this site is the definitional index of the primitives with one
  card per primitive linking to that primitive's home. MDXLD is stated
  as OURS and a superset of MDX; MDX is stated as an open standard
  authored by the MDX community, with a link. MDXUI is named without a
  link because ui.org.ai does not currently resolve — a dead link is
  worse than an honest blank.

- content/index.mdx:9 said "every layer is designed for the age of AI".
  "layer" is governed vocabulary meaning the .org.ai / .do / .studio
  strata. Reworded.

- content/domain.mdx:17 said "every domain defines a JSON-LD @context"
  and then showed "$context:" in the very next code block. Now names
  MDXLD, says it writes $context rather than @context, and links the
  explanation.

- site/app/layout.tsx gains alternates.canonical and a footer linking
  The Org.AI Foundation and crediting MDX upstream. There was no
  footer at all before — no licence, no attribution, nothing.

- site/lib/layout.shared.tsx gains nav links to MDXLD, schema.org.ai
  and the Foundation.

- llms.txt asserted "seven core primitives" while the home page showed
  nine cards and the meta description listed seven. The count claim is
  dropped rather than picked, since reconciling the site's primitive
  set with the ratified eleven is a larger question; MDXLD and MDXUI
  are added to the machine surface either way.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
nathanclevenger and others added 4 commits July 27, 2026 07:19
The root openGraph/twitter metadata pointed at /og-image.png, which does
not exist anywhere in the repo - the social card has been a 404 the whole
time. This adds the real image and repoints the metadata at it.

site/og-card.html is the 1200x630 source, rendered by headless Chrome;
site/public/og.png is the committed result, so an ordinary build never
needs a browser. The card follows foundation.org.ai's shape - thin accent
edge at left, wordmark, one line of real substance, domain at the foot.

The accent is #C3E4F3, the fill of site/public/org-ai.svg, the mark the
navbar actually renders: fumadocs' neutral preset is entirely achromatic,
so that logo is the one real colour this repo owns. Copy is the branch's
own H1 and metadata description, plus the nine primitive names. Nothing
invented.

Per-page docs cards are unaffected - those still come from the dynamic
app/og/[...slug] route.
generateMetadata overrode openGraph.images on every docs page, the home
page included, so the root unfurl showed the generic fumadocs template
and never the hand-built card - while twitter:image, which the override
does not touch, pointed at /og.png. The two disagreed.

The override now skips the empty slug. Inner docs pages are unchanged and
still get app/og/[...slug]; only / falls through to the root layout.

Verified by build: / emits og:image /og.png with width, height, type and
alt; /agent still emits /og/agent/image.png.
…m llms.txt

Corrections on top of the Foundation-footer work:

- content/index.mdx: $id/$type are not ours — they come from the linked-data
  community's dollar-convenience context. Our one real deviation is $context
  (always https://schema.org.ai, unversioned). The previous wording annexed
  upstream's keys, which is the exact thing the frame forbids.
- content/domain.mdx: drop the dead fragment mdx.org.ai/docs#why--and-not-
  (page 200s, anchor does not exist).
- content/noun.mdx: "JSON-LD @context" -> "MDXLD $context", same conflation
  already fixed in domain.mdx.
- site/app/llms.txt/route.ts: same attribution fix; add a Stewardship line
  pointing at The Org.AI Foundation.
- site/app/llms-full.txt/route.ts: header crediting the Foundation and MDX
  upstream, so the machine-readable face carries the backlink too.
- site/lib/layout.shared.tsx: restore the file's original semicolon style;
  only the nav links are a real change.

Verified with a real build: 161/161 prerendered pages carry
<a href="https://foundation.org.ai">The Org.AI Foundation</a> (only Next's
built-in _global-error.html does not, by design — it replaces the root
layout). tsc --noEmit clean. No lockfile change.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…it the runtime half

Review fix: the intro said "the set below is the runtime half" while the
list directly under it now carries MDXLD and MDXUI.
@nathanclevenger
nathanclevenger merged commit 63f9e64 into main Jul 28, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant