Repository navigation
Commit 43567a8
ci(spec-shape-gate): drop the closed objectui#12325 retirement entry and point the header at the deleted objectui copy’s last commit (#23822)
Part of #23782
Clause-②: no
## What
- **`scripts/ci/spec-shape-retirements.json`**: deletes the one entry,
whose `downstream_card` is objectstack-ai/objectui#12325. That card
closed `completed` on 2026-10-14, and the file's own `$comment` says an
entry is deleted when its card closes. The entry's `packages/**`
patterns (`TS2367` / `TS2678` with message `'"api"'`) would have read a
later, unrelated break of the same shape as `known` instead of red. The
registry is now `"retirements": []`. The `$comment` and the grammar are
unchanged.
- **`scripts/ci/spec-shape-gate.mjs`, header (comments only)**: says
that objectui deleted its copy in objectstack-ai/objectui PR #12596
(card objectstack-ai/objectui#12352), so this gate is the only one. The
"port of objectui's `scripts/spec-main-shape-gate.mjs`" sentence now
points at objectui commit `7d0c174ba8383d08b8dd1d4f7d7845009f1bf2fd` for
the measurements the header does not restate. The registry example's
`downstream_card` is now `objectstack-ai/objectui#N`.
- **Self-test fixture**: `FIXTURE_ENTRY.downstream_card` and the two
checks that read it now use `objectstack-ai/objectui#999999` instead of
the closed card's number. The malformed-card sample changes the same
way. These are fixture literals; no reader, matcher or assertion
changes.
No change to the gate's logic, `MARKER_FILE`, or the "marker name is
objectui's, on purpose" paragraph.
## Measurements
- **The reader accepts an empty list.** `parseRegistry` requires
`Array.isArray(doc.retirements)` and then checks each entry in a loop.
Run on the edited live file, it returns 0 entries and does not throw.
`pnpm check:spec-shape-gate` (the `--self-test`): `60/60 passed across 7
batteries`, exit 0.
- **The pointer commit.** In a blobless clone of
objectstack-ai/objectui, `git log -- scripts/spec-main-shape-gate.mjs`
shows that the newest commit touching the file is merge
`c6a42be392cf9ae820424a694c59fb2a7287d2ae` (PR #12596, which deletes
it). Its first parent is `7d0c174ba8383d08b8dd1d4f7d7845009f1bf2fd`.
`git cat-file -e` confirms that `scripts/spec-main-shape-gate.mjs` and
`.github/workflows/spec-main-shape-gate.yml` both exist at that commit,
and that `c6a42be392` is on objectui `main`.
- `git grep -n 'objectui#12325' -- scripts/ci`: 0 hits (exit 1).
## Choice: a pointer, not moving the measurements here
Weighed on the four axes:
- **Real need:** nobody here reads or maintains the injection
measurements. The mechanism is unchanged, and the measurements stay
reachable at a fixed commit.
- **Long-term soundness:** a pinned 40-hex commit cannot drift. A copied
header would become a second text that ages.
- **Hard for an AI to get wrong:** the pointer names the exact `git
show` path.
- **No scope spread at the startup stage:** copying the measurements
adds text nobody here maintains.
## Gates
`node scripts/pm/dispatch-gates.mjs --commands --repo
objectstack-ai/objectstack` on this branch's diff derived 29 commands.
All 29 exited 0 (each exit code captured before any pipe).
Reconciliation with `--ran`: `29 derived famil(ies) accounted for — 29
run, 0 NOT-MEASURED (a DERIVED zero)`.
## Changeset
None. The diff touches only `scripts/ci/**` at the repository root (root
`package.json` is `private: true`), and no package's `package.json`
names either file. Nothing published changes.
## Acceptance notes
The workflow header paragraph (item 1 of the card) is in the companion
Tier H PR, `claude/issue-23782-spec-shape-workflow-header`, which the
maintainer lands.
---
_Generated by [Claude
Code](https://claude.ai/code/session_017rP7fP8F2BVtpC3SDZBAdu)_
Co-authored-by: Claude <noreply@anthropic.com>1 parent 1ecb08a commit 43567a8
2 files changed
Lines changed: 17 additions & 46 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
| 33 | + | |
| 34 | + | |
33 | 35 | | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
39 | 45 | | |
40 | 46 | | |
41 | 47 | | |
| |||
73 | 79 | | |
74 | 80 | | |
75 | 81 | | |
76 | | - | |
| 82 | + | |
77 | 83 | | |
78 | 84 | | |
79 | 85 | | |
| |||
1307 | 1313 | | |
1308 | 1314 | | |
1309 | 1315 | | |
1310 | | - | |
| 1316 | + | |
1311 | 1317 | | |
1312 | 1318 | | |
1313 | 1319 | | |
| |||
1406 | 1412 | | |
1407 | 1413 | | |
1408 | 1414 | | |
1409 | | - | |
| 1415 | + | |
1410 | 1416 | | |
1411 | 1417 | | |
1412 | 1418 | | |
| |||
1469 | 1475 | | |
1470 | 1476 | | |
1471 | 1477 | | |
1472 | | - | |
| 1478 | + | |
1473 | 1479 | | |
1474 | 1480 | | |
1475 | 1481 | | |
| |||
1486 | 1492 | | |
1487 | 1493 | | |
1488 | 1494 | | |
1489 | | - | |
| 1495 | + | |
1490 | 1496 | | |
1491 | 1497 | | |
1492 | 1498 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
4 | | - | |
5 | | - | |
6 | | - | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | | - | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
| 3 | + | |
39 | 4 | | |
0 commit comments