chore(devx): state the react-page-adapter rot record as data and retire its held allowance row (#15765) - #15844
Merged
Conversation
…re its held allowance row (#15765) The `scripts/**` symbol-anchor corpus (#15806) landed with two dated `HELD_FILE_ALLOWANCES` rows for files live PRs held. PR #15770 landed, so the row for `scripts/check-react-page-adapter-contract.mjs` is free — and an allowance nobody retires is an exemption wearing a date. The four dated readings in that gate's rot-record paragraph are now stated as DATA — a small table with the file and the line number in separate cells — never in `path:NNN` anchor form. The NUMBERS ARE NOT REPAIRED OR REPOINTED: they are readings taken on a date, the paragraph's argument is unchanged, and its ⛔ line still declares every number a record rather than a pointer. The one substantive addition is that the paragraph no longer claims nothing resolves citations in `scripts/**` — since #15806 something does, which is why the anchor spelling had to go. The self-test battery floor moves 34 → 30 because four of its cases are registered PER allowance row; the reason is recorded next to the number so a later reader cannot mistake the drop for cases that stopped running. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012zGPuVVX3deAx9LdjK8jCk
baozhoutao
marked this pull request as ready for review
September 5, 2026 10:59
baozhoutao
enabled auto-merge
September 5, 2026 10:59
Contributor
Author
|
Flipped ready + auto-merge enabled (10:59Z, Generated by Claude Code |
baozhoutao
deleted the
claude/issue-15765-react-page-adapter-rot-record
branch
September 5, 2026 11:22
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 free
to 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.
Part of #15765 — the card stays open: the second held allowance row (
scripts/check-adr-0087-registration.mjs) is behind governed PR #15724 and is deliberately untouched here.PR #15806 landed the
scripts/**symbol-anchor corpus with two datedHELD_FILE_ALLOWANCESrows for files that live PRs held. PR #15770 landed at 08:08Z, so one of them is now free — and an allowance nobody retires is an exemption wearing a date. This PR retires it.What changed
1.
scripts/check-react-page-adapter-contract.mjs— the rot record is now stated as DATA, not as anchors.The paragraph's four dated readings are moved into a small table whose file and line are separate cells, so no
path:NNNtoken remains:packages/client/src/index.tspackages/client/src/index.tspackages/client/src/index.tscontent/docs/api/client-sdk.mdx⛔ No number is repaired or repointed. They are readings taken on a date; the paragraph's argument (one cross-file line citation rotted twice inside a single day, which argues against citing a line at all rather than for repointing it) is unchanged, and its ⛔ line still declares every number a record rather than a pointer. Only the spelling changed.
One clause was updated because the corpus made it false: the paragraph used to say
scripts/**is outside every symbol-anchor corpus so nothing resolves these for you. Since #15806 something does — which is precisely why the anchor spelling had to go — so the paragraph now says that, and says an anchor-shaped number here is judged and reds. Its file-level anchors resolve (packages/client/src/index.tsandcontent/docs/api/client-sdk.mdxare both tracked).2.
scripts/check-scripts-symbol-anchors.mjs— the row is deleted. Thescripts/check-adr-0087-registration.mjsrow stays, dated and named to PR #15724. The header does not count rows, so no header text needed changing.3. The self-test battery floor moves 34 → 30, and the reason is recorded next to the number. Four of the battery's cases are registered per allowance row (the exactness loop runs four
check()s over each row), so retiring a row lowers the floor by exactly 4. That is now written beside the literal as the only admissible reason to lower it — any other drop is cases that stopped running. This is a mechanical consequence of the mandated deletion: without it--self-testcannot be green, which the ruling requires.Measurement
Exit codes captured before any pipe (
cmd > file 2>&1; E=$?), verdict lines quoted from the runs themselves.(a) Base (
cc5b3dd0c), row present — green.EXIT=0(b) ABLATION — row deleted, paragraph UNREWRITTEN: the gate reds and names the file. Trap-guarded (
trap restore EXIT INT TERM), absolute paths resolved fromgit rev-parse --show-toplevel, mutation proved on disk before the run and restore proved byte-identical after, never by an exit code.check-react-page-adapter-contract.mjs1 → 0; theadr-0087row still 1; anchor-form citations in the target paragraph 1 (unrewritten). Blobdd894c71…→914c7a80…(a no-op mutation would have aborted the run).ABLATED_EXIT=1:--self-test,ABLATED_SELFTEST_EXIT=1— and this is where the floor reading came from:RESTORED=dd894c71217803ded4ef95d1bfd8736f5d350952(equal to the HEAD blob),git diff HEADempty →RESTORED-OK.(c) Final tree — all four runs green.
EXIT=0— one allowance finding left, the governed one, still printed and still counted.EXIT=0— including check 5, which reds if a row names a file that no longer carries a judged finding.The edited file is itself a gate, so it was run too:
EXIT=0EXIT=0Deltas between (a) and (c) are all in the expected direction:
2730 → 2736anchors (the table's file paths resolve as file-level anchors),99 → 96citations naming no tracked file (the three bare readings stop being citations at all),2 → 1dated allowance findings.The rest of the battery
node scripts/pm/dispatch-gates.mjs --changed --commands --repo objectstack-ai/objectstack—EXIT=0, change set 2 paths vs merge basecc5b3dd0c, 31 commands derived and every one run and MEASURED GREEN — 0 NOT-MEASURED, 0 UNRUN, reconciled by the tool itself rather than by arithmetic over my own list:Two commands did not measure on the first pass and neither was reported as a result:
PREREQUISITE NOT MET, exit 3, and oneERR_MODULE_NOT_FOUND) —check-reference-carrier-shape(+self-test),check-ci-filter-parity,check-closing-keyword-parity(+self-test),check-comment-mask-corpus,check:driver-memory-census.pnpm install --offline(5.7s) then measured all seven green, e.g.✓ comment-mask corpus sweep [scripts/js-comment-mask.mjs]: 5996 files, 0 disagree, 0 unparseable, 63.5s (comparator self-test: 17 cases pass).— the one that reads the very comment prose this PR edits.pnpm check:pm-dispatch-gatesfirst readEXIT=124. That was my own 300s cap, not a verdict; re-run uncapped on its own recorded PID it reaches✓ dispatch-gates self-test: 1493 cases pass.EXIT=0.Other readings:
pnpm check:nul-bytesEXIT=0, plus an independentgrep -naP '[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]'over both edited files, exit 1 (no matches).node scripts/pm/check-governed-merges.mjs --test <final file list>→✅ NOT governed — ordinary queue landing applies to a PR with exactly this file list.(0 of 2 path(s) hit the register), run on the FINAL list.git merge-tree --write-tree origin/main HEADafter a fresh fetch →EXIT=0, clean (againstorigin/main6c439f2b4).GET /pulls/N/files; none touches either edited file. PR feat(devx): accept a dotted member path in ADR-0087 type-surface-only references #15724, whose held row stays, touchesscripts/check-adr-0087-registration.mjsonly.state: lock is free,queue: empty. No lock-eligible run was needed — this card builds and tests nothing.Scripts-only diff, nothing published from any released package →
skip-changeset, applied additively and read back.🤖 Generated with Claude Code
https://claude.ai/code/session_012zGPuVVX3deAx9LdjK8jCk
Generated by Claude Code