Repository navigation
docs(ui-merge): fold objectui.org into objectstack docs, K2 — merge the 46 field, Console-behaviour and schema pages into the existing objectstack pages #27141
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 K2.
维护者速读
objectui 文档里有 46 页讲的是 objectstack 本身已有文档的东西:字段、Console 与元数据行为、app/report/theme 等 schema。这些页不单独搬,而是把各页里 objectstack 文档没有的内容(控件、显示行为、Console 交互)合进现有页面,一个主题只留一页。print-pages 和 react-pages 两边各有一份,合成一份。本卡不删 ui/content/docs 的原页,删除和跳转由 K4 做。
Wanted
Merge each page below into the named existing page or section. Paths are relative to ui/content/docs/; the targets are in content/docs/. "Merge" means:
- Carry over what the target lacks, such as the field's widget and display behaviour, the Console interaction, or a worked example. Rewrite live-demo MDX components as plain
jsoncode blocks. - Drop what the target already says, and where the two disagree, keep the target's wording.
- Where a page has nothing the target lacks, write that in the PR body's row for it and carry nothing.
- Fields, 27 pages →
data-modeling/field-types.mdx(or its per-type subpages, if the dev finds the page too long and splits it by type with ameta.json). The pages arefields/{auto-number,boolean,currency,date,datetime,email,file,formula,grid,image,location,lookup,number,object,password,percent,phone,rich-text,select,summary,text,textarea,time,url,user,vector,widget-props}. - Console and metadata behaviour, 14 pages →
content/docs/ui/(or the closer existing chapter):guide/{console,metadata-diagnostics,flow-designer,notifications,slotted-pages,record-edit-modes,designing-app-navigation,dashboard-filters,public-forms,user-state-persistence,expressions};guide/print-pages→ui/print-pages.mdxandguide/react-pages→ui/react-pages.mdx(these duplicate existing pages: merge them into one);guide/agent-skills→ai/skills.mdx.
- Schemas, 5 pages → the matching
content/docs/ui/page:core/app-schema→apps.mdx,core/report-schema→reports.mdx,core/enhanced-actions→actions.mdx,layout/page-header→pages.mdx, andcore/theme-schema→ theui/page that documents themes, or a newui/themes.mdxif none does. - Record the old-path → target pairs in the PR body (46 rows, each with what was carried over or "nothing new"). K4 copies the pairs into the redirect map.
⛔ Do not delete or edit pages under ui/content/docs/, and do not touch ui/apps/site or content/docs/sdk/, which is K1's.
Who acts
A domain:devx card thread, with surface content/docs/{data-modeling,ui,ai}/**. The pages describe metadata the spec owns, so read each claim against packages/spec before carrying it over: an objectui page that contradicts the spec is dropped, not merged. Serial constraint with K3: both may touch content/docs/ui/meta.json, so whichever lands second merges main.
Business reason. Metadata authors and Console users read objectstack.ai/docs. Today they find half of a field's or a page's behaviour there and the other half on www.objectui.org, and that site goes away with this fold.
Acceptance
- Each of the 46 pages has a row in the PR body naming its target and what was carried.
pnpm --filter @objectstack/docs buildis green, along with the docs gates the derived list names (check:docs, doc-authoring, links).- No claim carried over contradicts
packages/spec.
Duplicate search. The same query as the fold's other cards: "objectui docs migrate into objectstack docs site content/docs sdk objectui.org redirect retire ui/apps/site", 33 hits, the first 10 read (#26993, #27030, #27048, #26140, #26688, #24230, #25677, #26944, #25854, #26035). None merges these pages. New.
Size: M–L. Clause-②: no. Metadata-protocol: none.
Activity
objectstack-fleet commentedon Oct 28, 2026
Claim: card thread "Restore objectui.org docs deploy", dispatch of #27141 (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/{data-modeling,ui,ai}/**; ⛔ nocontent/docs/sdk/**(#27140), no edits underui/(stop on breach; explain in the report)Container & model: M–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: #27142 may also touch
content/docs/ui/meta.json; whichever lands second mergesmain. 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": 27141,
"status": "done",
"branch": "claude/project-thread-yfxlcc",
"pr": "#27170",
"session": "session_01L9qibzFEhNgS8KGkqBsQFu",
"premise_still_valid": true,
"summary": "Merged the 46 objectui pages into content/docs: per-type Console behaviour into data-modeling/field-types.mdx; two new pages ui/console.mdx and ui/studio.mdx; guide and schema content into apps, pages, actions, dashboards, forms, create-vs-edit-form, print-pages, react-pages and ai/skills. Every carried claim was read against packages/spec; contradicting claims were dropped or corrected (no /meta/items route, os check -> os validate, details+tabs slots refused together, relatedLayout/grid/menu/legacy ActionSchema and ReportComponentSchema not spec). The PR body carries the 46-row old-path -> target table for K4. Diff 15 files, +1186/-2, docs plus scripts/docs-audit/handwritten-docs.json (required by check:docs-audit-scope for new pages).",
"tests": "Docs only, no tests changed. pnpm --filter @objectstack/docs build: exit 0. check:skill-examples: 270 prose examples type-check.",
"gates": "dispatch-gates --commands derived 53 families at head 3917bda; all 53 ran with exit 0 recorded before any pipe; --ran: 53 derived, 53 run, 0 NOT-MEASURED, 0 UNRUN. First sweep found 3 (docs-audit-scope list, role-word, doc-security-posture sharingModel) fixed in branch. CI check-runs pending at report time.",
"dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
"mcp_calls": "3 — issue_read (read), subscribe_pr_activity, pull_request_read schema load; no MCP write tools",
"api_writes": "3 — fleet-write relay: pr_create (#27170), pr_request_reviewers (os-tesla, os-zhuang); post-stamped: this report comment",
"open_questions": [],
"out_of_scope_findings": [
"carrier: noted, not filed · content/docs/ui/forms.mdx said the Console was 'a separate package/repo'; corrected in place as one phrase since the page was being edited"
]
}