Repository navigation
Commit 9b6df03
chore(scripts): keep the spec-major fingerprint in its gate, not the v17 sweep ledger (#26246)
<!-- claude-projects-attribution: {"github_login":"os-steve"} -->
_Requested by **Steve** · [project
thread](https://claude.ai/code/project/chan_01FdL1XeUyvVNxLreh3F4Qi9?thread=cmsg_01FdL1XeUyvVNxLreh3F4Qi9HiJAYedonvaHNCDwdoW14J)_
Part of #26075
Clause-②: no
Metadata-protocol: none
PR 1 of 2 under ruling A (6417413905). It moves the detection
fingerprint that `scripts/check-future-spec-major.mjs` kept in
`docs/v17-docs-sweep.md` into the script, so PR 2 can delete the ledger
without touching the gate. #26075 stays open for PR 2, which deletes the
eight obsolete planning docs and makes the other root-doc changes.
## What changed (one file: `scripts/check-future-spec-major.mjs`)
- **The fingerprint row now lives in the script.** The ledger's
`@objectstack/spec 18` fingerprint row is copied verbatim into a new
constant, `SWEEP_FINGERPRINT`. Its provenance is
`docs/v17-docs-sweep.md` as of `df8aac41`. The two header passages that
pointed readers at the ledger now point at that constant.
- **The self-test reads the fingerprint from its new home.** The R1
"double-backtick pattern span → GREEN" row now uses `SWEEP_FINGERPRINT`
itself. One new battery is its negative control: `R1 — the relocated
fingerprint with its double backticks reduced to single → RED`. It runs
the same row with only the delimiters changed. If that replacement ever
stops matching, the row stays a pattern span and reads GREEN, so the
control also proves the fixture still carries the citation.
`SELF_TEST_BATTERY_FLOOR` goes from 33 to 34.
- **The ledger's `QUOTATION_EXEMPTIONS` entry is removed.** It excused
the sweep log line ``**Fingerprint added:** the `@objectstack/spec` 18
row above``. That entry pinned major 18, and `main` already publishes
`packages/spec` 18.1.0, so it was DORMANT and excused nothing. The
gate's pass line already asked for it to be deleted ("delete once `main`
itself carries that major").
- **Self-test rows look up ledger entries by file, not by index**,
through a new `ledgerEntry(file)` helper. Removing that entry therefore
cannot silently point a row at the entry next to it. Fixture paths that
named the ledger file now use `docs/fingerprints.md`. The DORMANT row
keeps its ADR-0087 sentence and drops the ledger's.
The gate's behaviour is unchanged. It gives the same verdict on the real
tree (green at 18, and green at `19.0.0-next.0` in the roll control).
Only the pass line changes: it now lists 1 dormant entry instead of 2.
## Evidence (head `afc4d58e`)
- `node scripts/check-future-spec-major.mjs --self-test` → `✓
check-future-spec-major self-test: 34 cases pass.` (base: 33).
- `node scripts/check-future-spec-major.mjs` → exit 0, `3 live witnessed
ledger entr(y|ies)`, `1 DORMANT ledger entr(y|ies) …
docs/adr/0087-metadata-protocol-upgrade-contract.md (major 18)`.
- **Deletion rehearsal.** With `docs/v17-docs-sweep.md` moved out of the
tree, the gate exits 0 (21148 scanned files instead of 21149). The file
was then restored and checked byte-identical with `git hash-object`. PR
2's deletion therefore needs no further edit to this script.
- Derived gate families: `node scripts/pm/dispatch-gates.mjs --commands`
gives 33. All 33 ran locally at exit 0, including `pnpm
check:pm-dispatch-gates` (fast tier, 1917 cases). `--ran`
reconciliation: `33 run, 0 NOT-MEASURED`.
- No `*.test.*` file names this script. Its `--self-test` is its suite.
## Acceptance notes
- `scripts/check-future-spec-major.mjs` is the only file changed, so
this PR is in-repo tooling with no published surface and carries
`skip-changeset`.
- The remaining dormant entry (ADR-0087, major 18) is also due for
deletion by the gate's own rule. It is not touched here because it has
nothing to do with the sweep ledger. Successor: none.
---
_Generated by [Claude
Code](https://claude.ai/code/session_01SQ8bET7S4BDrvJdXyuLdYi)_
Co-authored-by: Claude <noreply@anthropic.com>1 parent 8b7253c commit 9b6df03
1 file changed
Lines changed: 60 additions & 41 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
29 | | - | |
30 | | - | |
31 | | - | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
32 | 33 | | |
33 | 34 | | |
34 | 35 | | |
| |||
123 | 124 | | |
124 | 125 | | |
125 | 126 | | |
126 | | - | |
127 | | - | |
| 127 | + | |
| 128 | + | |
128 | 129 | | |
129 | 130 | | |
130 | 131 | | |
131 | 132 | | |
132 | 133 | | |
133 | 134 | | |
134 | 135 | | |
135 | | - | |
136 | | - | |
| 136 | + | |
| 137 | + | |
137 | 138 | | |
138 | 139 | | |
139 | 140 | | |
| |||
299 | 300 | | |
300 | 301 | | |
301 | 302 | | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
302 | 319 | | |
303 | 320 | | |
304 | 321 | | |
| |||
340 | 357 | | |
341 | 358 | | |
342 | 359 | | |
343 | | - | |
344 | | - | |
345 | | - | |
346 | | - | |
347 | | - | |
348 | | - | |
349 | | - | |
350 | | - | |
351 | | - | |
352 | | - | |
353 | | - | |
354 | 360 | | |
355 | 361 | | |
356 | 362 | | |
| |||
574 | 580 | | |
575 | 581 | | |
576 | 582 | | |
| 583 | + | |
577 | 584 | | |
578 | 585 | | |
579 | 586 | | |
| |||
597 | 604 | | |
598 | 605 | | |
599 | 606 | | |
600 | | - | |
| 607 | + | |
601 | 608 | | |
602 | 609 | | |
603 | 610 | | |
| |||
611 | 618 | | |
612 | 619 | | |
613 | 620 | | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
614 | 628 | | |
615 | 629 | | |
616 | 630 | | |
| |||
731 | 745 | | |
732 | 746 | | |
733 | 747 | | |
734 | | - | |
735 | | - | |
736 | | - | |
737 | | - | |
738 | | - | |
| 748 | + | |
739 | 749 | | |
740 | 750 | | |
741 | 751 | | |
742 | 752 | | |
743 | | - | |
| 753 | + | |
744 | 754 | | |
745 | | - | |
| 755 | + | |
| 756 | + | |
| 757 | + | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
746 | 769 | | |
747 | 770 | | |
748 | 771 | | |
| |||
767 | 790 | | |
768 | 791 | | |
769 | 792 | | |
770 | | - | |
| 793 | + | |
771 | 794 | | |
772 | 795 | | |
773 | 796 | | |
| |||
777 | 800 | | |
778 | 801 | | |
779 | 802 | | |
780 | | - | |
| 803 | + | |
781 | 804 | | |
782 | 805 | | |
783 | 806 | | |
| |||
788 | 811 | | |
789 | 812 | | |
790 | 813 | | |
791 | | - | |
| 814 | + | |
792 | 815 | | |
793 | 816 | | |
794 | 817 | | |
795 | 818 | | |
796 | 819 | | |
797 | 820 | | |
798 | 821 | | |
799 | | - | |
| 822 | + | |
800 | 823 | | |
801 | 824 | | |
802 | 825 | | |
| |||
810 | 833 | | |
811 | 834 | | |
812 | 835 | | |
813 | | - | |
| 836 | + | |
814 | 837 | | |
815 | 838 | | |
816 | 839 | | |
| |||
821 | 844 | | |
822 | 845 | | |
823 | 846 | | |
824 | | - | |
825 | | - | |
826 | | - | |
827 | | - | |
828 | | - | |
| 847 | + | |
| 848 | + | |
| 849 | + | |
| 850 | + | |
| 851 | + | |
829 | 852 | | |
830 | 853 | | |
831 | 854 | | |
832 | 855 | | |
833 | 856 | | |
834 | 857 | | |
835 | 858 | | |
836 | | - | |
837 | | - | |
838 | | - | |
839 | | - | |
840 | 859 | | |
841 | | - | |
| 860 | + | |
842 | 861 | | |
843 | 862 | | |
844 | 863 | | |
| |||
0 commit comments