docs/plans/2026-03-24-non-react-coverage-roadmap-phase-2.md
Freeze the last worthwhile non-React cleanup batch so future passes stop re-ranking the same leftovers and just burn down the queue.
score >= 5 file.[done] 7 htmlDeserializerCodeBlock.ts[done] 7 HtmlPlugin.ts[done] 7 htmlStringToEditorDOM.ts[done] 6 pluginRenderTextStatic.tsx[done] 6 ParserPlugin.ts[done] 6 pipeDecorate.ts[done] 6 BaseExcalidrawPlugin.ts[done] 6 ViewPlugin.ts[done] 5 getSelectedDomFragment.tsx[done] 5 pluginRenderLeafStatic.tsx[done] 5 withScrolling.ts[done] 5 pluginRenderElementStatic.tsx[done] 5 onDropNode.ts[done] 5 htmlElementToLeaf.ts[done] 5 AstPlugin.ts[done] 5 upsertLink.ts[done] 5 convertNodesSerialize.ts[deferred] 5 isEditOnlyDisabled.ts
Reason: one-line partial gap. Not worth a dedicated trip unless a nearby Tier 1 spec naturally closes it.[deferred] 5 pipeInjectNodeProps.tsx
Reason: same story. Tiny leftover, not a real phase driver.[deferred] 4 html-to-docx.ts
Reason: giant serializer sludge. Bad ROI for the last non-React pass.[deferred] 4 font-table.ts
Reason: schema boilerplate.[deferred] 4 content-types.ts
Reason: schema boilerplate.[deferred] 4 focus.ts
Reason: DOM-ish utility crumb. Save it for a DOM-focused phase if it ever matters.[deferred] 4 useRecordHotkeys.ts
Reason: not in /react, but still close enough to React-side behavior that it can wait for the React phase.[deferred] 4 AutoformatPlugin.ts
Reason: small partial gap only. Not worth pulling ahead of the stricter queue.[done].[deferred] with a reason.[removed].