Skip to content
This repository was archived by the owner on Nov 4, 2026. It is now read-only.

Commit 3172b85

Browse files
os-salesclaude
andauthored
docs(changeset): retire two present-tense "in-flight PR" claims before they publish (objectui#9706) (#9714)
Fixes #9706 Clause-②: no Two unconsumed `.changeset/8478-*.md` bodies asserted, **in the present tense**, that part of their remaining scope was "held by in-flight PR ...". A changeset body publishes **verbatim** into the CHANGELOG, so at the next `@object-ui/types` release these become permanently published false statements about repo state. The window is live: release pull request objectui#5400 is open and its branch already carries both sentences verbatim in `packages/types/CHANGELOG.md`. Repairing the bodies on `main` regenerates that branch. ⛔ Nothing here touches objectui#5400 or `changeset-release/main`. ## The two PR states, read live from the REST API before writing Read at 2026-09-17, `GET /repos/objectstack-ai/objectui/pulls/NUMBER`, not taken from the card's restatement: | PR | reading | |---|---| | objectui#8763 | `state=closed merged=true merged_at=2026-09-09T08:11:20Z` | | objectui#8799 | `state=closed merged=true merged_at=2026-09-09T11:40:18Z` | | objectui#8766 (control, cited in past tense already) | `state=closed merged=true merged_at=2026-09-09T05:33:13Z` | ## What changed — one sentence per file, prose only `.changeset/8478-describe-line-addresses.md`, before: > The remaining 15 addresses (`form.zod.ts`, `layout.zod.ts`, `complex.zod.ts`) are out of > scope for this PR — held by in-flight PR #8763 (`form.zod.ts` / > `layout.zod.ts`); `complex.zod.ts`'s hold (PR #8766) cleared when > that PR merged during this round, so its 6 addresses return to the queue rather than > riding this PR's scope. after: > The remaining 15 addresses (`form.zod.ts`, `layout.zod.ts`, `complex.zod.ts`) were out > of scope for this PR — `form.zod.ts` / `layout.zod.ts` were held while PR > #8763 was open; `complex.zod.ts`'s hold (PR > #8766) cleared when that PR merged during this round, so its 6 > addresses returned to the queue rather than riding this PR's scope. `.changeset/8478-zod-pins-form-layout.md`, before: > The remaining 6 addresses (`zod/complex.zod.ts`) stay out of scope for this PR — held by > in-flight PR #8799 — and the card does not close here. after: > The remaining 6 addresses (`zod/complex.zod.ts`) stayed out of scope for this PR and > returned to the queue rather than riding this PR's scope — the card did not close here. Neither replacement contains a present-tense assertion about any other PR, branch or card — that is the defect class itself, and a repair that reintroduced it would rot the same way. The `objectui#8766` clause in the first file was left **verbatim**: it was already past tense and accurate, and it is not this card's target. ## The six `complex.zod.ts` addresses — the contradiction, settled The two bodies disagreed about the same six addresses: the first said the hold cleared and the six returned to the queue; the second (written later) said those six were held by in-flight objectui#8799. **The first is the true one**, and both now say the same thing. Evidence, in order of decisiveness: 1. **The second claim was already false when it landed.** objectui#8799 merged `2026-09-09T11:40:18Z`. The pull request that introduced that body, objectui#8822, merged `2026-09-09T12:52:14Z` — 72 minutes later. The sentence was born describing a state that had already ended. 2. **A separate PR carried the six.** objectui#8835 (`fix(types): drop stale source-line citations from 6 published describe() strings`) merged `2026-09-09T13:31:48Z`; its file list is exactly `.changeset/8478-zod-pins-complex.md` (added) and `packages/types/src/zod/complex.zod.ts` (modified). The six went back to the queue and were picked up on their own, which is precisely what the first body said would happen and the opposite of "riding objectui#8799's scope". 3. **objectui#8478 reached `state=closed`** at `2026-09-09T13:31:50Z`, two seconds after objectui#8835 merged. 4. **The tree agrees today.** A paren-matching scan of every `.describe()` argument on `396a1c198` finds **0** `NAME.ext:NNN` addresses in `complex.zod.ts` (167 `.describe()` calls), `form.zod.ts` (203) and `layout.zod.ts` (91). Lit control on the same corpus: the bare address matcher still fires 7 times in `complex.zod.ts` — in `//` and JSDoc comments, which were never in objectui#8478's population. ⚠️ Also checked: objectui#8799 **did** modify `complex.zod.ts`, so it was a genuine hold while it was open. The defect is the tense, not the attribution. ## Scope — exactly two files ``` .changeset/8478-describe-line-addresses.md | 10 +++++----- .changeset/8478-zod-pins-form-layout.md | 4 ++-- ``` Frontmatter untouched, and that is measured rather than asserted: `check-changeset-overwrite` prints `declared at base: @object-ui/types: patch` / `declares now: @object-ui/types: patch` for both files. ## Gates — exit code captured to disk before any pipe | gate | exit | printed verdict | |---|---|---| | `pnpm check:changeset-claims` | 0 | `No pending changeset names a file this change touches.` (report-only) | | `node scripts/check-changeset-overwrite.mjs` | 0 | 2 modified, both `@object-ui/types: patch` at base and now — the gate's own case 2, "CORRECTING a declaration on purpose ... prose that no longer matches" (report-only) | | `node scripts/check-changeset-presence.mjs` | 0 | `No source or published contract of a released package changed in this range, so no changeset is owed.` | | `node scripts/check-changeset-fixed.mjs` | 0 | `All workspace packages are in the changeset fixed group.` | | `node scripts/check-changeset-no-major.mjs` | 0 | `No changeset declares a major bump.` | | `pnpm check:control-bytes` | 0 | `OK (scanned 7814 tracked text file(s); skipped 85 binary)` | | `pnpm check:new-line-citations` | 0 | `0 new citation(s), enforcement report-only`, with its own four synthetic controls PASSing | | `pnpm check:pending-changeset-literals` | 0 | `No test source names a pending changeset.` | | `node scripts/check-governed-queue-guard.mjs --test` on both paths | 0 | `NOT GOVERNED — 2 path(s) checked against 5 governed surface(s)` | Controls, because a zero on an unlit instrument is not a reading: - Governed guard, lit: the same script on `AGENTS.md` exits **3**, `GOVERNED`. - Control-byte scan of the two files: `grep -naP` exits **1** (no hits); the same expression on a file holding one BEL byte exits **0**. - The in-flight scan below reads **0** on a corpus where the lit control reads **1327**. ⚠️ The census is deliberately **not** a `git grep`: these bodies wrap at about 80 columns and the offending sentence wraps mid-phrase, so a line-anchored matcher cannot see it. The scan collapses whitespace per file first. Before: 2 hits. After: 0, lit control 1327 files of 1637, absent control 0. No source file moved, no released package moved, no other changeset touched. Nothing owed in `pnpm test` / `pnpm lint`: the diff is markdown prose in `.changeset/`, and no package source changed. Repository-wide scans belong to CI. ## Deliberately not done - Other pending changesets of the same shape are **reported, not repaired** — objectui#9713 already tracks that wider class and the routing is the PM's. The whitespace-tolerant census over all 1637 pending declarations found no other "in-flight PR" claim; the one adjacent observation is recorded in the report rather than acted on. - objectui#5400 and `changeset-release/main`: untouched, unread beyond what the card already recorded, not commented on. --- _Generated by [Claude Code](https://claude.ai/code/session_01UanLVj6xvbS6puBCewLr8L)_ Co-authored-by: Claude <noreply@anthropic.com>
1 parent 78a9c67 commit 3172b85

2 files changed

Lines changed: 7 additions & 7 deletions

File tree

‎.changeset/8478-describe-line-addresses.md‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ description) was measured to have already drifted — the cited line is now unre
1818
permissions code; the real read site is `ObjectKanban.tsx:365`. Filed back on
1919
objectstack-ai/objectui#8478 as the drift evidence its own re-grade trigger asked for.
2020

