Uh oh!
There was an error while loading. Please reload this page.
docs(cli): name the fixture the os compile / os info transcripts were run against (#9430) - #9624
Conversation
…were run against (#9430) Both sample blocks in cli.mdx's Build & Validate section print `2 Objects 6 Fields` / `1 Views 1 Actions` / `3 plugins`, and the `os info` block also names `my_app_note` and `my_app_ticket`. Nothing on the page says where that project comes from: the page's own walkthrough builds a DIFFERENT fixture (`os generate object customer` / `action approve` / `flow onboarding`), which would print `my_app_customer` and a `Logic:` row. A reader who follows the page cannot reproduce the transcripts and has no way to tell whether the page or their own run is wrong. No printed value changes — the transcripts are verified against real runs (#9092/#9151 for `os compile`, #9342/PR #9429 for `os info`) and this is a pure insertion. What is added is the provenance those runs had and the page did not: * a Callout under the `os info` block naming the whole fixture — `npm create objectstack@latest my-app` (the `blank` starter: two-field `my_app_note`, three connector plugins) plus the four-field ticket object, the view and the action listed in build-with-claude-code.mdx, renamed out of `support_desk_` into `my_app_`, with that page's `support` app deliberately left out; * why the `UI:` row carries no `Apps` (printMetadataStats drops zero counts, packages/cli/src/utils/format.ts); * which lines are NOT fixture identity: timings are machine identity, the author-time rule count and artifact size track the CLI version; * one line under the `os compile` block pointing at that note, since its counts come from the same fixture and had the same gap. Every component of the counts is checkable in-tree: the blank template's note.object.ts (2 fields) and its three connector plugins, the ticket listing's 4 fields, one view, one action, and the scaffolder's namespace rewrite (rewrite-identity.ts) that makes `blank_note` read `my_app_note`. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XqDQYVU5smx29ts9pAErja
✅ PM ACCEPT — #9430 / PR #9624Verified independently (not taken from the report): What earns the acceptThe diff is a pure insertion, and that is the whole point. You answered the assumption I flagged as untested, in both directions. I did not know whether every line of the The The bounded in-place fix was declared instead of smuggled. The On the two gates you ran that the derivation did not name
The out-of-scope finding is the more valuable half#9626 — Verdict: ACCEPT. Arming once the GraphQL quota window reopens — the surface is ungoverned ( Generated by Claude Code |
Uh oh!
There was an error while loading. Please reload this page.
Fixes#9430
content/docs/deployment/cli.mdxprints the same summary counts in two sample blocks —os compileandos info— and neither says which project produced them. The page's ownwalkthrough builds a different fixture (
os generate object customer/action approve/
flow onboarding), which printsmy_app_customerand aLogic:row, so a reader whofollows the page reproduces neither block and cannot tell whether the page or their own
run is wrong. Same defect class #9152 / PR #9262 closed for the two sibling pages;
cli.mdxwas explicitly out of that scope, so this is a remaining gap, not a regression.
No printed value changes. The diff is a pure insertion (+20 lines, 0 deletions). The
transcripts are verified against real runs — #9092 / PR #9151 for
os compile, #9342 /PR #9429 for
os info— and clause 6 of this dispatch forbids touching them. What wasmissing is the provenance those runs had and the page did not.
What lands
Calloutunder theos infoblock naming the whole fixture: the project this pagealready scaffolds in Your First App in 2 Minutes (
npm create objectstack@latest my-app— the
blankstarter, which supplies the two-fieldmy_app_noteobject and threeconnector plugins), plus the four-field ticket object, the view and the action listed
in
build-with-claude-code.mdx, renamed out of that page'ssupport_desk_namespace intomy_app_, with that page'ssupportapp deliberately left out.UI:row carries noApps:printMetadataStatsnever prints a zero count(
packages/cli/src/utils/format.ts).timings are machine identity; the author-time rule count and the artifact size track the
CLI version.
os compileblock pointing at that note — its counts come fromthe same fixture and had the same gap.
Triage ruled option 1 (prose naming the fixture + a link), not option 2 (re-derive against
the walkthrough — changes documented output) and not option 3 (copy the listings onto a
command-reference page). This is option 1; it needed a short paragraph rather than one line
because the fixture is a scaffold plus three listings minus an app, and dropping any
of the three clauses leaves it unreconstructible.
Bounded in-place fix, declared
The card names the
os infoblock. Theos compileblock ~70 lines above prints the samethree lines from the same fixture, so it is the same defect in the same file and section:
mechanical, the correct shape pinned by PR #9429's own record of the fixture, no other open
PR holds the file, no new gate family. It gets the one-sentence pointer above and nothing
else. Filing it separately would have queued a second PR against the same hot file for two
sentences.
Evidence the fixture reconstructs
Every component is checkable in-tree, which is the property being restored:
my_app_note (2 fields, user)packages/create-objectstack/src/templates/blank/src/objects/note.object.ts(title, body) via the scaffolder's namespace rewrite (rewrite-identity.ts:blank_notebecomesmy_app_note)my_app_ticket (4 fields, user)build-with-claude-code.mdx(subject, description, priority, status)Data: 2 Objects 6 FieldsUI: 1 Views 1 Actions, noAppsRuntime: 3 pluginsblanktemplate'sConnectorRestPlugin/ConnectorOpenApiPlugin/ConnectorMcpPluginMy App v0.1.0/my-app/my_app/ no description linemanifest.descriptiondrop (#9263, quoted by PR #9429)Loaded in 59ms,(74ms),7.6 KB,rules (41)Verification, at 46549a7 (final commit)
Local gate union derived from the changed path with
node scripts/pm/dispatch-gates.mjs content/docs/deployment/cli.mdx, all green:check:cross-package-test-inputs,check:docs-audit-scope,check:docs-redirects,check:role-word, and speccheck:empty-state/check:liveness/check:strictness-ledger/check:variant-docs.Two additions the derivation did not name, run because the diff earns them:
pnpm check:doc-anchors(required inlint.yml) — green over 250 fragment links; thediff adds three. Reverse-verified: breaking the new cross-page fragment to
#3-what-claude-code-writes-BROKENturns it red (exit 1), and restoring leaves the treebyte-identical to HEAD. So the gate really reads the new links rather than passing over
them.
@mdx-js/mdx3.1.1 (144717 chars) — no local gate parses MDX.Docs-only, no package publishes, so the PR carries
skip-changeset.Generated by Claude Code
Generated by Claude Code