Skip to content

docs: re-derive the Support Desk clean-run stats from one real run - #9262

Merged
os-steve merged 1 commit into
mainfrom
claude/issue-9152-support-desk-stats-line
Aug 17, 2026
Merged

docs: re-derive the Support Desk clean-run stats from one real run#9262
os-steve merged 1 commit into
mainfrom
claude/issue-9152-support-desk-stats-line

Conversation

@os-steve

Copy link
Copy Markdown
Collaborator

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 of build-with-claude-code.mdx describes (create-objectstack, blank template, name support-desk) with the page's own listings applied:

 ✓ Validation passed (103ms)
Support Desk v0.1.0
Minimal ObjectStack environment — a clean slate for building.
Data: 2 Objects 6 Fields
UI: 1 Apps 1 Views 1 Actions
Runtime: 3 plugins

6 Fields is correct and always was: 2 fields from the starter note object the blank template scaffolds (title, body) plus 4 from the page's ticket. The wrong number is 1 Objects.

The old line spliced two different projects together. Both were run:

projectemits
page followed literally — starter note kept2 Objects 6 Fields
starter note deleted1 Objects 4 Fields

1 Objects 6 Fields is 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.fields is a plain count — collectMetadataStats in packages/cli/src/utils/format.ts sums Object.keys(obj.fields).length over configured objects, injecting nothing.

What changed

Both clean-run blocks now carry the same run's output:

  • Data: 1 Objects is now Data: 2 Objects.
  • The Runtime: 3 plugins line is restored — the blank template ships ConnectorRestPlugin, ConnectorOpenApiPlugin and ConnectorMcpPlugin, so every scaffolded project emits it. The card's second finding, confirmed.
  • The manifest description line under the banner is restored, for the same reason: the program prints it, and a transcript that drops a printed line is the defect this card is about.

And the run is now reconstructible from the page, which it previously was not:

  • The Support-nav app listing is added. Step 2's prompt asks for "an app with a Support nav group" and step 5 tells the reader to open it, but no listing ever showed it — so 1 Apps was as unreachable as the field count. This is the card's own "fully specified on the page" route.
  • The starter note object is named, with a line saying the counts include it and what they become if you delete it (measured, not assumed).

Scope notes

  • No product surface was invented. No fields were added to reach 6; the two extra fields were already on disk in every scaffolded project.
  • Timings are untouched. A duration is machine identity, not fixture identity, and docs: re-derive the os compile / os validate transcripts from real runs #9151 set that precedent one line up. The lines that are fixture identity now agree across both pages.
  • The "verbatim" cross-reference is intact.validating-metadata.mdx sends readers to the bare-reference example on the other page; that block is byte-identical to origin/main (sha256 compared, both sides).
  • Docs-only, so 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 (the spec-liveness-check.yml family, triggered by content/docs/**). All run on 4b8ff84c6, a clean tree:

pnpm check:docs-audit-scope OK (178 hand-written docs in sync)
pnpm check:docs-redirects OK (92 entries, 98 chain probes)
pnpm check:role-word OK (43 baselined files, no new occurrences)
pnpm check:nul-bytes OK (6054 files, no raw control bytes)
pnpm --filter @objectstack/spec check:empty-state OK (all classified)
pnpm --filter @objectstack/spec check:liveness OK (30 governed types)
pnpm --filter @objectstack/spec check:strictness-ledger OK (61 files, 5 directories)
pnpm --filter @objectstack/spec check:variant-docs OK (18 unions, 8 governed)

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

…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-steveos-steve added skip-changeset PR has no user-facing published change; bypasses the changeset gate and removed size/s labels Aug 17, 2026 — with Claude
@github-actionsgithub-actionsBot added the documentation Improvements or additions to documentation label Aug 17, 2026
@os-steve
os-steve marked this pull request as ready for review August 17, 2026 08:40
@os-steve
os-steve added this pull request to the merge queueAug 17, 2026
Merged via the queue into main with commit 70775ccAug 17, 2026
28 checks passed
@os-steve
os-steve deleted the claude/issue-9152-support-desk-stats-line branch August 17, 2026 08:49
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
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationskip-changesetPR has no user-facing published change; bypasses the changeset gate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

docs: the Support Desk transcripts report a stats line no reconstructible run emits (6 fields vs the page's own 4-field listing)

1 participant

@os-steve