docs/plans/2026-03-24-coverage-priority-map-testing-review-non-react-post-bun-check.md
/react/reactbun test --coverage --coverage-reporter=lcov --coverage-dir=.coverage-repo-2026-03-24p --reporter=dots over the temporary non-React file list2745 pass, 0 fail, 558 files, 2.77s.bun test --coverage is still polluted by React-side suite poison, so this pass uses the stable /react-excluded run instead of lying to itself.pnpm test:profile -- --top 25: greenpnpm test:slowest -- --top 25: green2983 pass, 0 fail, 606 files, 4.30s0.552ms0.234ms75ms/test, 150ms/filepackages/**/src/**./react slice, and obvious component shells outside /react.package_score is the sum of the top 5 remaining file scores in that package.Do not do another non-React package sweep.
There is one last real non-React cleanup phase left. It is mostly parser or serializer seams plus a few bounded transform or plugin contract gaps. After the score >= 5 queue is burned down, stop. The remaining misses are mostly score-4 dust, DOM-heavy leftovers, wrapper clusters, or giant serializer sludge.
score >= 6: 2 filesscore >= 5: 21 filesscore >= 4: 48 filesscore >= 3: 86 filesscore >= 2: 134 filesscore >= 1: 168 fileslink: upsertLink.ts — score 6markdown: convertNodesSerialize.ts — score 6core: DOMPlugin.ts — score 5autoformat: AutoformatPlugin.ts — score 5basic-nodes: BaseHeadingPlugin.ts — score 5core: inferWhiteSpaceRule.ts — score 5core: pipeRenderElementStatic.tsx — score 5core: cleanHtmlFontElements.ts — score 5core: pluginDeserializeHtml.ts — score 5table: getTableCellBorders.ts — score 5core: cleanHtmlTextNodes.ts — score 5markdown: splitIncompleteMdx.ts — score 5core: isLastNonEmptyTextOfInlineFormattingContext.ts — score 5core: traverseHtmlNode.ts — score 5list-classic: moveListItemSublistItemsToListItemSublist.ts — score 5markdown: mdastToSlate.ts — score 5markdown: markdownToSlateNodesSafely.ts — score 5suggestion: addMarkSuggestion.ts — score 5suggestion: removeMarkSuggestion.ts — score 5table: deleteRowWhenExpanded.ts — score 5markdown — package score 25core — package score 25table — package score 22basic-nodes — package score 21suggestion — package score 20list-classic — package score 19code-block — package score 14docx-io — package score 14list — package score 11slate — package score 11link — upsertLink.ts — score 6, coverage 93.9%, uncovered 6markdown — convertNodesSerialize.ts — score 6, coverage 95.6%, uncovered 6core — DOMPlugin.ts — score 5, coverage 68.8%, uncovered 20autoformat — AutoformatPlugin.ts — score 5, coverage 88.9%, uncovered 8basic-nodes — BaseHeadingPlugin.ts — score 5, coverage 93.5%, uncovered 6core — inferWhiteSpaceRule.ts — score 5, coverage 79.2%, uncovered 5core — pipeRenderElementStatic.tsx — score 5, coverage 83.3%, uncovered 5core — cleanHtmlFontElements.ts — score 5, coverage 66.7%, uncovered 4core — pluginDeserializeHtml.ts — score 5, coverage 97.5%, uncovered 4table — getTableCellBorders.ts — score 5, coverage 90.2%, uncovered 4Stop non-React coverage after the phase-3 roadmap below. After that, the remaining misses are mostly wrapper dust, tiny crumbs, DOM-heavy leftovers, and giant low-ROI serializer slabs.
That is where more non-React coverage turns into percentage cosplay. Switch to React or architecture-safety work instead.
core and markdown still look inflated because they have several medium-value parser or static crumbs left.docx-io still looks bigger than it deserves because html-to-docx.ts is a giant low-ROI serializer slab.