docs/plans/2026-04-09-slate-core-deleted-test-family-closure-consensus-plan.md
packages/slate/test/** is still the biggest deleted family bucket leftPros:
Cons:
Pros:
Cons:
Pros:
Cons:
Option AWhy chosen:
Close the remaining packages/slate/test/** deleted-family bucket by mapping
every deleted row to current proof, restoring the uncovered current-value
clusters, then converting the incompatible residue into explicit skip entries
with better-cut rationale.
packages/slate/test/** family closurepackages/slate-react/test/** deleted-family closurepackages/slate-history/test/** deleted-family closurepackages/slate/src/**Treat deleted packages/slate/test/** closure as an uncovered-proof-delta
problem, not a family-ordering ritual.
Start with a classification pass for every remaining family:
mirrored now
snapshot-contract.ts or an existing contract filesupportable next
explicit skip
Use explicit skip as the accounting label and better-cut rationale as the
explanation attached to that label.
Then execute the remaining work in uncovered-delta order, not family-label order:
yarn test:mochayarn workspace slate-react run testyarn workspace slate-dom testyarn test:customyarn lint:typescriptGoal:
mirrored now, supportable next, explicit skipFamilies:
transforms/**interfaces/** after excluding claims already
mirrored by current proofoperations/** after excluding claims already
mirrored by current proofnormalization/** after excluding claims
already mirrored by current proofutils/** after excluding claims already
mirrored by current proofindex.jsjsx.d.tsOutput:
Family Closure Matrix inside the execution artifact with these
columns:
deleted path or cluster idfamilydeleted countlegacy claimcurrent proof owner file#linestatusrationalenew proof file if anyledger row touchedinterfaces/** = 576transforms/** = 408operations/** = 31normalization/** = 20utils/** = 11index.js = 1jsx.d.ts = 1packages/slate/test/** deleted rows = 1048Goal:
supportable nextImportant read:
transforms/**interfaces/** is nextsnapshot-contract.ts already mirrors a large amount of transform and value
semantics, so duplicated proof is failure, not progressExit:
Goal:
Restore targets may land as:
snapshot-contract.tsExit:
explicit skip with a stated incompatibility reasonGoal:
packages/slate/test/index.js and packages/slate/test/jsx.d.ts
explicitly instead of leaving them as vague residueExit:
Goal:
Each note must say:
Before any new restore lands, fill this matrix and keep it current.
| deleted path or cluster id | family | deleted count | legacy claim | current proof owner file#line | status (mirrored now / supportable next / explicit skip) | rationale | new proof file if any | ledger row touched |
|---|---|---|---|---|---|---|---|---|
packages/slate/test/interfaces/**:cluster-* | interfaces/** | 576 total | value/query/runtime-guard rows | snapshot-contract.ts, interfaces-contract.ts | mirrored now + explicit skip | helper-heavy surface is already mirrored by current proof; only deleted CustomTypes declaration-merging rows are explicit skip | 2026-04-09-slate-v2-interfaces-family-deleted-test-closure.md | major file/test deletion review |
packages/slate/test/transforms/**:cluster-* | transforms/** | 408 total | helper transform rows | snapshot-contract.ts, clipboard-contract.ts, transforms-contract.ts | mirrored now + recovered now + explicit skip | current narrow transform contract is either already mirrored, directly recovered, or explicitly outside the live claim | 2026-04-09-slate-v2-transforms-family-deleted-test-closure.md | major file/test deletion review |
packages/slate/test/operations/**:cluster-* | operations/** | 31 total | raw operation rows | operations-contract.ts | recovered now + explicit skip | current raw-operation seam is directly recovered; legacy custom-selection and null/undefined removal-sentinel rows are explicit skip | 2026-04-09-slate-v2-operations-family-deleted-test-closure.md | major file/test deletion review |
packages/slate/test/normalization/**:cluster-* | normalization/** | 20 total | normalization rows | normalization-contract.ts | mirrored now | current default-vs-explicit normalization split mirrors the deleted normalization rows without reopening broader always-on coercion | 2026-04-09-slate-v2-normalization-family-deleted-test-closure.md | major file/test deletion review |
packages/slate/test/utils/**:cluster-* | utils/** | 11 total | helper rows | text-units-contract.ts | mirrored now + explicit skip | surviving string-unit value is mirrored; deleted deep-equal/** rows are explicit skip | 2026-04-09-slate-v2-utils-and-root-test-entrypoint-closure.md | major file/test deletion review |
packages/slate/test/index.js | index.js | 1 | test entrypoint | none | explicit skip | old fixture-harness root entrypoint is replaced by direct contract files plus package-local Mocha globs | 2026-04-09-slate-v2-utils-and-root-test-entrypoint-closure.md | major file/test deletion review |
packages/slate/test/jsx.d.ts | jsx.d.ts | 1 | test typing entrypoint | none | explicit skip | old JSX typing shim belonged to the deleted fixture harness, not the current direct-contract lane | 2026-04-09-slate-v2-utils-and-root-test-entrypoint-closure.md | major file/test deletion review |
Closure rule:
supportable next row that is not restored must be reclassified to
explicit skip with a stated incompatibility reasonmajor file/test deletion review in
release-file-review-ledger.md
when all 1048 deleted packages/slate/test/** rows are mapped and every
surviving uncovered public-value delta has direct proof or an explicit skip
noteNo restore may land unless the closure matrix cites the existing proof rows it does not duplicate.
Known proof owners to audit first:
packages/slate/test/** family has a written
classification:
mirrored nowsupportable nextexplicit skipsupportable next is either restored in
code-bearing proof or reclassified to explicit skip with a stated
incompatibility reason.yarn test:mochayarn workspace slate-react run testyarn workspace slate-dom testyarn test:customyarn lint:typescriptClose the remaining deleted packages/slate/test/** bucket by restoring
representative family contracts in descending value order, instead of bulk
restoring the whole deleted fixture tree.
Batch-local:
yarn test:mochayarn workspace slate-react run testyarn workspace slate-dom testyarn test:customyarn lint:typescriptFinal closeout: