Skip to content

Commit f5622a7

Browse files
committed
fix(spec): also correct the D3-per-family house rule in migrations/registry.ts:9 (#17152)
Round 2: the hand-written module docblock of packages/spec/src/migrations/registry.ts (lines 1-14) is outside every <os-generated ...> region -- scripts/build-migration-registry.ts splices only the marked regions, and the file's own :46 comment says so ("hand-written, outside the generated regions"). This is the exact sentence the card quotes and the ruling targets ("its `semantic` list is the non-lossless residue D2 could not express", present since the original ADR-0087 commit 16b4bf6), so leaving it unrewritten would let a merge close #17152 while the targeted sentence still stood. Rewrites it to the same meaning as the types.ts fix already on this branch: one D3 entry per retirement family, even when a lossless D2 conversion also exists for it; D2 carries the mechanical data repair only. Verified the generator preserves it: `check:migration-registry` is green, and running `gen:migration-registry` directly reproduces byte-identical output (sha256 unchanged) with the new sentence present and the old one gone -- confirming the marked-region splice never touches this header. Adds a `patch` changeset. Re-measured (build + grep with a positive control) rather than assumed: the types.ts sentence ships verbatim into the published dist/index.d.ts and dist/index.d.mts (TypeScript preserves the JSDoc attached to the exported SemanticMigration type), so this docblock text is part of the published surface and the earlier skip-changeset label no longer holds. The registry.ts sentence does not ship to dist (same positive control, zero hits either wording) but travels in the same changeset since it is one fix.
1 parent 859b5c8 commit f5622a7

2 files changed

Lines changed: 11 additions & 1 deletion

File tree

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
'@objectstack/spec': patch
3+
---
4+
5+
Corrects the ADR-0087 D2/D3 house-rule prose in the migration chain's module docblocks (`packages/spec/src/migrations/types.ts` and `packages/spec/src/migrations/registry.ts`) so it states the ruled convention: every retirement family gets one D3 `semantic` entry, even when a lossless D2 conversion also exists for it, and D2 carries the mechanical data repair only (#17152).
6+
7+
Clause-②: no
8+
9+
Both docblocks previously said a `semantic` (D3) entry exists only for a break D2 "cannot express losslessly" — the shape ruled superseded (director-seat class-one self-adjudication on #17152, authority: the maintainer's ruling on #15954). No entry, gate or runtime behaviour changes; this is a doc-comment correction, filed as `patch` because the `types.ts` module docblock text ships verbatim into the published `dist/index.d.ts` / `dist/index.d.mts` (measured: `grep` after a real build finds the corrected sentence there, with `MigrationStep` and `MIGRATION_SUPPORT_FLOOR` as positive controls proving `dist` is readable). The `registry.ts` docblock does not ship to `dist` (same positive controls, zero hits for either the old or new wording there) but is corrected for the same reason — it is the exact sentence the card quotes and the ruling targets.

‎packages/spec/src/migrations/registry.ts‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
* One {@link MigrationStep} per protocol major that carried a break. Each step's
77
* mechanical transforms are the D2 conversions that graduated into it (referenced
88
* by id, so the transform + fixture pair are never duplicated), and its
9-
* `semantic` list is the non-lossless residue D2 could not express.
9+
* `semantic` list carries one entry per retirement family, even when a lossless
10+
* D2 conversion also exists for it — D2 carries the mechanical data repair only.
1011
*
1112
* The chain is a **forever artifact**: every step back to
1213
* {@link MIGRATION_SUPPORT_FLOOR} stays replayable, and CI replays the full chain

0 commit comments

Comments
 (0)