Uh oh!
There was an error while loading. Please reload this page.
docs: re-derive the Support Desk clean-run stats from one real run - #9262
Merged
Conversation
…9152) Both pages printed `Data: 1 Objects 6 Fields`, a line no run can emit: the object count comes from a project whose starter object was deleted and the field count from one where it was kept. Measured against the CLI built at origin/main, scaffolding `support-desk` from the `blank` template exactly as step 1 describes and applying the page's own listings: Data: 2 Objects 6 Fields UI: 1 Apps 1 Views 1 Actions Runtime: 3 plugins `6 Fields` was right all along -- 2 from the scaffolded `note` object plus 4 from the page's ticket. `1 Objects` was the wrong number. Deleting the starter object instead yields `1 Objects 4 Fields`; both variants were run. Also makes the run reconstructible from the page: adds the Support-nav app listing the prose already promises but never showed, and names the starter `note` object the counts depend on. Timings are machine identity, not fixture identity, and are left as #9151 left them. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XqDQYVU5smx29ts9pAErja
os-steve
marked this pull request as ready for review
August 17, 2026 08:40
Uh oh!
There was an error while loading. Please reload this page.
os-steve added a commit
that referenced
this pull request
Aug 18, 2026
…scription drop (#9342) #9263 makes `create-objectstack` drop the blank template's own `manifest.description` at scaffold time, so no scaffolded project prints "Minimal ObjectStack environment — a clean slate for building." any more. Three pages still quoted it inside a scaffolded-project transcript. Re-derived from real runs against the CLI built at origin/main (b2d9e04), not hand-edited: * `os validate`, Support Desk — scaffolded `support-desk` from the `blank` template and applied build-with-claude-code.mdx's own listings (ticket object, resolve action, ticket views, Support app). Confirms #9152's work still reconstructs: the page's listings alone reproduce `2 Objects 6 Fields` / `1 Apps 1 Views 1 Actions` / `3 plugins`, and `Running author-time rules (41)`. * `os info`, my-app — scaffolded `my-app` from the same template with the ticket object, one view and one action (no app), reproducing `1 Views 1 Actions` and both object rows verbatim. Both printers guard on presence (`validate.ts:294`, `info.ts:64`), so the row does not become empty or `undefined` — it disappears entirely, and the surrounding rows are byte-identical to the run. Verified mechanically: each edited block now matches its run line for line, modulo the config path and the timings, which are machine identity and are left as #9151/#9262 left them. `cli.mdx`'s manifest-configuration example still shows a `description:` key. That is a hand-authored config, not a scaffolded-project transcript, and `description` remains an authorable manifest field — only the scaffolder's carry-over went away. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XqDQYVU5smx29ts9pAErja
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes#9152
Both pages printed a stats line no run can emit. The card diagnosed it as "6 should be 4"; measuring says the opposite half is wrong.
What was measured
The CLI built at
origin/main, driving a project scaffolded exactly as step 1 ofbuild-with-claude-code.mdxdescribes (create-objectstack,blanktemplate, namesupport-desk) with the page's own listings applied:6 Fieldsis correct and always was: 2 fields from the starternoteobject theblanktemplate scaffolds (title,body) plus 4 from the page'sticket. The wrong number is1 Objects.The old line spliced two different projects together. Both were run:
notekept2 Objects 6 Fieldsnotedeleted1 Objects 4 Fields1 Objects 6 Fieldsis the object count of the second and the field count of the first. That is why it was not reconstructible, and why correcting only the field count (as the card proposed) would have left the block just as unreachable.stats.fieldsis a plain count —collectMetadataStatsinpackages/cli/src/utils/format.tssumsObject.keys(obj.fields).lengthover configured objects, injecting nothing.What changed
Both clean-run blocks now carry the same run's output:
Data: 1 Objectsis nowData: 2 Objects.Runtime: 3 pluginsline is restored — theblanktemplate shipsConnectorRestPlugin,ConnectorOpenApiPluginandConnectorMcpPlugin, so every scaffolded project emits it. The card's second finding, confirmed.And the run is now reconstructible from the page, which it previously was not:
1 Appswas as unreachable as the field count. This is the card's own "fully specified on the page" route.noteobject is named, with a line saying the counts include it and what they become if you delete it (measured, not assumed).Scope notes
validating-metadata.mdxsends readers to the bare-reference example on the other page; that block is byte-identical toorigin/main(sha256 compared, both sides).skip-changeset.Verification
Gates re-derived from the actual changed paths via
node scripts/pm/dispatch-gates.mjs, which named four beyond the dispatch list (thespec-liveness-check.ymlfamily, triggered bycontent/docs/**). All run on4b8ff84c6, a clean tree:The load-bearing check is not a gate: the fixture was rebuilt a second time from the updated page's four listings and re-run, reproducing the transcript above line for line. The page now reconstructs its own output.
Generated by Claude Code