Skip to content

docs(changeset): date the MEMBER_PIN_EXEMPTION_CEILING reading in the pending 8171 body - #9823

Merged
os-sales merged 1 commit into
mainfrom
claude/issue-9781-8171-absolute-ceiling-reading
Sep 18, 2026
Merged

os-sales merged 1 commit into
mainfrom
claude/issue-9781-8171-absolute-ceiling-reading

Conversation

@os-sales

Copy link
Copy Markdown
Collaborator

Fixes #9781

Clause-②: no

Scope: one sentence of prose in the pending .changeset/8171-calendar-sort-input.md. Frontmatter untouched, and the rest of that paragraph (the object-calendar.sort exemption, the objectui#8176 backlog ceiling) is not assessed here.

The defect, and why the reading is DATED rather than corrected

The paragraph ended with: MEMBER_PIN_EXEMPTION_CEILING is untouched at 62.

That is two claims with different lifetimes:

  • "is untouched" — a bounded statement about what objectui#8171 itself did. True when written, and nothing anyone does later can falsify it. ⭐ KEPT, word for word.
  • "at 62" — an absolute reading of a SHARED constant. ROTTED: somebody else's change falsifies it, and one did.

⇒ The repair DATES the reading at its write-time commit and names the falsifier. ⛔ It does not restate the constant at today's value — that number is true today and false again at the next slice, i.e. this same defect authored a second time. The rule the repaired prose now carries: state your OWN change's bounded transition ("lowers 62 to 58", "follows 31 to 28 in the same change") or state that you did not touch the constant, and never state what its value currently is.

Every number, with the instrument that produced it and the ref it was taken at

Established in this worktree, ⛔ not inherited from the card. The repository was NOT shallow when measured (git rev-parse --is-shallow-repository prints false).

  1. Today's reading — 24, at 42234b1a2cd7540a5d53907a95438a888a6b5021 (this branch's base, origin/main fetched 2026-09-18T06:56Z):
    git grep -n -E 'const MEMBER_PIN_EXEMPTION_CEILING = [0-9]+' 42234b1a2cd7540a5d53907a95438a888a6b5021 -- apps/console/src/__tests__/registry-inputs-spec-parity.test.ts
    prints ...:3144:const MEMBER_PIN_EXEMPTION_CEILING = 24;. ⚠️ That value moves often; it appears here only as the reason the old sentence is false, and ⛔ it is deliberately not written into the changeset.
  2. The write-time commit — 35e63669d6, 2026-09-07 (pull request feat(plugin-calendar): declare the sort input both object-calendar registrations read #8223):
    git log --oneline -S'is untouched at 62' -- .changeset/8171-calendar-sort-input.md returns exactly that one commit, and git log --oneline --reverse -- .changeset/8171-calendar-sort-input.md shows it is the only commit that has ever touched the file.
  3. 62 WAS the value there, so the sentence was TRUE when written:
    git show 35e63669d6:apps/console/src/__tests__/registry-inputs-spec-parity.test.ts | grep -nE 'const MEMBER_PIN_EXEMPTION_CEILING = [0-9]+;' prints 2267:const MEMBER_PIN_EXEMPTION_CEILING = 62;. ⇒ ROTTED, ⛔ not BORN FALSE.
  4. The FIRST falsifier — 240c605939, 2026-09-09 (pull request test(spec-parity): member pins for object-form.fields and object-grid exportOptions / bulkActions / bulkActionDefs (objectui#8071 slice 1) #8737, objectui#8071 slice 1):
    git log --oneline --reverse -G'^const MEMBER_PIN_EXEMPTION_CEILING = ' 35e63669d6..42234b1a2cd7540a5d53907a95438a888a6b5021 -- apps/console/src/__tests__/registry-inputs-spec-parity.test.ts enumerates, in order, the 11 commits that move that line between write time and this base; 240c605939 is the first of them. At it the constant reads 58 (git show 240c605939:apps/console/src/__tests__/registry-inputs-spec-parity.test.ts | grep -nE ... prints 2437:const MEMBER_PIN_EXEMPTION_CEILING = 58;) ⇒ the transition that falsified the reading is 62 to 58. Why that one and not a later one: the enumeration is ordered and complete for that line over that range, so no earlier commit in the range touched it.
  5. Ancestry legs, so that range really is the path from write time to this base: git merge-base --is-ancestor 35e63669d6 42234b1a2c exits 0; git merge-base --is-ancestor 240c605939 42234b1a2c exits 0; the control leg in the opposite direction, git merge-base --is-ancestor 42234b1a2c 35e63669d6, exits 1, as it must.

Before/after probe of the changed prose — whitespace-tolerant, both controls, one corpus

⚠️ Changeset prose wraps near eighty columns, so a line-anchored grep -F reads 0 on text that is plainly there. The instrument normalizes whitespace first (tr -s '[:space:]' ' ') and then counts fixed-string occurrences (grep -o -F | wc -l). One corpus: the changeset file, base copy vs working copy.

probe before after
LIT control, spans a wrap, untouched by this change: the shrink-only objectui#8176 backlog ceiling drops 16 to 15 1 1
ABSENT control: MEMBER_PIN_EXEMPTION_CEILING is untouched at 24 0 0
REMOVED, spans a wrap: rather than a member-pin exemption. MEMBER_PIN_EXEMPTION_CEILING is untouched at 62. 1 0
ADDED, spans a wrap, the dated reading: MEMBER_PIN_EXEMPTION_CEILING is untouched by this change; it read 62 at the commit that wrote this paragraph (35e63669d6, 2026-09-07) 0 1
ADDED, spans a wrap, the falsifier: objectui#8071 slice 1 (240c605939, 2026-09-09) lowered it 62 -> 58 0 1
KEPT, the original sentence quoted verbatim inside the closing note: MEMBER_PIN_EXEMPTION_CEILING is untouched at 62 1 1

⭐ The lit control itself spans a wrap, so it proves the instrument rather than merely accompanying it: the same needle under a line-anchored grep -c -F reads before=0, after=0 — the false negative this table exists to avoid.

⚠️ Read the paragraph, not the line: the true half stays as the live sentence, the rotted half is preserved verbatim as a dated quotation, and the still-true claim is never deleted along with the false reading.

Changeset grade for this change — MEASURED, with both controls

node scripts/check-changeset-presence.mjs, in a worktree with pnpm install completed.

  • ABSENT control, this change as committed — exit 0: "1 file(s) changed, 0 of them published source of a package the release covers, 0 of them a manifest whose published contract moved, 0 under a package changesets ignores, 0 changeset(s) added", then "No source or published contract of a released package changed in this range, so no changeset is owed."
  • LIT control — one comment line appended to packages/plugin-calendar/src/ObjectCalendar.tsx, proven to reach disk (marker occurrences 0 then 1): exit 1, "2 file(s) changed, 1 of them published source of a package the release covers", "1 source file(s) of 1 released package(s) changed, and this change adds no changeset". ⇒ the gate can fail on this corpus, so the green above is a measurement rather than a silence.
  • Restore leggit checkout HEAD -- packages/plugin-calendar/src/ObjectCalendar.tsx; git hash-object on the path equals the HEAD blob daa84297c2ac6c4a61059a05cc86974750c7295e, git diff HEAD for it prints nothing, and the gate re-reads exit 0.

⛔ No changeset is added for this change, and ⛔ the skip-changeset label is not applied — in this repository nothing reads it; the gate's own verdict line above is the authority.

Gate exit codes — each captured to disk BEFORE any pipe

Written with the redirect first and the status read from the file afterwards, never through a pipe.

gate exit
node scripts/check-changeset-overwrite.mjs (case 2: a pre-existing changeset modified on purpose; report-only) 0
node scripts/check-changeset-presence.mjs 0
node scripts/check-changeset-claims.mjs 0
node scripts/check-changeset-fixed.mjs 0
node scripts/check-changeset-no-major.mjs 0
node scripts/check-pending-changeset-literals.mjs 0
node scripts/check-control-bytes.mjs 0
node scripts/check-new-cross-file-line-citations.mjs 0 (0 new citations)
pnpm exec vitest run over the four scripts/__tests__/ changeset suites, under the shared verify lock, slot issue-9781 0 — 4 files, 126 tests passed

The overwrite gate classifies this change as its case 2 and prints both sides of the declaration: "declared at base: @object-ui/plugin-calendar: minor" and "declares now: @object-ui/plugin-calendar: minor" — frontmatter untouched, which is exactly what case 2 asks of a deliberate prose correction.

Gate family: the workflows whose path filters include .changeset/** are changeset-guard.yml (no-major plus overwrite), ci.yml, lint.yml and live-e2e.yml. The repository-wide farm belongs to CI; the targeted set above is what this diff owes locally.

The window

Release pull request #5400 was open at claim time, re-read open, not merged immediately before the first write, and again immediately before the push (2026-09-18T07:03Z). ⛔ Nothing in this branch touches it or any file it owns. If it merges before this lands, the card is re-triaged: the remedy channel becomes a docs-only pull request on a release-owned tree, and the published CHANGELOG copy is already out of reach.

Serial constraint, re-taken over the open-pull-request set immediately before the first write: 19 open pull requests enumerated with their full changed-file lists (#5400 paginated, 1732 files). ⛔ Only #5400 touches .changeset/8171-calendar-sort-input.md, and that is the WINDOW, not a conflict for this lane to settle. The sibling card objectui#9772 works a different pending file; no file is shared, and no verdict here was established by analogy to it.

Acceptance notes

  • Placement: the in-paragraph sentence stays short and the provenance goes into a closing note at the end of the body, so the paragraph that follows ("That member pin is deliberately NOT ...") keeps the antecedent sitting directly above it. Two inserted paragraphs would have separated them.
  • Observed, not filed: apps/console/src/__tests__/registry-inputs-spec-parity.test.ts carries docblock comments that state this same ceiling in the present tense — "and MEMBER_PIN_EXEMPTION_CEILING stays 62", "the reason MEMBER_PIN_EXEMPTION_CEILING reads 62" — each attributed to a named past card, so a careful reader can date them from context, but the tense reads live while the constant reads otherwise today. In-tree comments, not pending changeset prose, and outside this card's surface. Carrier: whoever moves that ceiling next.

Session: https://claude.ai/code/session_01UanLVj6xvbS6puBCewLr8L


Generated by Claude Code

…he pending 8171 body

`.changeset/8171-calendar-sort-input.md` ended a paragraph with
"`MEMBER_PIN_EXEMPTION_CEILING` is untouched at 62". Both halves were true at
the commit that wrote it (`35e63669d6`, 2026-09-07): that change did not touch
the constant, and 62 was its value there. The `at 62` half is an absolute
reading of a SHARED constant, so somebody else's change falsifies it —
`240c605939` (objectui#8071 slice 1, 2026-09-09) lowered it 62 -> 58, and later
slices moved it again while this declaration sat pending.

The reading is DATED and the falsifier named, rather than corrected to today's
value: today's value is true today and false at the next slice, which would be
the same defect authored a second time. The still-true "is untouched" half is
kept. Frontmatter untouched.

Refs: objectui#9781

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UanLVj6xvbS6puBCewLr8L
@os-sales os-sales added the domain:spec objectui spec stream: fix lands on packages/types, schema corpus or spec pin coupling — spec lane label Sep 18, 2026 — with Claude
@os-sales
os-sales marked this pull request as ready for review September 18, 2026 07:27
@os-sales
os-sales added this pull request to the merge queue Sep 18, 2026
Merged via the queue into main with commit 26ac503 Sep 18, 2026
36 checks passed
@os-sales
os-sales deleted the claude/issue-9781-8171-absolute-ceiling-reading branch September 18, 2026 07:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

domain:spec objectui spec stream: fix lands on packages/types, schema corpus or spec pin coupling — spec lane

Projects

None yet

2 participants