Back to Plate

Slate v2 WPT Harvest Row Accounting

docs/plans/2026-05-11-slate-v2-wpt-harvest-test-processing-row-accounting.md

53.0.64.2 KB
Original Source

Slate v2 WPT Harvest Row Accounting

status: done lane: slate-v2 source_harvest: .tmp/editor-test-harvester/wpt/report.md source_inventory: .tmp/editor-test-harvester/wpt/inventory.md source_test_index: .tmp/editor-test-harvester/wpt/test-index.md target_revision: ../wpt@dd54691426

Accounting Rule

The versioned plan accounts for the five promoted harvest matrix rows. The full 1,139-file WPT focused inventory stays in scratch output and is routed here by category, action, and owner class so the execution plan does not pretend every browser-platform file is a Slate test.

RowLane statusSlate v2 ownerAction
WPT-1 beforeinput/inputin-laneslate-react input runtime, slate-browser browser harnessrefactor existing first; create gap rows only for cancellation/DataTransfer/native ownership gaps
WPT-2 DOM Selection/Rangein-laneslate-browser selection helpers, slate-react selection controller and DOM coveragerefactor existing browser/package rows first
WPT-3 clipboard/DataTransferin-laneslate-dom clipboard boundary, slate clipboard contract, slate-react clipboard bridgerefactor existing; add app-owned/model-owned gap rows only
WPT-4 contenteditable structural editsin-laneslate transforms/delete/insertFragment, slate-react DOM coverage and browser stressrefactor existing; create narrow crash-regression rows only after dedupe
WPT-5 focus/Shadow DOMin-laneslate-react focus/runtime, slate-browser harness, Shadow DOM browser proofrefactor existing; add detached/shadow-host fail-closed rows only

Inventory Category Routing

CategoryCountRouteCompletion decision
portable518Raw Slate substrate candidate pool. Folded into WPT-1 through WPT-5 by tag.in-lane, grouped
portable-mixed198Split rows. Browser substrate pressure stays in WPT-1 through WPT-5; product/plugin behavior is excluded.split, grouped
defer7Future or low-signal browser API rows from editing/**.explicit defer
harness172Support, manual, reference, and no-assertion harness files.skip
skip182Browser policy/layout/platform rows without editor substrate behavior.out-of-lane
uncertain62Scratch-only editing rows that the harvester did not promote to the matrix. They remain harvester inventory debt, not Slate v2 execution rows.out-of-plan until a harvester rerun promotes them

Category By Action

Category/actionCountRoute
portable / refactor-existing326Deduped inside WPT-1 through WPT-5 before any new test
portable / create-new190Gap-only rows after current coverage search
portable / defer2Future API or harness-limited rows
portable-mixed / refactor-existing133Substrate slice only
portable-mixed / create-new46Substrate slice only, only after proof owner is named
portable-mixed / defer19Low-signal crash/designMode rows until a direct editor invariant is written
defer / refactor-existing3Explicit defer with target owner
defer / create-new4Explicit defer with target owner
harness / skip172Excluded
skip / skip182Excluded
uncertain / defer62Excluded from this plan; not counted as unresolved Slate v2 rows

Directory Pressure

DirectoryRouted pressure
clipboard-apisWPT-3 only, excluding permissions and policy rows
input-eventsWPT-1
selectionWPT-2
dom/rangesWPT-2, with tentative OpaqueRange rows treated as defer unless reduced to current DOM Range behavior
contenteditableWPT-4
editingWPT-1, WPT-4, and selected WPT-5 crash/focus rows
focusWPT-5, excluding harness-only files
shadow-domWPT-5 only when selection, focus, caret, input, or editing host behavior is present

No Unresolved Lane Rows

No promoted WPT matrix row is unresolved. The only non-closed inventory class is uncertain, and those files were not promoted by the source harvest into Slate v2 behavior rows. A later WPT harvester deepening can promote some of them, but this lane plan has no autonomous routing left.