Repository navigation
docs(ui-merge): fold objectui.org into objectstack docs, K1 — move the Object UI SDK guide (38 pages) and the 57 renderer-type pages into a new content/docs/sdk/ section #27140
Description
Filing gate ③ (maintainer-directed). In the "Restore objectui.org docs deploy" project thread (card thread of #26993), on 2026-10-28:
- 03:24Z, on the decision card "objectui.org 文档站以后怎么处理?", Tesla chose 「B 并入 objectstack 文档站」. www.objectui.org stops being a separate site, and its docs fold into the objectstack docs site (
content/docs, served at objectstack.ai/docs). - 03:24Z, Tesla asked 「objectui 文档全部需要保留吗?这需要评估并和我沟通」. The card thread then sorted the 183 pages under
ui/content/docsone by one into keep, merge, generate and delete, and put four questions to Tesla. - 07:58Z, on that evaluation, Tesla answered 「VS Code 扩展 不会发布,其他同意」 and then 「你负责派卡执行」.
The fold is split into four cards. The first three can run in parallel; the fourth is blocked by them:
- K1 moves the SDK pages.
- K2 merges pages into existing ones.
- K3 generates the component reference.
- K4 retires the old site and adds the redirects.
This is card K1.
维护者速读
把 Object UI 作为独立 React SDK 的文档搬进 objectstack 文档站,新开 content/docs/sdk/ 栏目,共 95 页:
- 原样保留的 38 页:SDK 入门、架构、渲染器、插件、CLI 和连 objectstack 后端的适配器。
- 57 个渲染器类型参考页:
dialog、select、data-table等。它们是在注册表里注册过、SDK 用户在 JSON 里会写到的类型,但不在sdui.manifest.json里。
在线演示组件(InteractiveDemo 等)改成静态 JSON 代码块。依据是你同意的第 3 条:第一轮不迁演示,不让主文档站多依赖 21 个 @object-ui 包。
本卡只新增页面,不删 ui/content/docs 里的原页,删除和跳转都由 K4 做。
Wanted
-
A new top-level section
content/docs/sdk/("Object UI SDK"), listed incontent/docs/meta.json. Its index says what the SDK is: render ObjectStack JSON schemas inside your own React app, MIT-licensed@object-ui/*packages. It also says how the SDK relates to the Console. -
Move these 38 pages in (paths relative to
ui/content/docs/), keeping their substance:index.md(home)guide/:quick-start,building-crud-app,architecture-overview,schema-overview,schema-rendering,component-registry,fields,plugins,plugin-development,data-source,layout,theming,troubleshootingcore/schema-renderer,layout/app-shell,layout/sidebar-nav,api/schema-referenceutilities/:cli,create-plugin,data-objectstackplugins/:indexplusplugin-calendar,plugin-charts,plugin-chatbot,plugin-dashboard,plugin-detail,plugin-editor,plugin-form,plugin-gantt,plugin-grid,plugin-kanban,plugin-list,plugin-map,plugin-markdown,plugin-report,plugin-timeline,plugin-view
-
Move in the 57 renderer-type pages, as a "Renderer reference" subsection. These are every
components/**page except three groups:- the 17 that
sdui.manifest.jsoncovers, which are K3's:basic/{icon,image,span,text},complex/table,data-display/{alert,badge},disclosure/accordion,form/{button,label},layout/{box,card,container,flex,grid,stack,tabs}; components/index;toasterandsemantic, which have no registered type and are not moved.
Each moved page keeps its type name as the slug, so K4 can map
/docs/components/<group>/<type>one-to-one. - the 17 that
-
Rewrite every live-demo MDX component (
InteractiveDemo,DemoGrid,ComponentDemo,LiveSplitDemo,SchemaExample,SchemaThumbnail,ReactVsObjectUI,SchemaCatalogIndex) as plain fencedjsonortsxcode blocks.apps/docsgains no@object-ui/*dependency. Measured onmain24351cf: all 57 renderer pages, 14 of the 17 plugin pages andcore/schema-rendereruse one. -
Fix links inside the moved pages so they point within objectstack docs. That covers links to other moved pages, to K2's merge targets and to K3's reference. Where a K2 or K3 target is not on
mainyet, link the section index; K4 sweeps the rest. -
Record the old-path → new-path pairs in the PR body, as a table K4 copies into the redirect map.
⛔ Do not delete or edit pages under ui/content/docs/ and do not touch ui/apps/site. K4 does both, together with the ui/scripts readers that pin those paths.
Who acts
A domain:devx card thread. The surface is content/docs/sdk/** and content/docs/meta.json; apps/docs is touched only if an MDX component is genuinely needed, which item 4 is meant to avoid. The diff is mostly new pages and will pass the 3000-line human-merge threshold, so the maintainer merges it.
Business reason. Integrators of the published @object-ui/* packages (18.2.0) keep their SDK guide when www.objectui.org is folded away. The root README still sends them there (npm install @object-ui/react @object-ui/components).
Acceptance
- The 95 pages render under
/docs/sdk/in theapps/docsbuild.pnpm --filter @objectstack/docs buildis green, the objectstack docs gates that the derived list names are green, and no@object-ui/*dependency is added toapps/docs/package.json. git grep -n "InteractiveDemo\|ComponentDemo\|LiveSplitDemo\|SchemaExample" -- content/docsprints nothing.- The PR body carries the old → new path table, with 95 rows.
Duplicate search. objectstack-ai/objectstack, "objectui docs migrate into objectstack docs site content/docs sdk objectui.org redirect retire ui/apps/site": 33 hits, the first 10 read: #26993 (open, the deploy card this fold supersedes), #27030 (open, the Vercel maintainer card), #27048 (open, skills/objectui plugin-ai, different files), #26140, #26688, #24230, #25677, #26944, #25854, #26035 (closed or unrelated). No card moves the pages. New.
Size: L. Clause-②: no. Metadata-protocol: none.
Activity
objectstack-fleet commentedon Oct 28, 2026
Claim: card thread "Restore objectui.org docs deploy", dispatch of #27140 (maintainer-directed: 「B 并入 objectstack 文档站」 03:24Z, 「VS Code 扩展 不会发布,其他同意」 and 「你负责派卡执行」 07:58Z, 2026-10-28, that thread)
Session:
session_01L9qibyAYPFxpNP4BCr7Z82(dispatching thread) · dev: a new card thread the project coordinator opens for this card; it names its own session in its os-dev-reportAccount:
os-teslaBranch: the dev card thread's platform-assigned
claude/project-thread-*branch (mode:thread; the only branch it pushes)Worktree: the dev card thread's own checkout
Domain:
domain:devxSeat:
domain:devx#1(seat 1 by default; dispatched on the maintainer's instruction from a card thread, not from a lane seat)File surface:
content/docs/sdk/**,content/docs/meta.json; ⛔ no edits underui/(K4 #27145 deletes the old pages), noapps/docsdependency change (stop on breach; explain in the report)Container & model: L,
mode:thread,model: opus(default;dispatch-gates --tier --repo objectstack-ai/objectstackon this surface prints no path-derived mandate),effort: highClause-②: no
Metadata-protocol: none
Responsibility: n/a — not a defect card
Thread-read: none
Premise: holds (page lists measured on main
24351cfe, 2026-10-28 08:0xZ: 183 pages underui/content/docs,guide/ci-cd-pipelinealready retired by #27071)Serial constraints cleared: none on
content/docs/sdk/(new section). Fold siblings: #27140, #27141 and #27142 run in parallel; #27145 is blocked by all three and does every deletion underui/. Open PRs were not enumerated by path; the dev mergesmainbefore marking the PR ready.Generated by Claude Code
objectstack-fleet commentedon Oct 28, 2026
os-dev-report
{ "issue": 27140, "status": "done", "branch": "claude/project-thread-g48t33", "pr": "https://github.com/objectstack-ai/objectstack/pull/27168", "session": "session_01L9qibzngYyRjmvNxjkfVyd", "premise_still_valid": true, "summary": "Moved the 38 SDK guide pages and 57 renderer-type pages from ui/content/docs into a new content/docs/sdk section (old /docs/PATH maps to /docs/sdk/PATH), added a Renderer Reference index, listed sdk in content/docs/meta.json. 241 SchemaExample live demos became static json blocks read from ui/examples/schema-catalog; DemoGrid/PluginLoader wrappers and site imports removed; no apps/docs dependency added. Links re-pointed to moved pages, K2 targets, /docs/ui for K3 and objectstack source paths. check:role-word stays red on 29 SDK API-key occurrences (chat message key, ARIA DOM key) pending the maintainer's ruling on a decision card; nothing re-baselined.", "tests": "pnpm --filter @objectstack/docs build at 26a01f6c: os-verify-lock VERDICT command-exit 0 (4m12s), 96 pages emitted under /en/docs/sdk. git grep for InteractiveDemo|ComponentDemo|LiveSplitDemo|SchemaExample in content/docs: no output. git diff origin/main...HEAD -- apps/docs: empty. Docs-only, no package tests apply.", "gates": "dispatch-gates --commands at 26a01f6c: 54 commands; --ran: 54 derived, 54 run, 0 NOT-MEASURED. 52 exit 0; check:skill-examples exit 3 in the sweep (client-react mid-build), re-run alone exit 0 (267 examples type-check); check:role-word exit 1 (29 occurrences in 5 sdk files, open question). CI check-runs: in_progress at report time.", "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm", "mcp_calls": "read-only: issue_read x4, pull_request_read x1; subscribe_pr_activity x1 (harness). No MCP write tool.", "api_writes": "1 fleet-write relay stroke (pr_create with assignees + labels: POST /pulls, POST /issues/27168/assignees, POST /issues/27168/labels); this report comment via post-stamped.", "open_questions": [ { "question": "How should the 29 remaining reserved-word occurrences (chat message key in plugin-chatbot, ARIA role key in 4 pages) clear check:role-word?", "options": [ "A baseline them with check-role-word.mjs --update (maintainer-only act), diff limited to the new sdk rows", "B declare an ai-sdk vendor boundary in the gate and mark the chat fences; ARIA still baselined", "C delete the chat-message and ARIA examples" ], "recommendation": "A, because these are real SDK API keys and ARIA is a kind the gate header already names as legitimate; posted as a decision card in the project thread" } ], "out_of_scope_findings": [ "carrier: K4 #27145 · README still links ui/content/docs/guide/quick-start.md and says guides are published at objectui.org · noted, not filed" ] }Generated by Claude Code