docs/plans/2026-04-18-slate-v2-slate-claim-width-classification.md
Freeze the current slate residue inventory and classify the remaining tranche
3 work before any broader source recovery starts.
Current slate root exports in
src/index.ts are:
corecreate-editoreditorinterfacestransforms-nodetransforms-selectiontransforms-texttypesutils/is-objectThat is the currently shipped slate-v2 root surface.
It is not the default source of truth for tranche 3.
Tranche-3 default truth is:
So:
slate-v2 is not automatically acceptedpackages/slate diffExcluding build output and tool junk:
106611063Bucket read:
src/**src/**: 41test/**: 18type-tests/**: 2test/**: 1052src/**: 11Interpretation:
slate already carries a huge exact
legacy-style test corpus while draft carries contract-owner test files and
helper modulespackages/slate/src diff106161Legacy-only source residue is narrow and concrete:
core/batch.tscore/batching/**core/children.tscore/apply-operation.tseditor/with-batch.tsutils/non-settable-properties.tsInterpretation:
packages/slate/test diff830234Legacy-only test residue is concentrated in already-known buckets:
interfaces/Editor/legacy-minimal.tsxtransforms/mergeNodes/path/text.tsxLive-only test residue is just current harness support:
index.spec.tssupport/with-test.jstsconfig.jsontsconfig.custom-types.jsonThese do not need to be re-litigated from scratch:
CustomTypes is already justifieddeep-equal, old root harness files,
and similar dead helper residue is already justifiedWhat is still missing is not the archaeology.
What is missing is a live tranche-3 owner doc that turns those banked decisions into the current claim-width execution order.
These still belong in the kept tranche-3 claim and should be audited first:
packages/slate/src/editor/**packages/slate/src/interfaces/**packages/slate/src/transforms-node/**,
packages/slate/src/transforms-selection/**, and
packages/slate/src/transforms-text/**src/create-editor.tssrc/core/apply.tssrc/core/get-dirty-paths.tssrc/core/get-fragment.tssrc/core/normalize-node.tssrc/core/should-normalize.tssrc/core/update-dirty-paths.tsReason:
These are already justified as outside the kept live claim unless a later proof lane reopens them explicitly:
interfaces/CustomTypes/**utils/deep-equal/**test/index.js as a legacy harness roletest/jsx.d.tsThese may contain real value, but they are not default tranche-3 recovery:
src/core/draft-helpers.tssrc/core/transaction-helpers.tssrc/range-projection.tssrc/range-ref-transform.tssrc/text-units.tssrc/transforms-fragment.tssrc/editor/bookmark.tssrc/interfaces/bookmark.tstest/query-contract.tstest/transforms-contract.tstest/interfaces-contract.tstest/legacy-*.tsReadme.mdCHANGELOG.mdReason:
Query/location audit result:
beforeafterpositionslook source-close enough that they are no longer the best next code target.
That makes the next planned code wave:
2026-04-18-slate-v2-slate-accessor-batch-wave-plan.md.
It targets:
getChildrensetChildrenEditor.withTransaction(...)Transforms.applyBatch(...)createEditor() behaviorExecution posture for that wave:
That wave is now landed in:
2026-04-18-slate-v2-slate-accessor-batch-wave-plan.md.
Next follow-on should be chosen after implementing that wave and re-reading the tranche-3 ledgers against the accessor/batch seam, not by reusing the stale pre-landing queue blindly.
Do not do this next:
src/** files toward the draft shapeThe live slate ledgers should now read as:
post RC rows are distinct on purpose