Skip to content

Documentation Coverage — Features & Limitations

Programmatically generated from every page's own doc_coverage: front matter, cross-referenced against scripts/coverage_registry.yml. Run uv run src/pptxdiff/docs-site/scripts/sync_doc_coverage.py --write to regenerate after adding or changing coverage on any page; --check verifies this page is still in sync (see the script's own docstring for exactly what that checks).

40 tracked items — 36 complete, 4 partial, 0 not yet documented. (generated 2026-08-05T08:54:58Z)

Complete Partial Missing Total
Features 22 4 0 26
Limitations 14 0 0 14

Features

Item Status Documented at
Accessibility (aria-labels, screen-reader-friendly toasts) Complete ui-shortcuts § accessibility
Batch mode (multi-pair upload, pairing, reordering) Complete batch-mode
Dark / light mode Complete ui-shortcuts § dark mode
Deck-level comparison (alignment, added/removed/moved slides) Complete deck-comparison
index § see it in action
Diff engine (per-slide-pair property diffing) Complete diff-engine
index
Duplicate detection (same-deck and cross-deck) Complete duplicate-detection
Exports (PDF/HTML/JSON/CSV/Markdown/Notion/Confluence) Complete exports
Git integration for .pptx files (textconv/difftool) Partial headless-cli-api § git integration
Headless CLI (@pptxdiff/cli) Partial headless-cli-api § pptxdiffcli
Homebrew formula for pptxdiff Partial architecture § packaging layers
getting-started § option d homebrew
homebrew
Keyboard shortcuts Complete ui-shortcuts § keyboard shortcuts
PPTXDIFF_LITE_MODE: env var + ?lite=1 query param Complete architecture § runtime dependencies vendored locally
cli § lite mode cdn sourcing
ui-shortcuts § offline mode
Live push to Slack/Notion/Confluence Complete exports § live push
npm CLI (bin/cli.js) Complete architecture § packaging layers
cli
getting-started
Offline capability (vendored React/ReactDOM/Babel/JSZip/pptx-renderer/fonts) Complete architecture § runtime dependencies vendored locally
getting-started § requirements
index
In-app "Offline Mode" corner toggle Complete cli § lite mode cdn sourcing
ui-shortcuts § offline mode
OpenAPI docs endpoints (/openapi.json and /docs) Complete headless-cli-api § api discovery
Rendering fidelity (Rendered vs. Schematic) Complete rendering
index
Reviewer workflow (reviewers, approvals, comments, history) Complete reviewer-workflow
index
In-browser self-test suite Complete architecture § testing philosophy
self-tests
On-disk sample .pptx fixtures (gen-sample-pptx.mjs) Complete getting-started § try it with the bundled sample files
Three-way merge (per-diff picks, beta .pptx export) Complete merge
Single pair / All pairs / Batch views Complete deck-comparison § views
VS Code extension Complete architecture § packaging layers
vscode-extension
Web API (@pptxdiff/server) Partial headless-cli-api § pptxdiffserver
Word-level (LCS) text diffing Complete diff-engine § word level diffing

Limitations

Item Status Documented at
Accessibility limitations (English-only UI, no full keyboard-nav audit) Complete limitations
Batch mode limitations (untuned filename-similarity threshold) Complete limitations
Deck-level comparison limitations (fixed/untuned alignment thresholds) Complete limitations
Diff engine limitations (partial theme-color map, table-diff cap, no section/OLE/3D diff) Complete limitations
Export limitations (shareable link is data: URL, Notion/Confluence live push is CORS-limited) Complete exports § sharing
limitations
Headless CLI/API: not published, Phase 1 only, no server auth Complete limitations
Homebrew formula: not tapped anywhere yet, not verified against real brew locally Complete limitations
Lite mode is all 5 dependencies at once, no per-dependency mixing Complete limitations
Offline-capability limitations (pdfjs-dist unvendored, latin-only font subset) Complete limitations
Packaging limitations (opens browser tab, not native window) Complete limitations
Rendering fidelity limitations (schematic fallback, non-pixel-perfect master/layout) Complete rendering § known rendering limitations
limitations
Reviewer workflow limitations (merge is planning-scope, review state local) Complete merge § why not a full ooxml round trip
reviewer-workflow § persistence
limitations
On-disk sample fixture gaps (no SmartArt/transitions/embedded-fonts/real-media) Complete limitations
Transition preview is simplified crossfade, not per-type accurate Complete rendering § known rendering limitations
limitations