Skip to content

Add Docs word processor roadmap#81

Merged
hackerwins merged 2 commits into
mainfrom
docs-wordprocessor-roadmap
Mar 25, 2026
Merged

Add Docs word processor roadmap#81
hackerwins merged 2 commits into
mainfrom
docs-wordprocessor-roadmap

Conversation

@hackerwins

@hackerwins hackerwins commented Mar 25, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Add six-phase roadmap design doc to bring Wafflebase Docs to Google Docs feature parity
  • Add task tracking and lessons files for the roadmap
  • Update design docs index

Phases

  1. Block Type Extensions — headings, lists, horizontal rules
  2. Inline Extensions & Clipboard — links, highlights, super/subscript, copy/paste, find & replace
  3. Complex Blocks — images, tables, code blocks
  4. Page Features — headers/footers, page breaks, sections, table of contents
  5. Advanced Collaboration — comments, suggestion mode, version history
  6. Advanced Features — multi-column, footnotes, spell check, PDF export, named styles

Test plan

  • No code changes — design and task docs only
  • pnpm verify:fast passes

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Added a comprehensive six-phase word processor roadmap describing phased feature expansion from basic blocks to advanced authoring, collaboration, and export capabilities.
    • Added task-tracking and "Lessons" guidance pages to organize implementation work and capture learnings as the project progresses.

Six-phase plan to bring Wafflebase Docs to Google Docs feature parity:
block types, inline extensions, complex blocks, page features,
advanced collaboration, and power-user features.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
@coderabbitai

coderabbitai Bot commented Mar 25, 2026

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

Adds documentation for a six‑phase Wafflebase Docs word‑processor roadmap: a new design page, an index entry, a phase-by-phase task tracker, and a lessons template; describes data-model extensions, editor control-flow expectations, risks, and phase dependencies.

Changes

Cohort / File(s) Summary
Design Documentation Index
docs/design/README.md
Inserted an index entry linking to the new docs word processor roadmap (docs/design/docs-wordprocessor-roadmap.md).
Word Processor Roadmap
docs/design/docs-wordprocessor-roadmap.md
Added a new, detailed six-phase roadmap describing current baseline, target data-model extensions (block kinds, inline styles), per-phase feature scope, editor/engine control-flow notes, CRDT considerations, risk/mitigation, and phase dependency diagram.
Task Tracking & Lessons
docs/tasks/active/20260325-docs-wordprocessor-todo.md, docs/tasks/active/20260325-docs-wordprocessor-lessons.md
Added a phase-by-phase to-do tracker for implementation tasks and a lessons page template linking to the roadmap; both are documentation-only additions.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

Poem

🐇 I nibbled notes and drew a map,
Six hopping phases on my lap.
Blocks and links and pages bright,
I twitch my whiskers — future's in sight! ✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Add Docs word processor roadmap' directly reflects the primary change: introducing a new design roadmap document for Wafflebase Docs word processor evolution, along with supporting task and lessons documentation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs-wordprocessor-roadmap

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions

github-actions Bot commented Mar 25, 2026

Copy link
Copy Markdown
Contributor

Verification: verify:self

Result: ✅ PASS in 100.7s

Lane Status Duration
sheets:build ✅ pass 12.5s
docs:build ✅ pass 5.2s
verify:fast ✅ pass 47.6s
frontend:build ✅ pass 14.4s
verify:frontend:chunks ✅ pass 0.3s
backend:build ✅ pass 4.3s
cli:build ✅ pass 1.8s
verify:entropy ✅ pass 14.5s

Verification: verify:integration

Result: ✅ PASS

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/design/docs-wordprocessor-roadmap.md`:
- Around line 190-192: The doc assigns Ctrl+Shift+V to both "Copy formatting"
(Ctrl+Shift+C / Ctrl+Shift+V) and "Plain-text paste" which conflicts; pick
distinct shortcuts and update the spec accordingly — for example keep "Copy
formatting" as Ctrl+Shift+C to copy style and use Ctrl+Shift+V only for "Apply
formatting" if you intend a separate paste-style action, or change "Plain-text
paste" to Ctrl+Shift+Alt+V (or Ctrl+Alt+V) to avoid collision; update the two
entries ("Copy formatting" and "Plain-text paste") so their shortcuts are unique
and the wording clarifies which action applies/copies formatting versus which
strips formatting.
- Around line 335-341: The fenced diagram block in docs-wordprocessor-roadmap.md
is missing a language tag (MD040); edit the fenced code block that begins with
"Phase 1 (Block Types) ──┐" and add a language identifier (e.g., "text")
immediately after the opening triple backticks so the block becomes ```text and
the warning is resolved.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 542831b1-76ee-4c80-ae4a-3143c0d67268

📥 Commits

Reviewing files that changed from the base of the PR and between c51d7a4 and f506fa6.

📒 Files selected for processing (4)
  • docs/design/README.md
  • docs/design/docs-wordprocessor-roadmap.md
  • docs/tasks/active/20260325-docs-wordprocessor-lessons.md
  • docs/tasks/active/20260325-docs-wordprocessor-todo.md

Comment thread docs/design/docs-wordprocessor-roadmap.md Outdated
Comment thread docs/design/docs-wordprocessor-roadmap.md Outdated
Change copy-formatting apply shortcut from Ctrl+Shift+V to Ctrl+Alt+V
to avoid collision with plain-text paste. Add `text` language tag to
the phase dependencies fenced code block.

Co-Authored-By: Claude Opus 4.6 <[email protected]>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (3)
docs/design/docs-wordprocessor-roadmap.md (3)

