Back to Reactive Resume

Implement plan 16: editable imported rich-text tables

docs/execution/briefs/implement-plan-16.md

5.3.03.1 KB
Original Source

Implement plan 16: editable imported rich-text tables

Read entire approved plan from local planning checkout only when its HEAD equals a2557b2ad40e06e1e63eb655f286e6a78fe6bf0d; otherwise use pinned portable fallback: git show a2557b2ad40e06e1e63eb655f286e6a78fe6bf0d:plans/16-imported-table-borders.md. Read current AGENTS.md, RTK, issue/domain instructions, ADRs, and applicable skills, including test-driven-development. Run root Intent inventory and load matching local skill before source edits. Do not spawn subagents. Do not touch ledger, mutate issues, merge, push, or open PR.

Start from refreshed origin/main, require clean worktree, rename branch codex/issue-3196-editable-tables, revalidate live issue 3196 and open PRs, and run exact drift check. Preserve merged #3438. Historical screenshot equivalence remains unverified without source, but Q11 independently approves supported table editing.

Implement one atomic TDD unit across editor/HTML/PDF:

  • Add failing rich-input.table tests first and record exact RED output: supported 2x3 table parses as structured Tiptap JSON; mount emits no change; named-cell edit affects one cell; undo/redo and remount retain rows/cells/text; HTML reimports equivalently. Include colspan/rowspan, multiple paragraphs, inline marks, paste, and unrelated prop updates.
  • Register native Tiptap table/row/header/cell support with smallest required dependencies and frozen lockfile changes. Preserve supported widths/spans/borders and existing emitUpdate: false behavior.
  • Detect unsupported structured markup before destructive normalization. Retain exact original HTML, expose accessible read-only notice, and prevent ordinary edits from overwriting it. Cover locked, keyboard, reopen, and cancellation behavior. Stop if implementation needs broader HTML security policy or arbitrary editor extensions.
  • Keep explicit CSS precedence and borderless tables borderless. Legacy HTML border mapping is outside initial scope unless an exact fixture proves it is first failure; then stop and report fork rather than widening silently.
  • Extend actual PDF integration: assert six cell coordinates plus exact horizontal/vertical border operators and fixed-DPI pixels for supported CSS borders in legacy/semantic modes. Unsupported fallback must remain lossless. Text-only assertion cannot pass.
  • Add focused synthetic import E2E covering edit, undo/redo, save/reload, unrelated edit, browser/server PDF. No private data.

Run initial RED, focused web/PDF GREEN suites including existing #3438 test, web/PDF typechecks, boundaries, full build, and plan E2E against dedicated disposable DB. Use narrow non-writing Biome; disclose/inspect any write-capable pnpm check. Run git diff --check and scope inspection. Commit locally with normal message; no push/PR before independent review.

Write .orchestration/plan-16-implementation.md: verified facts vs uncertainty, live/drift state, exact RED/GREEN evidence, dependency/lockfile changes, commit/files, commands/results, skipped gates, risks, historical issue limitation, PR not created. Final response at most ten lines.