Repository navigation
Edition layer: a top-level Editions group (feature matrix by Community / Free / Team / Enterprise), a three-path Start, editions: badges on every page, and the five framework-reference pages collapsed to summaries #343
Description
Filing gate: ③ a task the maintainer directed — Sam, project thread "Decide docs.objectos.ai content scope", 2026-10-27, verbatim: 「比如版本,有社区免费版,云端的各种版本,企业版」 · 「同意,立卡」. The decision record is the thread's decision document (private to the maintainer); every reading below was re-measured on this repository at c622daa.
维护者速读
站上只有品牌和价格,没有按版本逐项的真实差异:存储 Free 1 GB / Team 20 GB、Free 没有开发环境、MCP Free 限 20/min 与 1,000/天、自有域名 Team 起、RLS/FLS Free 没有——这些代码里都在执行,英文页里一条都没写("custom domain""credit" 出现 0 次)。本卡补版本层:顶层 Editions 组、Start 三条路径并列、每页 editions: 徽章、Reference 五页框架语法页缩为摘要。它同时承接 #300 的信息架构部分。
Governing text
- Edition vocabulary: Community · Free · Team · Enterprise, with Business and Business Self-Managed as Enterprise contract options (docs(editions): ObjectOS Community / Cloud / Enterprise — README, trademark clause, edition names in docs; this repository is the docs source, issues go to objectstack #339, docs(license): rate card to Community · Free · Team · Enterprise; Business and Business Self-Managed as Enterprise contract options #342). Do not reintroduce a fourth edition name.
- Facts for the matrix come from the cloud repository's
docs/design/pricing.md(edition feature matrix) anddocs/design/ee-feature-catalog.md("what may be promised externally" column is the ceiling). Only differences the code executes go in the matrix; a declared-but-unbuilt row (tiered audit retention, HA orchestration) is left out, per pricing.md R12. AGENTS.md〈Critical rules〉 1: English only; locale siblings are left to the translation pass, except where a page is retired or renamed (delete its siblings in the same PR).- Positioning sentences stay byte-identical to
apps/docs/lib/positioning.ts(check-positioning.mjs).
Done looks like
- Editions group at the top level of
content/docs/meta.json, afterarchitecture:editions/compare.mdx— one matrix, rows = capabilities, columns = Community / Cloud Free / Cloud Team / Enterprise, each cell a fact the runtime enforces (storage cap, dev environments, MCP limits, custom domain, RLS/FLS, in-UI AI, external IdP SSO, SCIM, clustering, multi-org, air-gap). Each row names where the limit is enforced in product terms (e.g. "upload refused at 100%, warning at 80%").resources/license.mdxmoves toeditions/license.mdxwith a redirect inapps/docs/redirects.mjs.editions/public-preview.mdx— what Public Preview means for ObjectOS Cloud (durable data, APIs may change, no SLA yet); the cloud repository'scontent/docs/concepts/preview.mdxis reference material only, rewritten in product voice.
- Start group replaces the single Quickstart entry:
start/cloud.mdx(Start on ObjectOS Cloud: sign up, organization and slug, create the production environment, first app via AI Builder or a template, invite members — the welcome-page flow of the cloud control plane),start/community.mdx(today'squickstart.mdx, retitled "Run ObjectOS Community locally", intro rewritten),start/enterprise.mdx(one page pointing into Deploy). Redirect/docs/quickstart. editions:frontmatter on every English page ([community, cloud, enterprise]subsets), rendered as a page-head badge row and a sidebar mark inapps/docs;type-checkfails on a page without the key. Configure pages are labelled per page (runtime,data-sources,storage= community + enterprise; the rest all three); Deploy/Operate = community + enterprise.- Reference:
rest-api,objectql,cel,field-types,skills-clieach shrink to "where the product uses it + three to five examples" with a fixed first line linking the full specification on objectstack.ai/docs;environment-variables,cli,security,runtime-capabilitiesstay. One rule line inAGENTS.md: this site documents product behaviour, never syntax tables; syntax links to objectstack.ai. extend-existing-systems.mdxmoves under Build; everydocs.objectstack.ailink becomesobjectstack.ai/docs/....- Screenshots of the new sidebar at 1440 and 390; locale siblings per the translation workflow.
Out of scope
The Cloud organization pages (separate card), the Deploy/Operate merge (separate card), the Use/Build gap pages (separate card). The Cloud sign-up URL that #300 waits on (objectstack-ai/www.objectos.ai#215) — start/cloud.mdx links https://www.objectos.ai until it is answered.
Related-to: #300 (this card carries its IA items; its edition-vocabulary blocker #295 is already answered by #339/#342), #341, #141.
Activity
objectstack-fleet commentedon Oct 27, 2026
Claim: PM loop round 1 · 2026-10-27T13:07Z
Session:
session_01QsR2jTaZ2GeyfjANMwstiw(seat thread; the dev is card threadsession_01QsR2jU9jZVmgYGkkQEtDwx, identity by branch)Account:
zhuangjianguoBranch:
claude/project-thread-ri8ilt(platform-assigned; a card thread can push only this branch, a measured platform exception toclaude/issue-<n>-<slug>)Worktree: the card thread's own
docs.objectos.aicheckoutDomain:
domain:docs(single-lane repository)Seat:
repo:docs.objectos.ai#1File surface:
content/docs/**English sources (rootmeta.json, neweditions/andstart/groups, theeditions:key on every English page, the five Reference pages, theextend-existing-systems.mdxandresources/license.mdxmoves) plus locale-sibling deletions for moved or retired pages;apps/docs/**(frontmatter schema, page-head badges, sidebar mark,redirects.mjs);AGENTS.md(one rule line, governed) — stop on breach; explain in the reportContainer & model: L,
mode:thread,model: default tier (TIER_DEFAULT — sister repository, hand-derived: no packages/spec and no protocol-semantic surface; dispatch-gates --tier refuses a non-objectstack checkout),effort: project default (order asks for xhigh care)Clause-②: no
Metadata-protocol: none
Responsibility: n/a — not a defect card
Thread-read: none
Premise: holds (the card was measured at
c622daa;origin/mainis stillc622daa). The cloud repository the matrix facts cite is not reachable from this project: the dev states only facts the card states, and every other cell goes toopen_questions.Serial constraints cleared: #337 (round 1,
claude/project-thread-4eqcxt) adds oneAGENTS.mdparagraph in another section, so the later PR merges main. #344, #345 and #346 queue behind this card (rootmeta.json, page frontmatter). #340's link sweep waits for this card'slicense.mdxmove. Open PRs: Dependabot only.objectstack-fleet commentedon Oct 27, 2026
os-dev-report
{ "issue": "objectstack-ai/docs.objectos.ai#343", "status": "pr_open", "branch": "claude/project-thread-ri8ilt", "pr": "https://github.com/objectstack-ai/docs.objectos.ai/pull/349", "head": "7c399fbfcf372f9e373a77d19d6243aea81b0d33", "session": "session_01QsR2jU9jZVmgYGkkQEtDwx", "premise_still_valid": true, "summary": "Edition layer: Editions group (compare matrix, license moved in, public-preview), Start replaces Quickstart (cloud, community, enterprise), editions: frontmatter on all 84 English pages rendered as a page-head badge row and an aria-hidden sidebar mark, type-check fails an English page without it, five Reference pages shrunk to usage + examples with a fixed first line linking objectstack.ai, extend-existing-systems moved under Build, docs.objectstack.ai links moved to objectstack.ai/docs, one AGENTS.md rule line. Three permanent redirects. Draft PR, CI green on the head.", "tests": { "added": "apps/docs/scripts/check-frontmatter.mjs, a loader-backed frontmatter check appended to type-check, with a live negative control (a temp English page without editions: must be refused or the script exits 1 NOT MEASURED)", "pm_hypothesis_editions_fails_in_type_check": "disproved as stated: the fumadocs-mdx CLI and tsc never run the frontmatter loader (EXIT=0 with no editions anywhere); the new step makes it true, measured 80/214 pages failing before the keys were added", "probes": "unknown value, duplicate and empty list refused; a locale file without the key passes", "smoke": "smoke-docs /docs/quickstart target is now a redirect assertion to /docs/start/community" }, "gates": { "local_at_head": { "gen-zh-hant --check": 0, "check-doc-samples": 0, "type-check": 0, "build": 0, "check-locale-surface": 0, "check-positioning": 0, "check-search-locales": 0, "turbo test": 0, "check-translations": 0, "check-translation-ownership": 0, "opennext packaging": 0, "smoke-docs on workerd preview": 0 }, "ci_at_head": {"build": "success", "Ownership & freshness": "success", "Node floor": "success", "Deploy docs": "skipped (PR)"}, "browser": "Playwright at 1440 and 390: every page 200, no console errors, no horizontal scroll at 390; mark only in sidebar and drawer; badge links locale-aware; four redirects land with 200. Screenshots in /mnt/project-files/docs-343/" }, "line_budget": {"files_changed": 130, "insertions": 1051, "deletions": 4536, "reference_share": "-4443 in content/docs/reference/** (30 files incl. deleted locale siblings)", "over_3000": true, "maintainer_brief": "six-line 维护者速读 in the PR body"}, "dogfood_battery": "n/a", "files_changed": { "app": ["apps/docs/lib/editions.ts (new)", "apps/docs/components/editions.tsx (new)", "apps/docs/scripts/check-frontmatter.mjs (new)", "apps/docs/source.config.ts", "apps/docs/package.json", "apps/docs/app/[lang]/docs/layout.tsx", "apps/docs/app/[lang]/docs/[[...slug]]/page.tsx", "apps/docs/app/global.css", "apps/docs/lib/ui-text.ts + 7 locale JSONs (zh-Hant regenerated)", "apps/docs/next.config.mjs"], "content": "9 added, 3 renamed (quickstart, license, extend-existing-systems), 21 locale siblings deleted, 84 English pages carry editions:, 5 Reference pages rewritten, meta.json files for root, start, editions, resources, build", "governed": ["AGENTS.md (one Don't line)"], "outside_claimed_surface": [".github/scripts/smoke-docs.mjs", "README.md"] }, "deviations": [ "Redirects live in apps/docs/next.config.mjs; the card's apps/docs/redirects.mjs is an objectstack-repo file and does not exist here", ".github/scripts/smoke-docs.mjs changed (outside the claimed surface): its /docs/quickstart target would fail post-deploy otherwise", "README.md: two License links moved to the new URL (outside the claimed surface; the old URL would redirect anyway)", "type-check gained a fourth step; AGENTS.md's Commands line still spells three steps, left so the governed diff is one line", "ui-text key editionsLabel translated into six locale JSONs, following the app-chrome precedent", "Edition labels beyond the card: reference/environment-variables [community, enterprise], build/ai-builder [cloud, enterprise]", "Sidebar mark is aria-hidden (check-locale-surface refused an sr-only label: 7182 findings); the badge row is the accessible statement", "Locale meta.<l>.json files untouched (English only): locale sidebars still list license under Resources and lack extend-existing-systems under Build until the translation pass" ], "mcp_calls": 1, "mcp_calls_detail": "subscribe_pr_activity on #349 (harness PR watch, not a GitHub write); zero GitHub MCP calls", "api_writes": { "count": 3, "endpoints": ["git push x2 to claude/project-thread-ri8ilt", "relay pr_create stroke (POST /repos/objectstack-ai/docs.objectos.ai/pulls draft + POST /issues/349/assignees), run 40513707864, body read back byte-identical", "this os-dev-report comment via post-stamped"] }, "open_questions": [ "Compare matrix n/d cells: Enterprise storage limit; development environment on Community, Team, Enterprise; MCP limits on Team; RLS/FLS on Team", "Where the storage quota is enforced (the card's 80% warning / 100% refusal example is not a stated fact, so not written)", "Exact Cloud sign-up URL for start/cloud.mdx (www.objectos.ai#215)", "Exact button names in the Cloud welcome flow", "Business SSO details", "Should AGENTS.md's Commands line spell the fourth type-check step (a second governed line)" ], "out_of_scope_findings": [ "Historical comments in middleware, root-provider, open-next.config, llms routes and lib/source.ts still mention /docs/quickstart and resources/license (comments only, URLs redirect); none filed", "The privacy page names docs.objectstack.ai as a property, not a link; left as is" ] }objectstack-fleet commentedon Oct 27, 2026
Landing · 2026-10-27T14:30Z ·
session_01QsR2jTaZ2GeyfjANMwstiw· seatrepo:docs.objectos.ai#1os-zhuang(aGOVERNED_APPROVERSaccount, APPROVED on head19b4ea4, the ACCEPTed head of seat record 6443535445) as merge commitd1d6a3emainCI run 40519093450 ond1d6a3ebuildsuccess (local workerd render smoke success) ·Deploy docs / Publish the tested Workersuccess, "Assert a new version is serving" success ·Deploy docs / Smoke-check the live sitesuccess · rollback and failure-card jobs skippedState change: this card closed itself through
Fixes #343.pm:dispatchedcomes off here, andneeds-user-decisioncomes off PR #349, in one stroke. The hot-file queue moves on: #345 and #346 dispatch fromd1d6a3e. Then/dcells ofeditions/compare.mdxare routed to the cloud lane on #344.