docs: name Studio as the authoring destination in the five remaining PR #100 sites - #232

Merged
os-zhuang merged 1 commit into
mainfrom
claude/issue-148-studio-destination-five-sites
Aug 29, 2026
Merged

docs: name Studio as the authoring destination in the five remaining PR #100 sites#232
os-zhuang merged 1 commit into
mainfrom
claude/issue-148-studio-destination-five-sites

Conversation

@claude

@claudeclaudeBot commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Fixes#148

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.

Scope held tight: everything else PR #100 dropped is the end-user / rendering sense of the word and stays dropped. After this change Console occurs zero times in both edited files — nothing here is a reintroduction. build/data/index.mdx (the model) is untouched, and no locale sibling is touched.

The five sites

  1. build/index.mdx:3 — frontmatter description. by clicking through formsby clicking through forms in Studio.
  2. build/index.mdx:13 — the click-build table row. Admins who prefer formsAdmins who prefer Studio's forms.
  3. build/index.mdx:52- Wire a form.- Wire a Studio form.
  4. build/automation/flows.mdx:9audit log, the flow builder, and the [AI Builder]…audit log, Studio's flow builder, and the [AI Builder]…
  5. build/automation/flows.mdx:279 — the ## Visual builder section keeps its existing sentence and gains It is Studio's **Automations** pillar.

Three judgment calls, stated

