* 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>
12 KiB
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.
- 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.
- PPTX on real decks: owned corpus, round-trip checks, fixes; #70, #74, #77; EMF/WMF and SVG. 36–64 h.
- Localization: catalog, system language (#15), zh-Hans, es, fr, de, ja with IME. 27–46 h.
- Output: vector PDF, printing. 10–16 h.
- 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 |