docs/plans/2026-03-25-coverage-priority-map-testing-review-non-react-post-phase-3.md
/reactbun test --coverage --coverage-reporter=lcov --coverage-dir=.coverage-repo-2026-03-25b --reporter=dots over the regenerated non-React file list in .claude/tmp/non_react_test_files.txt2784 pass, 0 fail, 566 files, 2.32s.615 files before rerunning coverage. The earlier list would have lied about remaining gaps.pnpm test:profile -- --top 25: greenpnpm test:slowest -- --top 25: green3022 pass, 0 fail, 614 files, 3.83s0.508ms0.212ms75ms/test, 150ms/file totalpackages/**/src/**./react, and browser-package work under packages/playwright.package_score is the sum of the top 5 remaining file scores in that package, not every leftover crumb.Non-React coverage is basically spent.
There are no score >= 6 files left. The entire honest score >= 5 set is just five files, and four of them are one tiny basic-nodes parser-plugin lane. That is not a reason to reopen package theater. It is a reason to finish one last micro-batch if you care, then stop.
score >= 5: 5 filesscore >= 4: 25 filesscore >= 3: 70 filesscore >= 2: 108 filesscore >= 1: 210 filesdocx: docxListToList.ts — score 5basic-nodes: BaseCodePlugin.ts — score 5basic-nodes: BaseStrikethroughPlugin.ts — score 5basic-nodes: BaseItalicPlugin.ts — score 5basic-nodes: BaseUnderlinePlugin.ts — score 5table: getSelectedCellsBorders.ts — score 4autoformat: AutoformatPlugin.ts — score 4core: DebugPlugin.ts — score 4udecode/depset: get-package-manager.ts — score 4table: getCellIndices.ts — score 4basic-nodes: BaseBoldPlugin.ts — score 4slate: deleteText.ts — score 4basic-nodes — package score 24slate — package score 20docx — package score 18table — package score 17core — package score 16docx-io — package score 16list-classic — package score 16dnd — package score 15markdown — package score 12resizable — package score 12suggestion — package score 10cursor — package score 9docx — docxListToList.ts — score 5, coverage 78.9%, uncovered 8basic-nodes — BaseCodePlugin.ts — score 5, coverage 76.9%, uncovered 6basic-nodes — BaseStrikethroughPlugin.ts — score 5, coverage 83.3%, uncovered 4basic-nodes — BaseItalicPlugin.ts — score 5, coverage 82.6%, uncovered 4basic-nodes — BaseUnderlinePlugin.ts — score 5, coverage 82.6%, uncovered 4table — getSelectedCellsBorders.ts — score 4, coverage 95.1%, uncovered 12docx-io — settings.ts — score 4, coverage 0.0%, uncovered 11slate — hasDOMNode.ts — score 4, coverage 18.2%, uncovered 9autoformat — AutoformatPlugin.ts — score 4, coverage 88.9%, uncovered 8slate — hasEditableTarget.ts — score 4, coverage 20.0%, uncovered 8slate — hasSelectableTarget.ts — score 4, coverage 20.0%, uncovered 8slate — hasTarget.ts — score 4, coverage 20.0%, uncovered 8core — DebugPlugin.ts — score 4, coverage 90.6%, uncovered 5udecode/depset — get-package-manager.ts — score 4, coverage 81.5%, uncovered 5table — getCellIndices.ts — score 4, coverage 81.8%, uncovered 4Stop non-React coverage after the phase-4 roadmap below. The remaining misses after that are mostly DOM-only Slate crumbs, schema or type dust, wrapper/plugin residue, and giant low-ROI serializer sludge.
That is where more non-React coverage turns into percentage cosplay. Switch to React or architecture-safety work instead.
basic-nodes looks high because a small parser-mark lane is still partially covered, not because the whole package needs a sweep.slate looks inflated by DOM-editor leftovers. They are real files, but wrong phase for a final non-React cleanup lap.docx-io still overstates itself because schema dust and html-to-docx.ts are uncovered but not high-ROI.