1. Site 2 is not a literal copy of the model row — the two tables are different shapes

  • model build/data/index.mdx:21two columns (Path / Looks like)
  • the row repaired here — three columns (Path / Who's it for / Output)

A literal copy would corrupt the table. What the ruling settles is that the same claim names the same destination, in whichever column this table puts it. Two consequences:

  • The path name stays bare **Click-build** (fallback). That is exactly what the ruling left in the model row — it named Studio in the destination cell and did not restore the path name as **Studio click-build**. Both pages therefore keep calling the path the same thing, which is the half of the card about the two pages carrying "the same click-build row".
  • The destination goes in the cell that already names the mechanismWho's it for was Admins who prefer forms, and those forms are Studio's. Output ("The same live metadata") is genuinely unchanged and is not a destination column.

The possessive form, rather than a bold arrow route, follows the ruling's own output at configure/permissions/index.mdx:164: "Studio's Access pillar".

2. Site 5 is an addition, not a replacement

"ObjectOS ships a visual flow builder" is not wrong — the product does ship it. PR #100 substituted the product name there, so the sentence lost its where, not its truth. Replacing ObjectOS with Studio would trade a true statement for an odd one (Studio does not ship things; ObjectOS ships Studio). So the sentence stands and is located by the one that follows it. This also gives the pre-existing "auditable in the flow builder" at :275 an antecedent it did not have.

3. Site 1 is a meta description, so its length and its YAML were measured, not assumed

119 characters after the edit — an unquoted YAML scalar with no colon-space and no leading indicator character. Confirmed on the built artifact rather than by grep: the page renders with the description intact in the description meta tag, in og:description, and in the JSON-LD block.

The Studio claim was re-verified by content, not by the card's sha

The card pins "flow authoring is Studio's" to objectui 6ff0eb1. That sha is stale — objectui origin/main is now 107babe — so the claim was re-measured there instead:

  • packages/app-shell/src/views/studio-design/StudioDesignSurface.tsx header: routed as /studio/:packageId/{data|automations|interfaces}, with "Automations: flows".
  • PILLAR_FOR_SURFACE_TYPE still maps flowautomations (same file).
  • AutomationsPillar renders the flow preview with editing: true — the visual canvas, not a read-only view.

Form design likewise sits under studio-design/ (ObjectFormDesigner.tsx), which is what site 3 asserts.

Verification — every run below is on 51c2d77, the head of this branch

Run from the repo root; exit codes captured before any pipe; each gate's own verdict line quoted.

GateExitIts own verdict line
pnpm turbo run type-check --continue --force0Tasks: 1 successful, 1 total · Cached: 0 cached, 1 total
pnpm turbo run build --force0Tasks: 1 successful, 1 total · Cached: 0 cached, 1 total
pnpm turbo run test --force0✓ 4 self-test(s) passed
node .github/scripts/check-locale-surface.mjs0✓ every advertised URL has a source file and every source file is advertised…
node apps/docs/scripts/gen-zh-hant.mjs --check0✓ zh-Hant: 73 generated file(s) match the zh-Hans sources byte for byte.
node .github/scripts/check-node-floor.mjs0✅ Every declared floor clears what the dependency tree requires…
node .github/scripts/check-translations.mjs0✓ translations gate passed
node .github/scripts/check-translation-output.mjs --files …0✓ translation output gate passed (138 pre-existing finding(s) reported)

--force throughout, because the turbo cache is shared across worktrees in this container and has replayed a sibling's green here before; every turbo line above reports 0 cached, so these are real executions.

Render checks on the built artifact (.next/server/app/en/docs/…): the Build page's table still parses as 3 columns in every row including the header, the description meta tag carries the new text, and Console occurs 0 times in both rendered pages.

Locale siblings are left alone per AGENTS.md — the freshness gate reports them stale and does not block; there are no orphans and nothing unstamped.

Reported, not folded in: a candidate sixth site

content/docs/build/index.mdx:36 reads 1. **Just exploring?** → Open ObjectOS, start the [AI Builder](/docs/build/ai-builder),. PR #100 rewrote that from Open Console, start the AI Builder — the same product-name substitution shape as site 5, and the AI Builder is an authoring path.

It is deliberately not touched here, for two reasons: the card enumerates five sites and says a sixth is to be reported rather than folded in; and naming Studio there would be a new decision, not transcription — objectui's StudioDesignSurface.tsx states the AI copilot is not part of the open-source surface but an injected aiSlot the cloud edition fills, so whether the AI Builder is reached "in Studio" is exactly the kind of question this card says it does not contain.

That candidate is filed unassigned as #233, with the measurement that separates it from the five settled here.

Out of scope and left open: #79, and #233.


Session: session_016TUrhcggSFrYctvp5dsV1A · branch claude/issue-148-studio-destination-five-sites


Generated by Claude Code

…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
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PR #100 dropped the metadata-authoring destination in five more places than the four #102 names

2 participants

@os-zhuang@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

docs: name Studio as the authoring destination in the five remaining PR #100 sites - #232

Merged
os-zhuang merged 1 commit into
mainfrom
claude/issue-148-studio-destination-five-sites
Aug 29, 2026
Merged

docs: name Studio as the authoring destination in the five remaining PR #100 sites#232
os-zhuang merged 1 commit into
mainfrom
claude/issue-148-studio-destination-five-sites

Conversation

@claude

@claudeclaudeBot commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Fixes#148

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.

Scope held tight: everything else PR #100 dropped is the end-user / rendering sense of the word and stays dropped. After this change Console occurs zero times in both edited files — nothing here is a reintroduction. build/data/index.mdx (the model) is untouched, and no locale sibling is touched.

The five sites

  1. build/index.mdx:3 — frontmatter description. by clicking through formsby clicking through forms in Studio.
  2. build/index.mdx:13 — the click-build table row. Admins who prefer formsAdmins who prefer Studio's forms.
  3. build/index.mdx:52- Wire a form.- Wire a Studio form.
  4. build/automation/flows.mdx:9audit log, the flow builder, and the [AI Builder]…audit log, Studio's flow builder, and the [AI Builder]…
  5. build/automation/flows.mdx:279 — the ## Visual builder section keeps its existing sentence and gains It is Studio's **Automations** pillar.

Three judgment calls, stated

1. Site 2 is not a literal copy of the model row — the two tables are different shapes

  • model build/data/index.mdx:21two columns (Path / Looks like)
  • the row repaired here — three columns (Path / Who's it for / Output)

A literal copy would corrupt the table. What the ruling settles is that the same claim names the same destination, in whichever column this table puts it. Two consequences:

  • The path name stays bare **Click-build** (fallback). That is exactly what the ruling left in the model row — it named Studio in the destination cell and did not restore the path name as **Studio click-build**. Both pages therefore keep calling the path the same thing, which is the half of the card about the two pages carrying "the same click-build row".
  • The destination goes in the cell that already names the mechanismWho's it for was Admins who prefer forms, and those forms are Studio's. Output ("The same live metadata") is genuinely unchanged and is not a destination column.

The possessive form, rather than a bold arrow route, follows the ruling's own output at configure/permissions/index.mdx:164: "Studio's Access pillar".

2. Site 5 is an addition, not a replacement

"ObjectOS ships a visual flow builder" is not wrong — the product does ship it. PR #100 substituted the product name there, so the sentence lost its where, not its truth. Replacing ObjectOS with Studio would trade a true statement for an odd one (Studio does not ship things; ObjectOS ships Studio). So the sentence stands and is located by the one that follows it. This also gives the pre-existing "auditable in the flow builder" at :275 an antecedent it did not have.

3. Site 1 is a meta description, so its length and its YAML were measured, not assumed

119 characters after the edit — an unquoted YAML scalar with no colon-space and no leading indicator character. Confirmed on the built artifact rather than by grep: the page renders with the description intact in the description meta tag, in og:description, and in the JSON-LD block.

The Studio claim was re-verified by content, not by the card's sha

The card pins "flow authoring is Studio's" to objectui 6ff0eb1. That sha is stale — objectui origin/main is now 107babe — so the claim was re-measured there instead:

  • packages/app-shell/src/views/studio-design/StudioDesignSurface.tsx header: routed as /studio/:packageId/{data|automations|interfaces}, with "Automations: flows".
  • PILLAR_FOR_SURFACE_TYPE still maps flowautomations (same file).
  • AutomationsPillar renders the flow preview with editing: true — the visual canvas, not a read-only view.

Form design likewise sits under studio-design/ (ObjectFormDesigner.tsx), which is what site 3 asserts.

Verification — every run below is on 51c2d77, the head of this branch

Run from the repo root; exit codes captured before any pipe; each gate's own verdict line quoted.

GateExitIts own verdict line
pnpm turbo run type-check --continue --force0Tasks: 1 successful, 1 total · Cached: 0 cached, 1 total
pnpm turbo run build --force0Tasks: 1 successful, 1 total · Cached: 0 cached, 1 total
pnpm turbo run test --force0✓ 4 self-test(s) passed
node .github/scripts/check-locale-surface.mjs0✓ every advertised URL has a source file and every source file is advertised…
node apps/docs/scripts/gen-zh-hant.mjs --check0✓ zh-Hant: 73 generated file(s) match the zh-Hans sources byte for byte.
node .github/scripts/check-node-floor.mjs0✅ Every declared floor clears what the dependency tree requires…
node .github/scripts/check-translations.mjs0✓ translations gate passed
node .github/scripts/check-translation-output.mjs --files …0✓ translation output gate passed (138 pre-existing finding(s) reported)

--force throughout, because the turbo cache is shared across worktrees in this container and has replayed a sibling's green here before; every turbo line above reports 0 cached, so these are real executions.

Render checks on the built artifact (.next/server/app/en/docs/…): the Build page's table still parses as 3 columns in every row including the header, the description meta tag carries the new text, and Console occurs 0 times in both rendered pages.

Locale siblings are left alone per AGENTS.md — the freshness gate reports them stale and does not block; there are no orphans and nothing unstamped.

Reported, not folded in: a candidate sixth site

content/docs/build/index.mdx:36 reads 1. **Just exploring?** → Open ObjectOS, start the [AI Builder](/docs/build/ai-builder),. PR #100 rewrote that from Open Console, start the AI Builder — the same product-name substitution shape as site 5, and the AI Builder is an authoring path.

It is deliberately not touched here, for two reasons: the card enumerates five sites and says a sixth is to be reported rather than folded in; and naming Studio there would be a new decision, not transcription — objectui's StudioDesignSurface.tsx states the AI copilot is not part of the open-source surface but an injected aiSlot the cloud edition fills, so whether the AI Builder is reached "in Studio" is exactly the kind of question this card says it does not contain.

That candidate is filed unassigned as #233, with the measurement that separates it from the five settled here.

Out of scope and left open: #79, and #233.


Session: session_016TUrhcggSFrYctvp5dsV1A · branch claude/issue-148-studio-destination-five-sites


Generated by Claude Code

…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
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PR #100 dropped the metadata-authoring destination in five more places than the four #102 names

2 participants

@os-zhuang@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

docs: name Studio as the authoring destination in the five remaining PR #100 sites - #232

Merged
os-zhuang merged 1 commit into
mainfrom
claude/issue-148-studio-destination-five-sites
Aug 29, 2026
Merged

docs: name Studio as the authoring destination in the five remaining PR #100 sites#232
os-zhuang merged 1 commit into
mainfrom
claude/issue-148-studio-destination-five-sites

Conversation

@claude

@claudeclaudeBot commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Fixes#148

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.

Scope held tight: everything else PR #100 dropped is the end-user / rendering sense of the word and stays dropped. After this change Console occurs zero times in both edited files — nothing here is a reintroduction. build/data/index.mdx (the model) is untouched, and no locale sibling is touched.

The five sites

  1. build/index.mdx:3 — frontmatter description. by clicking through formsby clicking through forms in Studio.
  2. build/index.mdx:13 — the click-build table row. Admins who prefer formsAdmins who prefer Studio's forms.
  3. build/index.mdx:52- Wire a form.- Wire a Studio form.
  4. build/automation/flows.mdx:9audit log, the flow builder, and the [AI Builder]…audit log, Studio's flow builder, and the [AI Builder]…
  5. build/automation/flows.mdx:279 — the ## Visual builder section keeps its existing sentence and gains It is Studio's **Automations** pillar.

Three judgment calls, stated

1. Site 2 is not a literal copy of the model row — the two tables are different shapes

  • model build/data/index.mdx:21two columns (Path / Looks like)
  • the row repaired here — three columns (Path / Who's it for / Output)

A literal copy would corrupt the table. What the ruling settles is that the same claim names the same destination, in whichever column this table puts it. Two consequences:

  • The path name stays bare **Click-build** (fallback). That is exactly what the ruling left in the model row — it named Studio in the destination cell and did not restore the path name as **Studio click-build**. Both pages therefore keep calling the path the same thing, which is the half of the card about the two pages carrying "the same click-build row".
  • The destination goes in the cell that already names the mechanismWho's it for was Admins who prefer forms, and those forms are Studio's. Output ("The same live metadata") is genuinely unchanged and is not a destination column.

The possessive form, rather than a bold arrow route, follows the ruling's own output at configure/permissions/index.mdx:164: "Studio's Access pillar".

2. Site 5 is an addition, not a replacement

"ObjectOS ships a visual flow builder" is not wrong — the product does ship it. PR #100 substituted the product name there, so the sentence lost its where, not its truth. Replacing ObjectOS with Studio would trade a true statement for an odd one (Studio does not ship things; ObjectOS ships Studio). So the sentence stands and is located by the one that follows it. This also gives the pre-existing "auditable in the flow builder" at :275 an antecedent it did not have.

3. Site 1 is a meta description, so its length and its YAML were measured, not assumed

119 characters after the edit — an unquoted YAML scalar with no colon-space and no leading indicator character. Confirmed on the built artifact rather than by grep: the page renders with the description intact in the description meta tag, in og:description, and in the JSON-LD block.

The Studio claim was re-verified by content, not by the card's sha

The card pins "flow authoring is Studio's" to objectui 6ff0eb1. That sha is stale — objectui origin/main is now 107babe — so the claim was re-measured there instead:

  • packages/app-shell/src/views/studio-design/StudioDesignSurface.tsx header: routed as /studio/:packageId/{data|automations|interfaces}, with "Automations: flows".
  • PILLAR_FOR_SURFACE_TYPE still maps flowautomations (same file).
  • AutomationsPillar renders the flow preview with editing: true — the visual canvas, not a read-only view.

Form design likewise sits under studio-design/ (ObjectFormDesigner.tsx), which is what site 3 asserts.

Verification — every run below is on 51c2d77, the head of this branch

Run from the repo root; exit codes captured before any pipe; each gate's own verdict line quoted.

GateExitIts own verdict line
pnpm turbo run type-check --continue --force0Tasks: 1 successful, 1 total · Cached: 0 cached, 1 total
pnpm turbo run build --force0Tasks: 1 successful, 1 total · Cached: 0 cached, 1 total
pnpm turbo run test --force0✓ 4 self-test(s) passed
node .github/scripts/check-locale-surface.mjs0✓ every advertised URL has a source file and every source file is advertised…
node apps/docs/scripts/gen-zh-hant.mjs --check0✓ zh-Hant: 73 generated file(s) match the zh-Hans sources byte for byte.
node .github/scripts/check-node-floor.mjs0✅ Every declared floor clears what the dependency tree requires…
node .github/scripts/check-translations.mjs0✓ translations gate passed
node .github/scripts/check-translation-output.mjs --files …0✓ translation output gate passed (138 pre-existing finding(s) reported)

--force throughout, because the turbo cache is shared across worktrees in this container and has replayed a sibling's green here before; every turbo line above reports 0 cached, so these are real executions.

Render checks on the built artifact (.next/server/app/en/docs/…): the Build page's table still parses as 3 columns in every row including the header, the description meta tag carries the new text, and Console occurs 0 times in both rendered pages.

Locale siblings are left alone per AGENTS.md — the freshness gate reports them stale and does not block; there are no orphans and nothing unstamped.

Reported, not folded in: a candidate sixth site

content/docs/build/index.mdx:36 reads 1. **Just exploring?** → Open ObjectOS, start the [AI Builder](/docs/build/ai-builder),. PR #100 rewrote that from Open Console, start the AI Builder — the same product-name substitution shape as site 5, and the AI Builder is an authoring path.

It is deliberately not touched here, for two reasons: the card enumerates five sites and says a sixth is to be reported rather than folded in; and naming Studio there would be a new decision, not transcription — objectui's StudioDesignSurface.tsx states the AI copilot is not part of the open-source surface but an injected aiSlot the cloud edition fills, so whether the AI Builder is reached "in Studio" is exactly the kind of question this card says it does not contain.

That candidate is filed unassigned as #233, with the measurement that separates it from the five settled here.

Out of scope and left open: #79, and #233.


Session: session_016TUrhcggSFrYctvp5dsV1A · branch claude/issue-148-studio-destination-five-sites


Generated by Claude Code

…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
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PR #100 dropped the metadata-authoring destination in five more places than the four #102 names

2 participants

@os-zhuang@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

docs: name Studio as the authoring destination in the five remaining PR #100 sites - #232

Merged
os-zhuang merged 1 commit into
mainfrom
claude/issue-148-studio-destination-five-sites
Aug 29, 2026
Merged

docs: name Studio as the authoring destination in the five remaining PR #100 sites#232
os-zhuang merged 1 commit into
mainfrom
claude/issue-148-studio-destination-five-sites

Conversation

@claude

@claudeclaudeBot commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Fixes#148

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.

Scope held tight: everything else PR #100 dropped is the end-user / rendering sense of the word and stays dropped. After this change Console occurs zero times in both edited files — nothing here is a reintroduction. build/data/index.mdx (the model) is untouched, and no locale sibling is touched.

The five sites

  1. build/index.mdx:3 — frontmatter description. by clicking through formsby clicking through forms in Studio.
  2. build/index.mdx:13 — the click-build table row. Admins who prefer formsAdmins who prefer Studio's forms.
  3. build/index.mdx:52- Wire a form.- Wire a Studio form.
  4. build/automation/flows.mdx:9audit log, the flow builder, and the [AI Builder]…audit log, Studio's flow builder, and the [AI Builder]…
  5. build/automation/flows.mdx:279 — the ## Visual builder section keeps its existing sentence and gains It is Studio's **Automations** pillar.

Three judgment calls, stated

1. Site 2 is not a literal copy of the model row — the two tables are different shapes

  • model build/data/index.mdx:21two columns (Path / Looks like)
  • the row repaired here — three columns (Path / Who's it for / Output)

A literal copy would corrupt the table. What the ruling settles is that the same claim names the same destination, in whichever column this table puts it. Two consequences:

  • The path name stays bare **Click-build** (fallback). That is exactly what the ruling left in the model row — it named Studio in the destination cell and did not restore the path name as **Studio click-build**. Both pages therefore keep calling the path the same thing, which is the half of the card about the two pages carrying "the same click-build row".
  • The destination goes in the cell that already names the mechanismWho's it for was Admins who prefer forms, and those forms are Studio's. Output ("The same live metadata") is genuinely unchanged and is not a destination column.

The possessive form, rather than a bold arrow route, follows the ruling's own output at configure/permissions/index.mdx:164: "Studio's Access pillar".

2. Site 5 is an addition, not a replacement

"ObjectOS ships a visual flow builder" is not wrong — the product does ship it. PR #100 substituted the product name there, so the sentence lost its where, not its truth. Replacing ObjectOS with Studio would trade a true statement for an odd one (Studio does not ship things; ObjectOS ships Studio). So the sentence stands and is located by the one that follows it. This also gives the pre-existing "auditable in the flow builder" at :275 an antecedent it did not have.

3. Site 1 is a meta description, so its length and its YAML were measured, not assumed

119 characters after the edit — an unquoted YAML scalar with no colon-space and no leading indicator character. Confirmed on the built artifact rather than by grep: the page renders with the description intact in the description meta tag, in og:description, and in the JSON-LD block.

The Studio claim was re-verified by content, not by the card's sha

The card pins "flow authoring is Studio's" to objectui 6ff0eb1. That sha is stale — objectui origin/main is now 107babe — so the claim was re-measured there instead:

  • packages/app-shell/src/views/studio-design/StudioDesignSurface.tsx header: routed as /studio/:packageId/{data|automations|interfaces}, with "Automations: flows".
  • PILLAR_FOR_SURFACE_TYPE still maps flowautomations (same file).
  • AutomationsPillar renders the flow preview with editing: true — the visual canvas, not a read-only view.

Form design likewise sits under studio-design/ (ObjectFormDesigner.tsx), which is what site 3 asserts.

Verification — every run below is on 51c2d77, the head of this branch

Run from the repo root; exit codes captured before any pipe; each gate's own verdict line quoted.

GateExitIts own verdict line
pnpm turbo run type-check --continue --force0Tasks: 1 successful, 1 total · Cached: 0 cached, 1 total
pnpm turbo run build --force0Tasks: 1 successful, 1 total · Cached: 0 cached, 1 total
pnpm turbo run test --force0✓ 4 self-test(s) passed
node .github/scripts/check-locale-surface.mjs0✓ every advertised URL has a source file and every source file is advertised…
node apps/docs/scripts/gen-zh-hant.mjs --check0✓ zh-Hant: 73 generated file(s) match the zh-Hans sources byte for byte.
node .github/scripts/check-node-floor.mjs0✅ Every declared floor clears what the dependency tree requires…
node .github/scripts/check-translations.mjs0✓ translations gate passed
node .github/scripts/check-translation-output.mjs --files …0✓ translation output gate passed (138 pre-existing finding(s) reported)

--force throughout, because the turbo cache is shared across worktrees in this container and has replayed a sibling's green here before; every turbo line above reports 0 cached, so these are real executions.

Render checks on the built artifact (.next/server/app/en/docs/…): the Build page's table still parses as 3 columns in every row including the header, the description meta tag carries the new text, and Console occurs 0 times in both rendered pages.

Locale siblings are left alone per AGENTS.md — the freshness gate reports them stale and does not block; there are no orphans and nothing unstamped.

Reported, not folded in: a candidate sixth site

content/docs/build/index.mdx:36 reads 1. **Just exploring?** → Open ObjectOS, start the [AI Builder](/docs/build/ai-builder),. PR #100 rewrote that from Open Console, start the AI Builder — the same product-name substitution shape as site 5, and the AI Builder is an authoring path.

It is deliberately not touched here, for two reasons: the card enumerates five sites and says a sixth is to be reported rather than folded in; and naming Studio there would be a new decision, not transcription — objectui's StudioDesignSurface.tsx states the AI copilot is not part of the open-source surface but an injected aiSlot the cloud edition fills, so whether the AI Builder is reached "in Studio" is exactly the kind of question this card says it does not contain.

That candidate is filed unassigned as #233, with the measurement that separates it from the five settled here.

Out of scope and left open: #79, and #233.


Session: session_016TUrhcggSFrYctvp5dsV1A · branch claude/issue-148-studio-destination-five-sites


Generated by Claude Code

…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
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PR #100 dropped the metadata-authoring destination in five more places than the four #102 names

2 participants

@os-zhuang@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

docs: name Studio as the authoring destination in the five remaining PR #100 sites - #232

Merged
os-zhuang merged 1 commit into
mainfrom
claude/issue-148-studio-destination-five-sites
Aug 29, 2026
Merged

docs: name Studio as the authoring destination in the five remaining PR #100 sites#232
os-zhuang merged 1 commit into
mainfrom
claude/issue-148-studio-destination-five-sites

Conversation

@claude

@claudeclaudeBot commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Fixes#148

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.

Scope held tight: everything else PR #100 dropped is the end-user / rendering sense of the word and stays dropped. After this change Console occurs zero times in both edited files — nothing here is a reintroduction. build/data/index.mdx (the model) is untouched, and no locale sibling is touched.

The five sites

  1. build/index.mdx:3 — frontmatter description. by clicking through formsby clicking through forms in Studio.
  2. build/index.mdx:13 — the click-build table row. Admins who prefer formsAdmins who prefer Studio's forms.
  3. build/index.mdx:52- Wire a form.- Wire a Studio form.
  4. build/automation/flows.mdx:9audit log, the flow builder, and the [AI Builder]…audit log, Studio's flow builder, and the [AI Builder]…
  5. build/automation/flows.mdx:279 — the ## Visual builder section keeps its existing sentence and gains It is Studio's **Automations** pillar.

Three judgment calls, stated

1. Site 2 is not a literal copy of the model row — the two tables are different shapes

  • model build/data/index.mdx:21two columns (Path / Looks like)
  • the row repaired here — three columns (Path / Who's it for / Output)

A literal copy would corrupt the table. What the ruling settles is that the same claim names the same destination, in whichever column this table puts it. Two consequences:

  • The path name stays bare **Click-build** (fallback). That is exactly what the ruling left in the model row — it named Studio in the destination cell and did not restore the path name as **Studio click-build**. Both pages therefore keep calling the path the same thing, which is the half of the card about the two pages carrying "the same click-build row".
  • The destination goes in the cell that already names the mechanismWho's it for was Admins who prefer forms, and those forms are Studio's. Output ("The same live metadata") is genuinely unchanged and is not a destination column.

The possessive form, rather than a bold arrow route, follows the ruling's own output at configure/permissions/index.mdx:164: "Studio's Access pillar".

2. Site 5 is an addition, not a replacement

"ObjectOS ships a visual flow builder" is not wrong — the product does ship it. PR #100 substituted the product name there, so the sentence lost its where, not its truth. Replacing ObjectOS with Studio would trade a true statement for an odd one (Studio does not ship things; ObjectOS ships Studio). So the sentence stands and is located by the one that follows it. This also gives the pre-existing "auditable in the flow builder" at :275 an antecedent it did not have.

3. Site 1 is a meta description, so its length and its YAML were measured, not assumed

119 characters after the edit — an unquoted YAML scalar with no colon-space and no leading indicator character. Confirmed on the built artifact rather than by grep: the page renders with the description intact in the description meta tag, in og:description, and in the JSON-LD block.

The Studio claim was re-verified by content, not by the card's sha

The card pins "flow authoring is Studio's" to objectui 6ff0eb1. That sha is stale — objectui origin/main is now 107babe — so the claim was re-measured there instead:

  • packages/app-shell/src/views/studio-design/StudioDesignSurface.tsx header: routed as /studio/:packageId/{data|automations|interfaces}, with "Automations: flows".
  • PILLAR_FOR_SURFACE_TYPE still maps flowautomations (same file).
  • AutomationsPillar renders the flow preview with editing: true — the visual canvas, not a read-only view.

Form design likewise sits under studio-design/ (ObjectFormDesigner.tsx), which is what site 3 asserts.

Verification — every run below is on 51c2d77, the head of this branch

Run from the repo root; exit codes captured before any pipe; each gate's own verdict line quoted.

GateExitIts own verdict line
pnpm turbo run type-check --continue --force0Tasks: 1 successful, 1 total · Cached: 0 cached, 1 total
pnpm turbo run build --force0Tasks: 1 successful, 1 total · Cached: 0 cached, 1 total
pnpm turbo run test --force0✓ 4 self-test(s) passed
node .github/scripts/check-locale-surface.mjs0✓ every advertised URL has a source file and every source file is advertised…
node apps/docs/scripts/gen-zh-hant.mjs --check0✓ zh-Hant: 73 generated file(s) match the zh-Hans sources byte for byte.
node .github/scripts/check-node-floor.mjs0✅ Every declared floor clears what the dependency tree requires…
node .github/scripts/check-translations.mjs0✓ translations gate passed
node .github/scripts/check-translation-output.mjs --files …0✓ translation output gate passed (138 pre-existing finding(s) reported)

--force throughout, because the turbo cache is shared across worktrees in this container and has replayed a sibling's green here before; every turbo line above reports 0 cached, so these are real executions.

Render checks on the built artifact (.next/server/app/en/docs/…): the Build page's table still parses as 3 columns in every row including the header, the description meta tag carries the new text, and Console occurs 0 times in both rendered pages.

Locale siblings are left alone per AGENTS.md — the freshness gate reports them stale and does not block; there are no orphans and nothing unstamped.

Reported, not folded in: a candidate sixth site

content/docs/build/index.mdx:36 reads 1. **Just exploring?** → Open ObjectOS, start the [AI Builder](/docs/build/ai-builder),. PR #100 rewrote that from Open Console, start the AI Builder — the same product-name substitution shape as site 5, and the AI Builder is an authoring path.

It is deliberately not touched here, for two reasons: the card enumerates five sites and says a sixth is to be reported rather than folded in; and naming Studio there would be a new decision, not transcription — objectui's StudioDesignSurface.tsx states the AI copilot is not part of the open-source surface but an injected aiSlot the cloud edition fills, so whether the AI Builder is reached "in Studio" is exactly the kind of question this card says it does not contain.

That candidate is filed unassigned as #233, with the measurement that separates it from the five settled here.

Out of scope and left open: #79, and #233.


Session: session_016TUrhcggSFrYctvp5dsV1A · branch claude/issue-148-studio-destination-five-sites


Generated by Claude Code

…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
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PR #100 dropped the metadata-authoring destination in five more places than the four #102 names

2 participants

@os-zhuang@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

docs: name Studio as the authoring destination in the five remaining PR #100 sites - #232

Merged
os-zhuang merged 1 commit into
mainfrom
claude/issue-148-studio-destination-five-sites
Aug 29, 2026
Merged

docs: name Studio as the authoring destination in the five remaining PR #100 sites#232
os-zhuang merged 1 commit into
mainfrom
claude/issue-148-studio-destination-five-sites

Conversation

@claude

@claudeclaudeBot commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Fixes#148

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.

Scope held tight: everything else PR #100 dropped is the end-user / rendering sense of the word and stays dropped. After this change Console occurs zero times in both edited files — nothing here is a reintroduction. build/data/index.mdx (the model) is untouched, and no locale sibling is touched.

The five sites

  1. build/index.mdx:3 — frontmatter description. by clicking through formsby clicking through forms in Studio.
  2. build/index.mdx:13 — the click-build table row. Admins who prefer formsAdmins who prefer Studio's forms.
  3. build/index.mdx:52- Wire a form.- Wire a Studio form.
  4. build/automation/flows.mdx:9audit log, the flow builder, and the [AI Builder]…audit log, Studio's flow builder, and the [AI Builder]…
  5. build/automation/flows.mdx:279 — the ## Visual builder section keeps its existing sentence and gains It is Studio's **Automations** pillar.

Three judgment calls, stated

1. Site 2 is not a literal copy of the model row — the two tables are different shapes

  • model build/data/index.mdx:21two columns (Path / Looks like)
  • the row repaired here — three columns (Path / Who's it for / Output)

A literal copy would corrupt the table. What the ruling settles is that the same claim names the same destination, in whichever column this table puts it. Two consequences:

  • The path name stays bare **Click-build** (fallback). That is exactly what the ruling left in the model row — it named Studio in the destination cell and did not restore the path name as **Studio click-build**. Both pages therefore keep calling the path the same thing, which is the half of the card about the two pages carrying "the same click-build row".
  • The destination goes in the cell that already names the mechanismWho's it for was Admins who prefer forms, and those forms are Studio's. Output ("The same live metadata") is genuinely unchanged and is not a destination column.

The possessive form, rather than a bold arrow route, follows the ruling's own output at configure/permissions/index.mdx:164: "Studio's Access pillar".

2. Site 5 is an addition, not a replacement

"ObjectOS ships a visual flow builder" is not wrong — the product does ship it. PR #100 substituted the product name there, so the sentence lost its where, not its truth. Replacing ObjectOS with Studio would trade a true statement for an odd one (Studio does not ship things; ObjectOS ships Studio). So the sentence stands and is located by the one that follows it. This also gives the pre-existing "auditable in the flow builder" at :275 an antecedent it did not have.

3. Site 1 is a meta description, so its length and its YAML were measured, not assumed

119 characters after the edit — an unquoted YAML scalar with no colon-space and no leading indicator character. Confirmed on the built artifact rather than by grep: the page renders with the description intact in the description meta tag, in og:description, and in the JSON-LD block.

The Studio claim was re-verified by content, not by the card's sha

The card pins "flow authoring is Studio's" to objectui 6ff0eb1. That sha is stale — objectui origin/main is now 107babe — so the claim was re-measured there instead:

  • packages/app-shell/src/views/studio-design/StudioDesignSurface.tsx header: routed as /studio/:packageId/{data|automations|interfaces}, with "Automations: flows".
  • PILLAR_FOR_SURFACE_TYPE still maps flowautomations (same file).
  • AutomationsPillar renders the flow preview with editing: true — the visual canvas, not a read-only view.

Form design likewise sits under studio-design/ (ObjectFormDesigner.tsx), which is what site 3 asserts.

Verification — every run below is on 51c2d77, the head of this branch

Run from the repo root; exit codes captured before any pipe; each gate's own verdict line quoted.

GateExitIts own verdict line
pnpm turbo run type-check --continue --force0Tasks: 1 successful, 1 total · Cached: 0 cached, 1 total
pnpm turbo run build --force0Tasks: 1 successful, 1 total · Cached: 0 cached, 1 total
pnpm turbo run test --force0✓ 4 self-test(s) passed
node .github/scripts/check-locale-surface.mjs0✓ every advertised URL has a source file and every source file is advertised…
node apps/docs/scripts/gen-zh-hant.mjs --check0✓ zh-Hant: 73 generated file(s) match the zh-Hans sources byte for byte.
node .github/scripts/check-node-floor.mjs0✅ Every declared floor clears what the dependency tree requires…
node .github/scripts/check-translations.mjs0✓ translations gate passed
node .github/scripts/check-translation-output.mjs --files …0✓ translation output gate passed (138 pre-existing finding(s) reported)

--force throughout, because the turbo cache is shared across worktrees in this container and has replayed a sibling's green here before; every turbo line above reports 0 cached, so these are real executions.

Render checks on the built artifact (.next/server/app/en/docs/…): the Build page's table still parses as 3 columns in every row including the header, the description meta tag carries the new text, and Console occurs 0 times in both rendered pages.

Locale siblings are left alone per AGENTS.md — the freshness gate reports them stale and does not block; there are no orphans and nothing unstamped.

Reported, not folded in: a candidate sixth site

content/docs/build/index.mdx:36 reads 1. **Just exploring?** → Open ObjectOS, start the [AI Builder](/docs/build/ai-builder),. PR #100 rewrote that from Open Console, start the AI Builder — the same product-name substitution shape as site 5, and the AI Builder is an authoring path.

It is deliberately not touched here, for two reasons: the card enumerates five sites and says a sixth is to be reported rather than folded in; and naming Studio there would be a new decision, not transcription — objectui's StudioDesignSurface.tsx states the AI copilot is not part of the open-source surface but an injected aiSlot the cloud edition fills, so whether the AI Builder is reached "in Studio" is exactly the kind of question this card says it does not contain.

That candidate is filed unassigned as #233, with the measurement that separates it from the five settled here.

Out of scope and left open: #79, and #233.


Session: session_016TUrhcggSFrYctvp5dsV1A · branch claude/issue-148-studio-destination-five-sites


Generated by Claude Code

…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
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PR #100 dropped the metadata-authoring destination in five more places than the four #102 names

2 participants

@os-zhuang@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

docs: name Studio as the authoring destination in the five remaining PR #100 sites - #232

Merged
os-zhuang merged 1 commit into
mainfrom
claude/issue-148-studio-destination-five-sites
Aug 29, 2026
Merged

docs: name Studio as the authoring destination in the five remaining PR #100 sites#232
os-zhuang merged 1 commit into
mainfrom
claude/issue-148-studio-destination-five-sites

Conversation

@claude

@claudeclaudeBot commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Fixes#148

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.

Scope held tight: everything else PR #100 dropped is the end-user / rendering sense of the word and stays dropped. After this change Console occurs zero times in both edited files — nothing here is a reintroduction. build/data/index.mdx (the model) is untouched, and no locale sibling is touched.

The five sites

  1. build/index.mdx:3 — frontmatter description. by clicking through formsby clicking through forms in Studio.
  2. build/index.mdx:13 — the click-build table row. Admins who prefer formsAdmins who prefer Studio's forms.
  3. build/index.mdx:52- Wire a form.- Wire a Studio form.
  4. build/automation/flows.mdx:9audit log, the flow builder, and the [AI Builder]…audit log, Studio's flow builder, and the [AI Builder]…
  5. build/automation/flows.mdx:279 — the ## Visual builder section keeps its existing sentence and gains It is Studio's **Automations** pillar.

Three judgment calls, stated

1. Site 2 is not a literal copy of the model row — the two tables are different shapes

  • model build/data/index.mdx:21two columns (Path / Looks like)
  • the row repaired here — three columns (Path / Who's it for / Output)

A literal copy would corrupt the table. What the ruling settles is that the same claim names the same destination, in whichever column this table puts it. Two consequences:

  • The path name stays bare **Click-build** (fallback). That is exactly what the ruling left in the model row — it named Studio in the destination cell and did not restore the path name as **Studio click-build**. Both pages therefore keep calling the path the same thing, which is the half of the card about the two pages carrying "the same click-build row".
  • The destination goes in the cell that already names the mechanismWho's it for was Admins who prefer forms, and those forms are Studio's. Output ("The same live metadata") is genuinely unchanged and is not a destination column.

The possessive form, rather than a bold arrow route, follows the ruling's own output at configure/permissions/index.mdx:164: "Studio's Access pillar".

2. Site 5 is an addition, not a replacement

"ObjectOS ships a visual flow builder" is not wrong — the product does ship it. PR #100 substituted the product name there, so the sentence lost its where, not its truth. Replacing ObjectOS with Studio would trade a true statement for an odd one (Studio does not ship things; ObjectOS ships Studio). So the sentence stands and is located by the one that follows it. This also gives the pre-existing "auditable in the flow builder" at :275 an antecedent it did not have.

3. Site 1 is a meta description, so its length and its YAML were measured, not assumed

119 characters after the edit — an unquoted YAML scalar with no colon-space and no leading indicator character. Confirmed on the built artifact rather than by grep: the page renders with the description intact in the description meta tag, in og:description, and in the JSON-LD block.

The Studio claim was re-verified by content, not by the card's sha

The card pins "flow authoring is Studio's" to objectui 6ff0eb1. That sha is stale — objectui origin/main is now 107babe — so the claim was re-measured there instead:

  • packages/app-shell/src/views/studio-design/StudioDesignSurface.tsx header: routed as /studio/:packageId/{data|automations|interfaces}, with "Automations: flows".
  • PILLAR_FOR_SURFACE_TYPE still maps flowautomations (same file).
  • AutomationsPillar renders the flow preview with editing: true — the visual canvas, not a read-only view.

Form design likewise sits under studio-design/ (ObjectFormDesigner.tsx), which is what site 3 asserts.

Verification — every run below is on 51c2d77, the head of this branch

Run from the repo root; exit codes captured before any pipe; each gate's own verdict line quoted.

GateExitIts own verdict line
pnpm turbo run type-check --continue --force0Tasks: 1 successful, 1 total · Cached: 0 cached, 1 total
pnpm turbo run build --force0Tasks: 1 successful, 1 total · Cached: 0 cached, 1 total
pnpm turbo run test --force0✓ 4 self-test(s) passed
node .github/scripts/check-locale-surface.mjs0✓ every advertised URL has a source file and every source file is advertised…
node apps/docs/scripts/gen-zh-hant.mjs --check0✓ zh-Hant: 73 generated file(s) match the zh-Hans sources byte for byte.
node .github/scripts/check-node-floor.mjs0✅ Every declared floor clears what the dependency tree requires…
node .github/scripts/check-translations.mjs0✓ translations gate passed
node .github/scripts/check-translation-output.mjs --files …0✓ translation output gate passed (138 pre-existing finding(s) reported)

--force throughout, because the turbo cache is shared across worktrees in this container and has replayed a sibling's green here before; every turbo line above reports 0 cached, so these are real executions.

Render checks on the built artifact (.next/server/app/en/docs/…): the Build page's table still parses as 3 columns in every row including the header, the description meta tag carries the new text, and Console occurs 0 times in both rendered pages.

Locale siblings are left alone per AGENTS.md — the freshness gate reports them stale and does not block; there are no orphans and nothing unstamped.

Reported, not folded in: a candidate sixth site

content/docs/build/index.mdx:36 reads 1. **Just exploring?** → Open ObjectOS, start the [AI Builder](/docs/build/ai-builder),. PR #100 rewrote that from Open Console, start the AI Builder — the same product-name substitution shape as site 5, and the AI Builder is an authoring path.

It is deliberately not touched here, for two reasons: the card enumerates five sites and says a sixth is to be reported rather than folded in; and naming Studio there would be a new decision, not transcription — objectui's StudioDesignSurface.tsx states the AI copilot is not part of the open-source surface but an injected aiSlot the cloud edition fills, so whether the AI Builder is reached "in Studio" is exactly the kind of question this card says it does not contain.

That candidate is filed unassigned as #233, with the measurement that separates it from the five settled here.

Out of scope and left open: #79, and #233.


Session: session_016TUrhcggSFrYctvp5dsV1A · branch claude/issue-148-studio-destination-five-sites


Generated by Claude Code

…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
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PR #100 dropped the metadata-authoring destination in five more places than the four #102 names

2 participants

@os-zhuang@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

docs: name Studio as the authoring destination in the five remaining PR #100 sites - #232

Merged
os-zhuang merged 1 commit into
mainfrom
claude/issue-148-studio-destination-five-sites
Aug 29, 2026
Merged

docs: name Studio as the authoring destination in the five remaining PR #100 sites#232
os-zhuang merged 1 commit into
mainfrom
claude/issue-148-studio-destination-five-sites

Conversation

@claude

@claudeclaudeBot commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Fixes#148

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.

Scope held tight: everything else PR #100 dropped is the end-user / rendering sense of the word and stays dropped. After this change Console occurs zero times in both edited files — nothing here is a reintroduction. build/data/index.mdx (the model) is untouched, and no locale sibling is touched.

The five sites

  1. build/index.mdx:3 — frontmatter description. by clicking through formsby clicking through forms in Studio.
  2. build/index.mdx:13 — the click-build table row. Admins who prefer formsAdmins who prefer Studio's forms.
  3. build/index.mdx:52- Wire a form.- Wire a Studio form.
  4. build/automation/flows.mdx:9audit log, the flow builder, and the [AI Builder]…audit log, Studio's flow builder, and the [AI Builder]…
  5. build/automation/flows.mdx:279 — the ## Visual builder section keeps its existing sentence and gains It is Studio's **Automations** pillar.

Three judgment calls, stated

1. Site 2 is not a literal copy of the model row — the two tables are different shapes

  • model build/data/index.mdx:21two columns (Path / Looks like)
  • the row repaired here — three columns (Path / Who's it for / Output)

A literal copy would corrupt the table. What the ruling settles is that the same claim names the same destination, in whichever column this table puts it. Two consequences:

  • The path name stays bare **Click-build** (fallback). That is exactly what the ruling left in the model row — it named Studio in the destination cell and did not restore the path name as **Studio click-build**. Both pages therefore keep calling the path the same thing, which is the half of the card about the two pages carrying "the same click-build row".
  • The destination goes in the cell that already names the mechanismWho's it for was Admins who prefer forms, and those forms are Studio's. Output ("The same live metadata") is genuinely unchanged and is not a destination column.

The possessive form, rather than a bold arrow route, follows the ruling's own output at configure/permissions/index.mdx:164: "Studio's Access pillar".

2. Site 5 is an addition, not a replacement

"ObjectOS ships a visual flow builder" is not wrong — the product does ship it. PR #100 substituted the product name there, so the sentence lost its where, not its truth. Replacing ObjectOS with Studio would trade a true statement for an odd one (Studio does not ship things; ObjectOS ships Studio). So the sentence stands and is located by the one that follows it. This also gives the pre-existing "auditable in the flow builder" at :275 an antecedent it did not have.

3. Site 1 is a meta description, so its length and its YAML were measured, not assumed

119 characters after the edit — an unquoted YAML scalar with no colon-space and no leading indicator character. Confirmed on the built artifact rather than by grep: the page renders with the description intact in the description meta tag, in og:description, and in the JSON-LD block.

The Studio claim was re-verified by content, not by the card's sha

The card pins "flow authoring is Studio's" to objectui 6ff0eb1. That sha is stale — objectui origin/main is now 107babe — so the claim was re-measured there instead:

  • packages/app-shell/src/views/studio-design/StudioDesignSurface.tsx header: routed as /studio/:packageId/{data|automations|interfaces}, with "Automations: flows".
  • PILLAR_FOR_SURFACE_TYPE still maps flowautomations (same file).
  • AutomationsPillar renders the flow preview with editing: true — the visual canvas, not a read-only view.

Form design likewise sits under studio-design/ (ObjectFormDesigner.tsx), which is what site 3 asserts.

Verification — every run below is on 51c2d77, the head of this branch

Run from the repo root; exit codes captured before any pipe; each gate's own verdict line quoted.

GateExitIts own verdict line
pnpm turbo run type-check --continue --force0Tasks: 1 successful, 1 total · Cached: 0 cached, 1 total
pnpm turbo run build --force0Tasks: 1 successful, 1 total · Cached: 0 cached, 1 total
pnpm turbo run test --force0✓ 4 self-test(s) passed
node .github/scripts/check-locale-surface.mjs0✓ every advertised URL has a source file and every source file is advertised…
node apps/docs/scripts/gen-zh-hant.mjs --check0✓ zh-Hant: 73 generated file(s) match the zh-Hans sources byte for byte.
node .github/scripts/check-node-floor.mjs0✅ Every declared floor clears what the dependency tree requires…
node .github/scripts/check-translations.mjs0✓ translations gate passed
node .github/scripts/check-translation-output.mjs --files …0✓ translation output gate passed (138 pre-existing finding(s) reported)

--force throughout, because the turbo cache is shared across worktrees in this container and has replayed a sibling's green here before; every turbo line above reports 0 cached, so these are real executions.

Render checks on the built artifact (.next/server/app/en/docs/…): the Build page's table still parses as 3 columns in every row including the header, the description meta tag carries the new text, and Console occurs 0 times in both rendered pages.

Locale siblings are left alone per AGENTS.md — the freshness gate reports them stale and does not block; there are no orphans and nothing unstamped.

Reported, not folded in: a candidate sixth site

content/docs/build/index.mdx:36 reads 1. **Just exploring?** → Open ObjectOS, start the [AI Builder](/docs/build/ai-builder),. PR #100 rewrote that from Open Console, start the AI Builder — the same product-name substitution shape as site 5, and the AI Builder is an authoring path.

It is deliberately not touched here, for two reasons: the card enumerates five sites and says a sixth is to be reported rather than folded in; and naming Studio there would be a new decision, not transcription — objectui's StudioDesignSurface.tsx states the AI copilot is not part of the open-source surface but an injected aiSlot the cloud edition fills, so whether the AI Builder is reached "in Studio" is exactly the kind of question this card says it does not contain.

That candidate is filed unassigned as #233, with the measurement that separates it from the five settled here.

Out of scope and left open: #79, and #233.


Session: session_016TUrhcggSFrYctvp5dsV1A · branch claude/issue-148-studio-destination-five-sites


Generated by Claude Code

…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
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PR #100 dropped the metadata-authoring destination in five more places than the four #102 names

2 participants

@os-zhuang@claude