110-111: Clarify whether superscript and subscript are mutually exclusive.

The data model allows both superscript and subscript to be set simultaneously. In typical word processors, these formatting options are mutually exclusive. Consider adding a note specifying the expected behavior when both are true (e.g., subscript takes precedence, or the combination is invalid).

📝 Proposed clarification
   // Phase 2
   href?: string;
   backgroundColor?: string;
-  superscript?: boolean;
-  subscript?: boolean;
+  superscript?: boolean;  // mutually exclusive with subscript
+  subscript?: boolean;     // mutually exclusive with superscript
 }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/design/docs-wordprocessor-roadmap.md` around lines 110 - 111, The docs
currently allow both superscript and subscript to be true simultaneously; update
the specification to clarify expected behavior by either (a) declaring them
mutually exclusive and stating that validators or the editor must enforce only
one may be true at a time, or (b) defining a clear precedence rule (e.g.,
subscript overrides superscript when both are set). Reference the superscript
and subscript fields in the text and add a short note about how clients should
handle validation or rendering when both flags are present.

139-139: Clarify list-exit behavior for nested levels.

The spec states "Enter on empty list item exits list (converts to paragraph)." Does this apply only to top-level items, or does it outdent one level per Enter until reaching the top? Google Docs outdents progressively; specifying this behavior will guide implementation.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/design/docs-wordprocessor-roadmap.md` at line 139, The spec phrase
"Enter on empty list item exits list (converts to paragraph)" is ambiguous for
nested lists; update the spec text to explicitly state the intended behavior
(either "outdent one level per Enter on an empty list item until reaching
top-level, then convert to paragraph" or "only exits the list when at top-level
and converts to paragraph"), and make this change where that phrase appears in
the document so implementers know whether to implement progressive outdenting
(Google Docs style) or a single-step exit to paragraph.

136-136: Specify marker styles for list levels beyond 2.

Line 89 allows listLevel from 0 to 8 (9 levels), but only three bullet styles (●, ○, ■) and three ordered patterns are specified. Clarify what markers are used for levels 3-8. Do the patterns cycle, or does level 2+ reuse the last pattern?

📋 Example clarification
-- Bullet markers: unordered (●, ○, ■ by level), ordered (1. 2. 3., a. b. c., i. ii. iii.)
+- Bullet markers: unordered cycles through ● (level 0), ○ (level 1), ■ (level 2), then repeats; ordered cycles through decimal (1. 2. 3.), lower-alpha (a. b. c.), lower-roman (i. ii. iii.), then repeats
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/design/docs-wordprocessor-roadmap.md` at line 136, The document
currently allows listLevel values 0–8 but only defines three unordered markers
(●, ○, ■) and three ordered patterns (1., a., i.); update the docs to explicitly
state how markers are selected for levels 3–8 by either (a) defining a full
mapping for listLevel 0–8 for both unordered and ordered lists, or (b) declaring
the cycling rule (e.g., cycle back to level 0 markers or repeat the last marker)
and showing the exact sequence; reference the term listLevel and the existing
"Bullet markers" / "ordered patterns" entries and include a small table or list
mapping each listLevel (0..8) to its marker so consumers know whether levels 3–8
reuse or cycle marker styles.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@docs/design/docs-wordprocessor-roadmap.md`:
- Around line 110-111: The docs currently allow both superscript and subscript
to be true simultaneously; update the specification to clarify expected behavior
by either (a) declaring them mutually exclusive and stating that validators or
the editor must enforce only one may be true at a time, or (b) defining a clear
precedence rule (e.g., subscript overrides superscript when both are set).
Reference the superscript and subscript fields in the text and add a short note
about how clients should handle validation or rendering when both flags are
present.
- Line 139: The spec phrase "Enter on empty list item exits list (converts to
paragraph)" is ambiguous for nested lists; update the spec text to explicitly
state the intended behavior (either "outdent one level per Enter on an empty
list item until reaching top-level, then convert to paragraph" or "only exits
the list when at top-level and converts to paragraph"), and make this change
where that phrase appears in the document so implementers know whether to
implement progressive outdenting (Google Docs style) or a single-step exit to
paragraph.
- Line 136: The document currently allows listLevel values 0–8 but only defines
three unordered markers (●, ○, ■) and three ordered patterns (1., a., i.);
update the docs to explicitly state how markers are selected for levels 3–8 by
either (a) defining a full mapping for listLevel 0–8 for both unordered and
ordered lists, or (b) declaring the cycling rule (e.g., cycle back to level 0
markers or repeat the last marker) and showing the exact sequence; reference the
term listLevel and the existing "Bullet markers" / "ordered patterns" entries
and include a small table or list mapping each listLevel (0..8) to its marker so
consumers know whether levels 3–8 reuse or cycle marker styles.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 23a74baa-8888-405c-8a50-89ec6cc95803

📥 Commits

Reviewing files that changed from the base of the PR and between f506fa6 and 0d5eea4.

📒 Files selected for processing (1)
  • docs/design/docs-wordprocessor-roadmap.md

@hackerwins
hackerwins merged commit c5b64c5 into main Mar 25, 2026
3 checks passed
@hackerwins
hackerwins deleted the docs-wordprocessor-roadmap branch March 25, 2026 14:49
hackerwins added a commit that referenced this pull request Mar 25, 2026
Toolbar now groups as: Undo/Redo | Styles | Font Styles | Block Styles,
matching Google Docs toolbar organization for better discoverability.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant