XMind to Cinema Pitch Deck (TypeScript/Node)
What This Skill Does
Generates a premium animated pitch deck from:
.xmindfile (reads archive internals)- exported XMind
.json
Output:
- a single self-contained
HTMLdeck usingReveal.js + GSAP + Tailwind - configurable slide layout (
16:9,16:10,4:3) - high-contrast, recording-friendly typography
- staggered entrance animations for title, blocks, and bullet points
- selectable deck templates (
cinematic,clean,minimal)
Manifest Configuration
This Skill uses the frontmatter manifest above (name, description, argument-hint, user-invocable).
Runtime/config files:
package.json(Node/TypeScript toolchain manifest)templates/deck.manifest.json(deck-generation defaults)
Data Mapping Rules
- Central topic => title slide
- Main topics => one slide each
- Subtopics => animated content blocks (with nested bullets from child nodes)
Canonical Level-2 Schema
The deck pipeline expects these canonical Level-2 block titles on each slide:
Concept Deep DiveWorked ExampleDemo WalkthroughAdvanced ScenarioTrade-offs
Parser-side normalization is enabled in src/parser.ts so common aliases are mapped automatically.
Examples: How It Works/Key Concepts -> Concept Deep Dive, Application/Use Case -> Worked Example, Process Flow/Step by Step -> Demo Walkthrough, and Pros and Cons -> Trade-offs.
Animation Rules (Video-First)
- Reveal fragments on every content block and point
- GSAP staggered fade-up animation per slide
- Smooth text reveal timings tuned for screen recording
- Preserves
In this sectionwithScenario,Why it matters, andIn summary
Theme Rules
- Auto-detect industry from topic text (AI, SaaS, Finance, Healthcare, Education, Retail, Gaming)
- Apply matching Tailwind-style palette and gradient mood
Commands
From this skill folder:
npm install
npm run build
npm run deck -- --input "<path-to-file.xmind-or-json>" --out "<output.html>"
Optional dynamic content flags:
npm run deck -- --input "<in.xmind>" --out "<out.html>" --dynamic-content true --dynamic-depth 2
Optional customization flags:
npm run deck -- --input "<in.xmind>" --out "<out.html>" \
--theme ai \
--template clean \
--layout 16:10 \
--deck-subtitle "Pi Agent Crash Course" \
--title-kicker "Your Name" \
--title-meta false
Notes:
--theme:ai|saas|finance|healthcare|education|retail|gaming|general--template:cinematic|clean|minimal--layout:16:9|16:10|4:3--deck-subtitledefaults to empty (no forced subtitle text)--title-metadefaults tofalse(removes the constant title-slide metadata line)
Optional enriched mindmap JSON export:
npm run deck -- --input "<in.xmind>" --out "<out.html>" --out-mindmap-json "<enriched-mindmap.json>"
Dev mode:
npm run dev -- --input "<path-to-file.xmind-or-json>" --out "<output.html>"
Deliverables
- parser:
src/parser.ts - deck generator:
src/deckGenerator.ts - theme selector:
src/themeSelector.ts - CLI entrypoint:
src/index.ts - boilerplate shell/template:
templates/deck.manifest.json