21-
The remaining 15 addresses (`form.zod.ts`, `layout.zod.ts`, `complex.zod.ts`) are out of
22-
scope for this PR — held by in-flight PR objectstack-ai/objectui#8763 (`form.zod.ts` /
23-
`layout.zod.ts`); `complex.zod.ts`'s hold (PR objectstack-ai/objectui#8766) cleared when
24-
that PR merged during this round, so its 6 addresses return to the queue rather than
25-
riding this PR's scope.
21+
The remaining 15 addresses (`form.zod.ts`, `layout.zod.ts`, `complex.zod.ts`) were out
22+
of scope for this PR — `form.zod.ts` / `layout.zod.ts` were held while PR
23+
objectstack-ai/objectui#8763 was open; `complex.zod.ts`'s hold (PR
24+
objectstack-ai/objectui#8766) cleared when that PR merged during this round, so its 6
25+
addresses returned to the queue rather than riding this PR's scope.

‎.changeset/8478-zod-pins-form-layout.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,5 @@ marker site now `:52`) and `text.tsx:162,167` (actual `{schema.content}` sites n
2020
`:165`/`:170`). Filed back on objectstack-ai/objectui#8478 as further drift evidence for
2121
its own pre-committed p3-to-p2 re-grade trigger.
2222

23-
The remaining 6 addresses (`zod/complex.zod.ts`) stay out of scope for this PR — held by
24-
in-flight PR objectstack-ai/objectui#8799 — and the card does not close here.
23+
The remaining 6 addresses (`zod/complex.zod.ts`) stayed out of scope for this PR and
24+
returned to the queue rather than riding this PR's scope — the card did not close here.

0 commit comments

Comments
 (0)