Files
deckcraft/ROADMAP.md
Brandon ThomasandClaude Opus 5.5 6334d689d2 Text: Ctrl+arrows, Ctrl+Backspace/Delete and other text keys work like PowerPoint (#268) (#333)
* Text: Ctrl+arrows, Ctrl+Backspace/Delete and the other text keys work like PowerPoint (#268)

Observed black-box in PowerPoint for Windows on synthetic text:
- Word stops (crates/model/src/words.rs): words, punctuation runs, symbol
  runs, tabs, line breaks and each CJK character are tokens; trailing spaces
  join the token before. it's, a-b, 3.14, 1,000 are one word; e.g., a_b and
  x@y.com are not. Grapheme clusters never split.
- Ctrl+Left/Right and Ctrl+Shift+Left/Right move by those stops, across
  paragraphs; with a selection they go on from its start/end. In a
  right-to-left paragraph Left and Right swap.
- Ctrl+Backspace deletes to the previous stop; Ctrl+Delete deletes the rest
  of the word, or spaces plus the next word, then applies PowerPoint's smart
  spacing. With a selection both work from its start.
- Ctrl+Up/Down by paragraph, Ctrl+Home/End to the text's ends.
- End on a wrapped line goes past the trailing space and the caret stays
  drawn at that line's end (TextSel::line_end); End again stays, Home
  returns to the same line.
- Ctrl+]/[ and Ctrl+Shift+>/< change font size (egui's Period/Comma/
  bracket key names now match registry shortcuts).
- Shift+F3 cycles lower -> Title -> UPPER; a caret changes its word.
- Double-click selects the word without trailing spaces; triple-click
  includes the paragraph mark.
- Mac keeps Option for words and Cmd for line/text ends (Session::mac_keys).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* rustfmt

* Canvas: one caret, drawn at a wrapped line's end after End

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-12 22:09:50 -04:00

12 KiB
Raw Permalink Blame History

DeckCraft roadmap

Stage: alpha · next: beta, ~20 points and ~120–210 h away

Last reviewed: 2026-10-10 · Last updated: 2026-10-10 · Change: minor (hours to ~95% per audience added; ready 56% → 55%; stage stays alpha; previous: major, full re-measure against PowerPoint for Mac 16.113.4; restructured to the craftrules progress-docs standard) · Target: Microsoft PowerPoint for Mac 16.113 (Microsoft 365)

DeckCraft aims at full PowerPoint parity, and to be better: faster, open (a documented zip+JSON format plus PPTX), scriptable by agents (CLI, JSON control channel, MCP), and available everywhere (macOS, Windows, Linux, BSD and the web). This page is the summary; the detail is in docs/target-app-parity.md and the work list in docs/gaps.md.

Headline numbers

Value Kind
Feature breadth 79% weighted over 191 PowerPoint features (P0 92%, P1 75%, P2 36%) measured: cargo xtask parity over docs/parity-checklist.md
Menu-bar coverage 59% of 217 app-specific PowerPoint menu items matched by name (lower bound) measured: script over the PowerPoint menu dump and the 226 commands
Ready for real work ~55% estimated: weighted dimensions below
Mainstream practitioner ~53% estimated: weekly-use areas × discounts for interaction (×0.92), stability (×0.92) and .pptx exchange (×0.88), method
Essentials user ~62% estimated: core features × discounts for launch (×0.90), clarity (×0.95) and opening received files (×0.90), method
Hours to beta ~120–210 Opus 5.5 agent hours (~40–70 h with 3–4 agents) estimated, docs/roadmap.md
Hours to full parity ~365–650 Opus 5.5 agent hours estimated, docs/target-app-parity.md

Readiness by audience

Audience Ready Opus 5.5 agent hours to ~95% Work that dominates
Full target (ready for real work) ~55% 340–600 (~60% parallelizes: ~120–210 h wall clock with 3–4 agents) Feature depth across all 20 areas, legacy .ppt/.odp and video export, localization in 11+ languages, GPU raster and hardware decode, AI features
Mainstream practitioner ~53% 150–250 (~50% parallelizes: ~70–120 h with 3 agents) .pptx exchange (real-deck corpus, round-trip losses, EMF/SVG, embedded fonts) 45–75 h; depth in charts, animations, pictures, text, presenting, print/vector PDF 70–110 h; interaction (menu bar, Format Shape pane, font faces, dialogs) 25–40 h; stability 10–20 h
Essentials user ~62% 50–90 (~40% parallelizes: ~30–55 h with 2–3 agents) Opening received decks (corpus subset, EMF, SVG icons) 25–45 h; Windows launch fallback and Close prompt 6–12 h; font faces, Tab, paste, print, show navigation 12–20 h; start screen, menu bar, palette 6–10 h

Calibration is the same as for the full number (see docs/target-app-parity.md): a fix is 0.5–1 h, a checklist row to PowerPoint depth 2–4 h, a subsystem 6–35 h. The sets are nested, so essentials ≤ mainstream ≤ full. The full number is an additive weighted sum over the dimension table; only mainstream and essentials use multiplicative discounts.

Why alpha: all six of PowerPoint's core workflows pass the alpha gate (docs/roadmap.md): build, open and save .pptx, present, add tables and charts, share as PDF, review. Core workflows work end to end (build a deck, open and save .pptx, present with transitions, animations, media and presenter view, export PDF), but depth, fidelity and polish have known gaps, and PPTX has never been tested on a corpus of real decks. Beta needs ~75% ready and no blocking gap in .pptx: the real-deck corpus, the round-trip losses (#70, #74, #77), EMF/SVG pictures, the data-loss and startup-crash bugs (#60, #40, #59) and the beta list in docs/roadmap.md.

By dimension

Dimension Ready Hours to full Doc
Features (breadth 79% measured, with depth) ~62% 140–240 docs/parity-checklist.md
UI/UX fidelity ~60% 30–50 docs/ui-parity.md
File formats (PPTX, PDF, legacy, export) ~58% 60–110 docs/file-format-parity.md
Hardware (GPU raster, video decode, displays, pens) ~40% 25–45 docs/hardware-parity.md
Localization ~8% 55–90 + native review docs/localization-parity.md
Performance (unmeasured) ~55% 10–20 docs/hardware-parity.md
Stability ~60% 10–20 docs/gaps.md
Platforms ~80% 5–10 Downloads in README
Ecosystem (templates; add-ins out of scope) ~25% 10–20 docs/gaps.md
AI features ~10% 20–40 docs/gaps.md
Automation ✱ (CLI, control channel, MCP) ahead 0 docs/mcp.md

Features

Area Breadth (measured) Ready (est.) Hours Doc
Application shell 71% ~55% 8–14 ui-parity
Slides and sections 90% ~85% 3–5 checklist
Views 90% ~80% 3–6 ui-parity
Masters and themes 85% ~70% 8–14 checklist
Shapes 86% ~75% 8–14 ui-parity
Format (fill, line, effects) 81% ~65% 8–14 ui-parity
Arrange 100% ~90% 1–2 ui-parity
Text 80% ~62% 18–30 gaps
Tables 89% ~75% 3–6 checklist
Charts 65% ~45% 12–20 gaps
SmartArt 33% ~25% 10–16 gaps
Pictures 48% ~45% 12–20 file formats
Media 67% ~60% 8–14 file formats
Transitions 92% ~80% 4–8 animation-parity
Animations 79% ~65% 10–16 animation-parity
Slide show and presenter view 66% ~60% 10–16 slideshow-parity
Review 60% ~45% 8–14 gaps
Draw (ink) 33% ~30% 5–9 hardware-parity
Undo and clipboard 88% ~75% 3–5 ui-parity
Files (commands; formats above) 69% ~50% in file formats file formats

Languages

English only today; no string catalog yet (Ukrainian is in review as PR #34). Detail: docs/localization-parity.md.

Language Code UI strings Status Hours to full
English en 100% full 0
Simplified Chinese zh-Hans 0% none 6–10
Spanish es 0% none 3–5
Hindi hi 0% none 4–7
Arabic ar 0% (slide text: bidi and shaping done) none 10–16
French fr 0% none 3–5
Portuguese pt 0% none 3–5
Indonesian id 0% none 3–5
Japanese ja 0% none 4–7
German de 0% none 3–5
Korean ko 0% none 4–7
Vietnamese vi 0% none 3–5

Plus 8–14 h once for the catalog infrastructure. Other languages shipped: none. PowerPoint for Mac ships 26.

Upcoming

Ranked; detail and the full beta plan in docs/roadmap.md.

  1. No data loss, no startup crashes: Close's save prompt (#60), Windows GPU crashes (#40, #59), image paste (#53), editor soak tests. 10–20 h.
  2. PPTX on real decks: owned corpus, round-trip checks, fixes; #70, #74, #77; EMF/WMF and SVG. 36–64 h.
  3. Localization: catalog, system language (#15), zh-Hans, es, fr, de, ja with IME. 27–46 h.
  4. Output: vector PDF, printing. 10–16 h.
  5. Depth that users hit: font weights (#69), chart data and elements, Animation Pane timeline, presenter view on the right display, native macOS menu bar, Format Shape pane. 33–56 h.

Agents: CLI and MCP

Every command is reachable from deckcraft-cli (run, describe, commands, app for the running window, render, convert), from MCP (deckcraft-cli mcp, optionally --connect PORT), and from the app's JSON control channel (deckcraft --control PORT).

Progress log

Date What landed
2026-10-12 Objects off the slide show and can be selected and moved around it in Normal view, as in PowerPoint; the show, exports and thumbnails still clip to the slide (#270)

| 2026-10-12 | Korean, Japanese and Chinese input: IME composition shown in place and underlined, one undo step per composition, candidate window at the caret (slide text, notes, fields); interface text (title, notes, outline, sections, comments) borrows installed fonts for scripts the interface fonts lack (#101) |

| 2026-10-12 | Selection Pane like PowerPoint (#133): front-most first, groups fold, drag and drop restacks among siblings, Bring Forward / Send Backward, Show All / Hide All, eye, rename in place, keyboard; Lock (pane padlock, canvas menu) keeps objects from moving, sizing or rotating and round-trips PowerPoint's locking attributes |

| 2026-10-12 | Text keys like PowerPoint for Windows (#268): Ctrl+arrows and Ctrl+Shift+arrows by word (punctuation, CJK, emoji, RTL), Ctrl+Backspace/Delete with smart spacing, Ctrl+Up/Down by paragraph, Ctrl+Home/End, End on wrapped lines, Ctrl+]/[ and Ctrl+Shift+>/< font size, Shift+F3 case cycle, word and paragraph selection | | 2026-10-12 | WordArt text warps (prstTxWarp): all 40 presets drawn, curves fitted to PowerPoint by observation; warp adjusts round-trip | | 2026-10-10 | Progress docs restructured to the craftrules standard; full re-measure (breadth 79%, ready ~55%, mainstream ~53%, essentials ~62%, alpha). Landed: Animation Painter (#54), Morph geometry outlines (#27), animated GIF playback (#39), hyperlink colour and following links in the show (#37, #45), date fields in their own format (#36), flipped shapes keep readable text (#35), show transition fix (#46), start screen from the Home button (#49), MCP export lists PDF (#65), OmaStore manifest (#57) | | 2026-10-09 | v0.4.0 released. UAX #9 bidi and Arabic shaping (#4), Morph with Words and Characters (#5), tables grow to fit and PDF cell text (#14), rotating log file (#7), DX12 default on Windows (#16), H.264/HEVC overflow hardening (#2), PPTX sniffing anywhere in the zip (#19) | | 2026-10-08 | v0.2.0 and v0.3.0 released: Windows arm64, Flatpak aarch64, AppImage zsync updates, branded DMG | | 2026-10-07 | v0.1.0 released, signed and notarized; About window with contributor credits (#3); PrintCraft renamed PdfCraft | | 2026-10-06 | Renamed SlideCraft to DeckCraft. PPTX import/export, PDF export, media playback with pure-Rust codecs, connectors with glue, freeform tools, merge shapes, AutoRecover, gradient editor, web build, release CI, parity catalogue | | 2026-10-05 | M0: workspace, model, geometry, fonts, text, renderer, engine, MCP, CLI, PowerPoint-style egui UI, slide show engine |

Revision history

Date Change Summary
2026-10-10 minor Readiness-by-audience table with hours to ~95% for full, mainstream and essentials
2026-10-10 minor Added mainstream practitioner (~53%) and essentials user (~62%); features recomputed from written area weights, ready ~56% → ~55%
2026-10-10 minor Stage checked against the new core-workflow gate: passes, stays alpha
2026-10-10 major Restructured to craftrules standards/progress-docs.md: stage, two numbers, dimensions, features, languages; parity estimate moved to docs/target-app-parity.md, "Working today" to its evidence section, the alpha checklist to docs/roadmap.md
2026-10-07 major Alpha checklist (~80% to a self-defined alpha), breadth ~80%, overall ~62%, ~190 h to full parity