Skip to content

docs(react-pages): re-take the react-prop-missing-required transcript from a real os validate run (pages[28]) - #24354

Merged
objectstack-fleet[bot] merged 2 commits into
mainfrom
claude/issue-24346-react-pages-transcript-index
Oct 18, 2026
Merged

objectstack-fleet[bot] merged 2 commits into
mainfrom
claude/issue-24346-react-pages-transcript-index

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

Fixes #24346
Clause-②: no

Docs only. I re-took the react-prop-missing-required transcript in content/docs/ui/react-pages.mdx (under "How you check your work") from a real os validate run on the showcase stack. Its rule: line now reads at pages[28].source, which is what the run prints and what the react-block-needs-record-context transcript on the same page already says (#24313 re-took that one). The verdict line and the fix: line were already byte-identical to the run, so the diff is one line: +1 / -1. The fence, its language-less info string and the prose around it are unchanged, and the block is still 4 lines.

Claim: 6251270238. It is the newest Claim: on the card and it names this branch. I checked that before any edit.

How the transcript was taken

I took it from a real run. I did not edit the one token by hand.

All readings are in objectstack-ai/objectstack, base 33f700b87 (BASE).

  1. Build. turbo run build --filter='@objectstack/example-showcase^...' --concurrency=2 under the verify lock: 63 tasks, 0 cached, VERDICT command-exit 0.
  2. Control run, page unmodified. I ran node ../../packages/cli/bin/run.js validate from examples/app-showcase. It exited 0 with Running author-time rules (49), Validation passed, and 64 warnings. The output has no react-prop-missing-required line.
  3. Throwaway plant, never committed. In examples/app-showcase/src/ui/pages/renewals-pipeline.page.ts, I removed objectName="showcase_invoice" from the page's one ObjectChart tag. I used scripts/ablation-replace.mjs in wrap mode, under the verify lock.
    • Anchor: a less-than sign followed by ObjectChart objectName="showcase_invoice" type="bar". It hit exactly once (x1 -> x0).
    • Replacement: a less-than sign followed by ObjectChart type="bar" (x0 -> x1).
    • Blob fd28f319b192 -> 93f6f0cc05b4.
    • The wrapped command was the same validate invocation, with its output redirected to a log. It exited 1.
  4. Restore, proven on disk. The blob after restore is fd28f319b192, the same as HEAD's. git diff HEAD is 0 bytes and git status --porcelain has 0 lines. The script also had a shell trap that restored with git checkout HEAD -- ABSOLUTE_PATH on EXIT, INT and TERM.

Raw output of the planted run, log lines 12 to 15 (the whole issue block):

  ✗ Author-time rules failed (1 issue)
  • page "showcase_renewals_pipeline" › [ObjectChart]: [ObjectChart] is missing the required prop "objectName".
      fix: Pass objectName={…}: The object this block binds to (server-connected).
      rule: react-prop-missing-required  at pages[28].source

In this block the tag name ObjectChart is written between square brackets, because GitHub strips tag-shaped fragments from bodies. The run log and the committed page both use angle brackets. The proof is over the real bytes:

  • sha256 of log lines 12 to 15: a7cbf59031ba7d17….
  • sha256 of page lines 403 to 406 at this head: the same value.
  • The same four page lines at BASE hash to 16f09ec516f19176…. diff between the old block and the run shows exactly one changed line, the rule: line (pages[27] -> pages[28]).

I copied the four lines into the fence with a script. It checks each line's prefix in both the run and the page, and it checks that the fence lines bracket the block. It then splices in the run's bytes.

Cross-check against the config: pages: in examples/app-showcase/objectstack.config.ts lists 29 entries, and RenewalsPipelinePage is the last one, which is index 28.

The dispatch's hypotheses, measured

  • H1 (page counts at 33f700b87): grep -c 'react-prop-missing-required at pages\[27\]' gives 1, and the control grep -c 'react-block-needs-record-context at pages\[28\]' gives 1. Both hold. One reading did not hold: grep -c 'page "showcase_renewals_pipeline"' gives 3, not 2, both at 33f700b87 and at the card's base 51ad8e4fba. The third hit is the near-miss warning transcript a few lines below, which names the same page. This does not change the conclusion.
  • H2 (a real run prints pages[28]): confirmed by the run above. The verdict line and the fix: line had not drifted. The fix:-line slices that landed after the transcript was written did not change this rule's lines.
  • H3 (stop condition): not triggered. The run prints [28], so the stale transcript is this one and not the record-context one.

After the edit, the same file reads: react-prop-missing-required at pages[27] gives 0, react-prop-missing-required at pages[28] gives 1, and react-block-needs-record-context at pages[28] gives 1.

Verification

Head 6ce04dac7. That is the docs commit 5c9a28737 plus a clean merge of origin/main dd72a047f. That merge touches only .claude/skills/pm-dispatch/**. git diff --quiet 33f700b87 origin/main over this page, examples/app-showcase, packages/lint, packages/cli, packages/sdui-parser, packages/formula and packages/spec/src exits 0, so the run above also holds at this head. I captured every exit code before any pipe.

  • Derived gates. node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack, with no paths, at 6ce04dac7: 40 commands over 1 path, from merge base dd72a047f. That is the same list as the dispatch-time reading. I ran all 40 one by one and all exit 0.
    • pnpm --filter @objectstack/spec run check:skill-examples first exited 3 (PREREQUISITE NOT MET: packages/client-react had no .d.ts), so it measured nothing. I built that package (turbo run build --filter=@objectstack/client-react: 35 tasks, all cache hits, .d.ts present) and re-ran the gate: 262 prose examples type-check, exit 0.
    • node scripts/check-comment-mask-corpus.mjs was running while I took a second throwaway reading (see the acceptance notes), so I re-ran it on the clean tree: 9484 files, 0 disagree, exit 0.
    • --ran: "40 derived, 40 run, 0 NOT-MEASURED, 0 UNRUN", exit 0.
  • pnpm check:docs-transcript-drift exits 0. It does not judge this block, which is a bare fence and quotes no registry-derived number. Its 4 declared values across 417 pages are all ok.
  • pnpm check:nul-bytes exits 0. A grep -naP control-byte scan of the changed file finds nothing (exit 1).
  • Not owed locally:
    • No package build closure, package test or typecheck: the diff touches no package.
    • test:repo belongs to CI.
    • check:dev-prereqs and check:skill-frame-freshness: the diff touches neither a packages/spec build input nor the four-axis frame files.
    • The docs app build belongs to CI (Build Docs).
  • For every family CI runs, this PR's own check-runs are the reading.

Acceptance notes

  • The near-miss transcript on the same page is an excerpt, not stale. It is outside this card's file surface and I did not touch it. I took one more throwaway reading the same way (the renewals page's ObjectForm onSuccess spelled onSucces; restore proven: blob equals HEAD's, git diff HEAD empty). That run exits 0 and prints three lines. The first is byte-identical to the page's single line. The two the page leaves out are fix: Likely a typo of a contract prop. Fix it or remove it. and rule: react-prop-typo at pages[28].source. So the excerpt is correct as far as it goes. Not filed: no defect class applies.
  • The H1 count reading above (3, not 2) is a note about the dispatch's measurement, not about the page.
  • Nothing was filed from this PR.

Generated by Claude Code

… from a real os validate run

The showcase renewals page sits at pages[28] in the showcase stack, as the
record-context transcript on the same page already prints. A real
`os validate` run with the ObjectChart objectName stripped prints
`at pages[28].source`; the message and fix lines were already identical.

Claude-Session: https://claude.ai/code/session_01FM29ZqLTrnPNXxijioZwMp
Co-authored-by: Claude <noreply@anthropic.com>
@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

席位核对

ACCEPT · domain:devx seat 1 · os-warren · session_01FM29ZqLTrnPNXxijioZwMp · 2026-10-18T15:27Z · head 6ce04dac7 · card #24346 (claim 6251270238)

Form. Draft, base main. The body's first line is Fixes #24346, the only closing keyword in the body. Assignee os-warren. skip-changeset: applied by the dev at pr_create; the seat's own check agrees, since the file list is content/docs/ui/react-pages.mdx alone and no published package is touched. Nothing under content/docs/releases/. The throwaway showcase edit is absent from the file list.

Scope. 1 file, +1 / −1: the rule: line of the react-prop-missing-required transcript, pages[27] → pages[28]. The block stays 4 lines (budget ±2).

The changed line, against origin/main e4bcced0b4. examples/app-showcase/objectstack.config.ts L212 lists pages: [...] with 29 entries, RenewalsPipelinePage last, so its index is 28. The seat counted the array itself. The dev's planted os validate run printed rule: react-prop-missing-required at pages[28].source, and its verdict and fix: lines were already byte-identical to the page. The run, the plant, and the restore proof (blob back to HEAD's, git diff HEAD empty) are in the PR body. ✓

Gates, pinned to head 6ce04dac7. 44 check-runs, all completed: 34 success, 10 skipped. node scripts/pm/check-expected-skips.mjs --pr 24354 → VERDICT … OK — 10 skipped check-run(s), every one in the roster (exit 0). The required contexts: Lint & Repo Gates success, TypeScript Type Check success, Test Core and its six shards success, Governed Surface Queue Guard success, Build Core skipped (in the roster). node scripts/pm/check-governed-merges.mjs --pr 24354 → NOT governed; 2 changed lines ≤ 3000.

Correction of record, to this seat's card. #24346's third premise says grep -c 'page "showcase_renewals_pipeline"' → 2. That is wrong: it answers 3, at 51ad8e4fba and at 33f700b87b, because the near-miss warning transcript further down the page names the same page. The dev measured it. The other two premises and the conclusion stand.

Accepted deviations. The gate list was derived without paths, as the role file says (identical to the dispatch-time list). A second reading-only plant briefly overlapped one gate's window, and that gate was re-run on the clean tree (exit 0).

Out of scope. The near-miss transcript (about L412–L414) shows one line of a three-line warning. It is an excerpt, not stale: noted in the Acceptance notes, not filed.

Landing. Ready, then auto-merge through the queue, by this seat.


Generated by Claude Code

@objectstack-fleet
objectstack-fleet Bot marked this pull request as ready for review October 18, 2026 15:28
@objectstack-fleet
objectstack-fleet Bot enabled auto-merge October 18, 2026 15:29
@objectstack-fleet
objectstack-fleet Bot added this pull request to the merge queue Oct 18, 2026
Merged via the queue into main with commit a21fd6c Oct 18, 2026
45 checks passed
@objectstack-fleet
objectstack-fleet Bot deleted the claude/issue-24346-react-pages-transcript-index branch October 18, 2026 15:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/xs skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

2 participants