Uh oh!
There was an error while loading. Please reload this page.
docs: define Studio in the glossary, make the Setup/Studio split canonical - #151
Merged
Merged
Conversation
…nical Executes the 2026-08-20 maintainer ruling on #102 (option 1: Studio survives as the named metadata-authoring surface). - resources/glossary.mdx gains a `Studio` entry in alphabetical position that DEFINES the surface -- route, gate, what is authored there, and its relation to Setup -- rather than describing it. Describing without deciding is how this corpus grew two mutually-referential `Console` entries (#89), which the card forbids explicitly. - configure/index.mdx promotes "Permissions are designed in Studio, assigned in Setup" from a page callout to `## Setup and Studio`: the canonical statement of the split, with both names' routes, capabilities and audiences side by side. - The four PR #100 rewrites that dropped the noun now name Studio as the destination: build/data/index.mdx, build/packages.mdx, build/agents.mdx, configure/permissions/index.mdx. Every product fact asserted here was measured on the sibling repos' origin/main (objectstack 2866d5f97e, objectui 6ff0eb1), not composed: the route (`/studio/:packageId/:tab` inside the `/_console/` SPA), the entry gate (`studio.access`, STUDIO_ENTRY_CAPABILITY), the four pillars (Data, Automations, Interfaces, Access) and the five metadata kinds Studio creates (package, app, object, flow, permission). English only; locale siblings left alone and report stale, per AGENTS.md. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V8AcCw8C1feB7b5kiaJd7b
os-project-manager
marked this pull request as ready for review
August 22, 2026 13:59
Uh oh!
There was an error while loading. Please reload this page.
os-zhuang pushed a commit
that referenced
this pull request
Aug 29, 2026
…sites PR #100 retired the noun `Console` corpus-wide. In five places it removed a metadata-authoring destination and put nothing in its place. The 2026-08-20 ruling landed by PR #151 settled how such a site is repaired -- name Studio as the destination, never reintroduce `Console` -- and applied it to its own four sites. This transcribes the same ruling to the five it could not cover. - build/index.mdx frontmatter `description`: "by clicking through forms" -> "by clicking through forms in Studio" (119 chars, still a usable meta description; it renders in `<meta name="description">`, `og:description` and the JSON-LD block). - build/index.mdx click-build table row: the destination goes in the audience cell, "Admins who prefer Studio's forms". This table has THREE columns (Path / Who's it for / Output) where the model row at build/data/index.mdx:21 has two, so the row is not copied literally -- copying it would corrupt the table. The path name stays bare `**Click-build**`, exactly as the model leaves it. - build/index.mdx "What you'll never have to do": "Wire a form." -> "Wire a Studio form.", the same noun restoration the ruling applied elsewhere. - automation/flows.mdx:9: "the flow builder" -> "Studio's flow builder", matching "Studio's **Access** pillar" from the ruling's own output. - automation/flows.mdx visual-builder section: an ADDITION, not a replacement. "ObjectOS ships a visual flow builder" is true as it stands -- the product does ship it -- it is merely unlocated, so the sentence is kept and "It is Studio's **Automations** pillar." follows it. The claim that flow authoring is Studio's was re-verified by content on objectui `origin/main` (107babef, not the stale 6ff0eb1 the card cites): StudioDesignSurface.tsx routes /studio/:packageId/{data|automations| interfaces}, PILLAR_FOR_SURFACE_TYPE still maps `flow` -> `automations`, and AutomationsPillar renders the flow preview with `editing: true`. Everything else PR #100 dropped is the end-user/rendering sense of the word and stays dropped. `Console` occurs zero times in both files after this change. English only; locale siblings untouched and reported stale by design. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016TUrhcggSFrYctvp5dsV1A
os-zhuang pushed a commit
that referenced
this pull request
Aug 29, 2026
…sites (#232) PR #100 retired the noun `Console` corpus-wide. In five places it removed a metadata-authoring destination and put nothing in its place. The 2026-08-20 ruling landed by PR #151 settled how such a site is repaired -- name Studio as the destination, never reintroduce `Console` -- and applied it to its own four sites. This transcribes the same ruling to the five it could not cover. - build/index.mdx frontmatter `description`: "by clicking through forms" -> "by clicking through forms in Studio" (119 chars, still a usable meta description; it renders in `<meta name="description">`, `og:description` and the JSON-LD block). - build/index.mdx click-build table row: the destination goes in the audience cell, "Admins who prefer Studio's forms". This table has THREE columns (Path / Who's it for / Output) where the model row at build/data/index.mdx:21 has two, so the row is not copied literally -- copying it would corrupt the table. The path name stays bare `**Click-build**`, exactly as the model leaves it. - build/index.mdx "What you'll never have to do": "Wire a form." -> "Wire a Studio form.", the same noun restoration the ruling applied elsewhere. - automation/flows.mdx:9: "the flow builder" -> "Studio's flow builder", matching "Studio's **Access** pillar" from the ruling's own output. - automation/flows.mdx visual-builder section: an ADDITION, not a replacement. "ObjectOS ships a visual flow builder" is true as it stands -- the product does ship it -- it is merely unlocated, so the sentence is kept and "It is Studio's **Automations** pillar." follows it. The claim that flow authoring is Studio's was re-verified by content on objectui `origin/main` (107babef, not the stale 6ff0eb1 the card cites): StudioDesignSurface.tsx routes /studio/:packageId/{data|automations| interfaces}, PILLAR_FOR_SURFACE_TYPE still maps `flow` -> `automations`, and AutomationsPillar renders the flow preview with `editing: true`. Everything else PR #100 dropped is the end-user/rendering sense of the word and stays dropped. `Console` occurs zero times in both files after this change. English only; locale siblings untouched and reported stale by design. Claude-Session: https://claude.ai/code/session_016TUrhcggSFrYctvp5dsV1A Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes#102
Executes the 2026-08-20 maintainer ruling: option 1 —
Studiosurvives as the named metadata-authoring surface. The product's named places are the unnamed end-user surface, Setup (administration) and Studio (authoring). All three ruled deliverables, and nothing else.What changed (6 files, +37/-9)
1.
resources/glossary.mdxgains aStudioentry in alphabetical position, betweenSharing RuleandSurface. It defines the surface — route, gate, what is authored there, how many pillars, and its relation to Setup — instead of describing it. The card's stop condition was explicit about this: a describing-without-deciding entry is how this corpus grew two mutually-referentialConsoleentries (#89). The relation is stated in both directions ("Peer of Setup, not part of it"), so neither entry can be read without the other's boundary.2.
configure/index.mdxpromotes the split to a canonical statement. "Permissions are designed in Studio, assigned in Setup" was a blockquote aside above the Setup section; it is now## Setup and Studio, a section whose body says the sentence is the canonical statement of a split that runs through the whole product, with a table giving both names' route, capability and audience side by side. The original aside's second sentence is kept verbatim underneath. The glossary entry deep-links to the new anchor.3. The four PR #100 rewrites now name the destination:
build/data/index.mdx:21**Objects → New Object** → forms**Studio → Objects → New Object** → formsbuild/packages.mdx:54**Packages → New Package****Studio → Packages → New Package**build/agents.mdx:50Or in the UI: **Agents → New Agent**.Or in the UI: **Studio → Agents → New Agent**.configure/permissions/index.mdx:164The last one is pillar-qualified because that is what the sibling page already says (
managing-access.mdx:84, "Studio's Access pillar → Explain access") and because it is measurable:PILLAR_FOR_SURFACE_TYPEmapspermissionto theaccesspillar.Measured, not composed — including one correction to the dispatch's assumption
Every product fact asserted here was read off the sibling repos at
objectstackorigin/main2866d5f97eandobjectuiorigin/main6ff0eb1.The dispatch assumed Studio is an app at
/apps/studio, a syntactic peer of Setup's/apps/setup. It is not. Studio is a dedicated route subtree of the console SPA at/_console/studio—/studio,/studio/:packageId,/studio/:packageId/:tab— declared in objectuiapps/console/src/App.tsxviastudioRoutes, and explicitly outside the/apps/:appName/*mount, asstudioEntry.tsstates in prose: "today the/studio/*routes sit OUTSIDE the only mount of it (AppContent, which covers/apps/:appName/*)". ASTUDIO_APPmetadata app does exist (packages/platform-objects/src/apps/studio.app.ts), butpackages/apps/studio/src/index.tsrecords that it is deliberately not default-loaded: "the console ships a dedicated Studio surface at/_console/studio/<pkg>/<pillar>, so Studio no longer needs to exist as a navigable app tile in a stock boot" — andpackages/cli/src/commands/serve.ts:2470andpackages/cli/src/adr-0048-app-split.test.ts:13say the same thing independently.The consequence the dispatch was guarding against does not occur, which is why this did not stop. The stop condition was that the
Surfaceentry ("There are two, not three") would need a decision this card cannot make. It does not:createConsoleStaticPluginserves one/_console/*catch-all and every Studio path is a route inside it, so Studio is inside the UI surface, not a third one.Surfaceis left untouched and stays true; the newStudioentry carries the relation instead ("inside the UI served at/_console/"). Had the entry been written as the assumed/apps/studio, the glossary would have shipped a route that does not resolve.The rest of the measured basis: the entry gate is
studio.access(STUDIO_ENTRY_CAPABILITY, objectuistudioEntry.ts:107, an entry-level gate, fail-closed); the four pillars areData, Automations, Interfaces, Access(StudioDesignSurface.tsx:149); the five metadata kinds Studio creates are package, app, object, flow and permission (CreateItemDialog.tsxheader); and scope is one package at a time (/studio/:packageId/:tab).Sweep result — the dispatch's second assumption is falsified, and not fixed here
The dispatch assumed the four sites above are the only places PR #100 dropped the noun, and asked for a sweep. Answered by diffing PR #100 (
git show adbcafc -U0 -- 'content/docs') and classifying every removedConsoleoccurrence, not by enumeration. Five more sites drop a metadata-authoring destination:build/index.mdx:3,:13,:52, andbuild/automation/flows.mdx:9,:279.build/index.mdx:13is the sharpest — the same "click-build" row asbuild/data/index.mdx:21, so after this PR one of the pair names Studio and the other does not.All five are outside this card's declared six-file surface, so none is touched here. Filed as #148 with the full classification. Everything else PR #100 dropped is the end-user sense of the word and is correctly gone.
Separately filed as #150:
reference/cli.mdx:74documents anos studiocommand that the CLI does not ship (oclif discovers commands frompackages/cli/src/commands/; there is no studio command, and the upstreampackages/cli/README.md:45carries the same stale claim). That line is cited in the card as evidence Studio is live; the ruling is unaffected, since it rests onstudio.accessand on the shipped/_console/studiosurface, both measured above.Surface discipline
Exactly the six declared files are touched.
build/automation/approvals.mdx(queued for #131),configure/notifications.mdx(in flight for #132),build/interface/apps.mdxandconfigure/permissions/managing-access.mdx(read as the vocabulary model, not rewritten) and every locale sibling are untouched —git diff --name-onlyis the six.Gates — all green on
46fc8b0, the tree this PR pushespnpm install --frozen-lockfileDone in 9.1spnpm turbo run type-check --continueTasks: 1 successful, 1 total—cache miss, executing a4d54c7845f5b5bapnpm turbo run buildTasks: 1 successful, 1 total—cache miss, executing cc6753e43e7379ebpnpm turbo run testTasks: 1 successful, 1 total— re-run with--force(cache bypass, force executing) after the first run replayed from the shared worktree cachecheck-node-floor.mjs --self-test+ checkEvery declared floor clears what the dependency tree requirescheck-translation-ownership.mjsThis PR touches 0 translation artifact(s) and 6 other file(s)check-translations.mjs(freshness)✓ translations gate passed— the six English edits report as locale staleness, non-blocking by designcheck-translation-output.mjs --self-test+ PR-scoped✓ translation output gate passed (138 pre-existing finding(s) reported)— none in the changed filesBoth turbo tasks that consume
content/docsreportcache miss, so the greens were computed on this content rather than replayed from a sibling worktree's tree.The glossary's
/docs/configure#setup-and-studiolink was verified against the built output rather than assumed:id="setup-and-studio"appears inapps/docs/.nextfor the configure page.No changeset: this repo has no changeset flow. English only; locale siblings left alone per AGENTS.md.
Generated by Claude Code