You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Found while sweeping the other section landing pages for #10339 (PR #10736), which topped up the same omission in content/docs/permissions/index.mdx. Out of that card's scope — its dispatch fenced the diff to content/docs/permissions/** — so this is filed rather than ridden along.
The observation
content/docs/ai/meta.json ships 9 pages. The ## What's in this module list in content/docs/ai/index.mdx names 7 of the 8 content pages. Absent:
connect-mcp — Connect an MCP Client
It is routed, it is in the sidebar, the file exists (content/docs/ai/connect-mcp.mdx), and it is linked nowhere else on the landing page — the module list is the page's only inventory and it is missing this entry.
Two details make it more than a tail-end oversight:
connect-mcp is meta.json's first content page, immediately after index — the most prominent slot in the chapter, not a recently-appended last row.
The page is the reader's entry point for pointing Claude Code / Claude Desktop at a running app. A reader scanning the AI module's index for "how do I connect my MCP client" concludes the chapter has no such page.
Measurement
Both files parsed, not eyeballed, at origin/main = 53a48c93f4:
content/docs/ai/meta.json pages
9
distinct pages linked in the ## What's in this module list
7
missing (index excluded)
1 — connect-mcp
in the list but not in meta.json
0
list order vs meta.json order
agrees for the 7 present
Scope of the sweep that found it — what is and is not claimed
The sweep classified every section under content/docs that has both a meta.json and an index.mdx, by the shape of its landing inventory:
Nine sections (ui, automation, capabilities, data-modeling, kernel, protocol, protocol/objectql, protocol/kernel, concepts) present pages through a <Cards> component rather than a hand-written bullet list. Different object — no claim is made about them here, and whether a <Cards> grid can drift the same way is a separate question nobody has asked.
This is the only drifted instance. Two others flag on a naive detector and were checked and dismissed rather than filed: getting-started's bullet list is a "Next Steps" pointer list that deliberately links out of the module, and protocol/objectui's is a curated "For Implementers" reading list mixing in /docs/references/ links. Neither presents itself as that module's index.
Directions, not a recommendation
The same option (b) question #10339 answered applies here, and the answer taken there was: keep the list hand-written (the link text and per-row glosses exist in no source file — meta.json stores slugs only), and record meta.json as the source of truth in a comment beside the list. Whoever picks this up can top up the single row and follow that precedent, or argue for the mechanical alternative below.
The mechanical option, stated once so it is not re-derived a third time.#9604 topped up runtime-services/index.mdx by hand and added pnpm check:runtime-services-index to hold the list to meta.json. That script is ~1000 lines and bespoke (it also checks stability labels, registry slots and canonical-source rows), so it is not a parameterization away from covering other sections. The generalizable core is small: for every section landing page carrying a ## What's in this module bullet list, hold the set and order of that list to its directory's meta.json. Today that population is three pages — permissions, api, ai — which is small enough to be worth arguing about either way: a gate for three pages may be over-engineering, or may be exactly the cheap ratchet that stops this recurring a fourth time. That is a maintainer call, not a dev's.
Found while sweeping the other section landing pages for #10339 (PR #10736), which topped up the same omission in
content/docs/permissions/index.mdx. Out of that card's scope — its dispatch fenced the diff tocontent/docs/permissions/**— so this is filed rather than ridden along.The observation
content/docs/ai/meta.jsonships 9 pages. The## What's in this modulelist incontent/docs/ai/index.mdxnames 7 of the 8 content pages. Absent:connect-mcp— Connect an MCP ClientIt is routed, it is in the sidebar, the file exists (
content/docs/ai/connect-mcp.mdx), and it is linked nowhere else on the landing page — the module list is the page's only inventory and it is missing this entry.Two details make it more than a tail-end oversight:
connect-mcpismeta.json's first content page, immediately afterindex— the most prominent slot in the chapter, not a recently-appended last row.Measurement
Both files parsed, not eyeballed, at
origin/main=53a48c93f4:content/docs/ai/meta.jsonpages## What's in this modulelistindexexcluded)connect-mcpmeta.jsonmeta.jsonorderScope of the sweep that found it — what is and is not claimed
The sweep classified every section under
content/docsthat has both ameta.jsonand anindex.mdx, by the shape of its landing inventory:ui,automation,capabilities,data-modeling,kernel,protocol,protocol/objectql,protocol/kernel,concepts) present pages through a<Cards>component rather than a hand-written bullet list. Different object — no claim is made about them here, and whether a<Cards>grid can drift the same way is a separate question nobody has asked.meta.json:permissions(after PR docs(permissions): list the six module pages the landing index omitted #10736) andapi.getting-started's bullet list is a "Next Steps" pointer list that deliberately links out of the module, andprotocol/objectui's is a curated "For Implementers" reading list mixing in/docs/references/links. Neither presents itself as that module's index.Directions, not a recommendation
The same option (b) question #10339 answered applies here, and the answer taken there was: keep the list hand-written (the link text and per-row glosses exist in no source file —
meta.jsonstores slugs only), and recordmeta.jsonas the source of truth in a comment beside the list. Whoever picks this up can top up the single row and follow that precedent, or argue for the mechanical alternative below.The mechanical option, stated once so it is not re-derived a third time.#9604 topped up
runtime-services/index.mdxby hand and addedpnpm check:runtime-services-indexto hold the list tometa.json. That script is ~1000 lines and bespoke (it also checks stability labels, registry slots and canonical-source rows), so it is not a parameterization away from covering other sections. The generalizable core is small: for every section landing page carrying a## What's in this modulebullet list, hold the set and order of that list to its directory'smeta.json. Today that population is three pages —permissions,api,ai— which is small enough to be worth arguing about either way: a gate for three pages may be over-engineering, or may be exactly the cheap ratchet that stops this recurring a fourth time. That is a maintainer call, not a dev's.Refs: #10339 · PR #10736 · #9604
Generated by Claude Code