Skip to main content

officecli-pitch-deck

Use this skill when the user wants to create a pitch deck, investor presentation, product launch deck, sales presentation, or business proposal in PowerPoint format. Trigger on: 'pitch deck', 'investor deck', 'Series A deck', 'product launch presentation', 'sales deck', 'fundraising deck', 'startup pitch', 'business proposal slides', 'seed pitch', 'enterprise sales deck'. Output is always a single .pptx file. This skill does NOT use morph transitions -- for morph-animated presentations, use the morph-ppt skill instead.

Quellinformationen

Repository
CES-Ltd/TitanX
Letzte Quellaktivität
6. April 2026 um 04:04
Erkannte Sprache von SKILL.md
Englisch
Sterne
49
Forks
6

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
2 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
officecli-pitch-deck
description
Use this skill when the user wants to create a pitch deck, investor presentation, product launch deck, sales presentation, or business proposal in PowerPoint format. Trigger on: 'pitch deck', 'investor deck', 'Series A deck', 'product launch presentation', 'sales deck', 'fundraising deck', 'startup pitch', 'business proposal slides', 'seed pitch', 'enterprise sales deck'. Output is always a single .pptx file. This skill does NOT use morph transitions -- for morph-animated presentations, use the morph-ppt skill instead.
# Pitch Deck Skill Create professional pitch presentations from scratch -- investor decks, product launches, enterprise sales decks, and business proposals. Output is a single `.pptx` file with gradient backgrounds, modern charts, styled tables, stat callouts, and speaker notes on every content slide. --- ## BEFORE YOU START (CRITICAL) **Every time before using officecli, run this check:** ```bash if ! command -v officecli &> /dev/null; then echo "Installing officecli..." curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCli/main/install.sh | bash # Windows: irm https://raw.githubusercontent.com/iOfficeAI/OfficeCli/main/install.ps1 | iex else CURRENT=$(officecli --version 2>&1 | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' | head -1) LATEST=$(curl -fsSL https://api.github.com/repos/iOfficeAI/OfficeCLI/releases/latest | grep '"tag_name"' | sed -E 's/.*"v?([0-9.]+)".*/\1/') if [ "$CURRENT" != "$LATEST" ]; then echo "Upgrading officecli $CURRENT -> $LATEST..." curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCli/main/install.sh | bash else echo "officecli $CURRENT is up to date" fi fi officecli --version ``` --- ## Use When - User wants to create an investor pitch deck (seed, Series A/B/C) - User wants a product launch or feature announcement presentation - User wants an enterprise sales deck or client-facing pitch - User wants a business proposal or strategy presentation in slides - User mentions "pitch deck", "investor deck", "sales deck", "fundraising presentation" ## Don't Use When | User Request | Correct Skill | | --------------------------------------------------- | --------------------------- | | Morph-animated or cinematic presentations | morph-ppt | | Edit/modify an existing .pptx | officecli-pptx (editing.md) | | Excel dashboard or data report | officecli-data-dashboard | | Word document | officecli-docx | | Request is primarily about animation/motion effects | morph-ppt | ### pitch-deck vs morph-ppt | Aspect | pitch-deck (this skill) | morph-ppt | | ------------------ | ----------------------------------- | ------------------------------------ | | Core mechanic | Layout diversity + content density | Morph transition + scene actors | | Slide construction | Build each slide fresh from scratch | Clone + ghost + modify actors | | Animation | Standard transitions (fade, push) | Morph (shape-matching across slides) | | Naming convention | No special naming | `!!actor` + `#sN-content` | | Data visualization | Charts, tables, stat callouts | None (text + shapes only) | | Helper scripts | None needed | morph-helpers.sh required | --- ## Hard Rules (Non-Negotiable) These rules are checked by evaluators and will **FAIL** the deck if violated. No exceptions beyond the explicit list below. ### H-FONT: Body Text Minimum Size + Font Consistency **ALL body text must be ≥ 16pt.** This applies to EVERY visible text element unless it falls into the explicit exceptions below. **Elements that MUST be ≥ 16pt (no exceptions):** - Card body copy / card descriptions - Flow diagram node description text - Team bio text - Timeline step labels - Business model card copy - Sub-labels under stat callout numbers (e.g., "Total Addressable Market") - Any paragraph or supporting text block **Permitted exceptions (only these — nothing else):** - Chart axis labels / tick labels: 10pt minimum (e.g., `axisFont="10:64748B:Calibri"`) - Chart legend text: 10pt minimum (e.g., `legendFont="10:64748B:Calibri"`) - Table header/body rows: 11-12pt minimum (table cells have constrained space) - Icon badge initials (letters inside avatar ellipses): any size acceptable **If you are unsure whether something is an exception: it is NOT. Set it to 16pt.** **Font consistency (enforced across every shape):** The font pairing declared in creating.md Section A.3 (e.g., Georgia for titles, Calibri for body) applies to EVERY text shape in the entire deck without exception. This includes: - Connector labels (if any) - Footer shapes - Page number shapes - Small caption or source-credit shapes - Notes callout shapes ❌ BANNED: Using any font not declared in your A.3 pairing (e.g., adding Arial, Helvetica, Times New Roman, or any other font mid-deck) ❌ BANNED: Omitting the `font` property on any shape and relying on PowerPoint defaults Before delivery, scan every `add` command in your script and confirm every shape has an explicit `"font"` value matching your declared pairing. ### H-OVERLAP: No Shape May Overlap Another Shape's Text After adding connectors and arrows, **immediately take a PNG screenshot** and verify: 1. Every connector is visible (not missing) 2. No connector or arrow overlaps any text box content If a connector overlaps text, reposition the connector OR send it behind the text box using `--prop zorder=back`. See creating.md C.9 for the full connector verification protocol. ### H-PALETTE: Color Palette Discipline Use ONLY colors from your pre-defined palette (`$PRIMARY`, `$SECONDARY`, `$ACCENT1`, `$ACCENT2`, etc.). Do NOT introduce additional accent colors not defined at the start of the script. If you used purple on Slide 3 but it was not in your initial palette definition, remove it. Every color in the deck must trace back to a named palette variable. **Common traps — these WILL cause a FAIL:** - ❌ BANNED: Red (`FF0000`, `CC0000`, `E53935`, etc.) to indicate "bad/wrong/competitor weakness" — use your palette's darkest color instead - ❌ BANNED: Green (`00FF00`, `4CAF50`, `34A853`, etc.) to indicate "good/correct/your advantage" — UNLESS green is explicitly declared as a palette variable (e.g., `ACCENT1="34A853"`) - ❌ BANNED: Gray (`888888`, `999999`, `AAAAAA`, `CCCCCC`, etc.) as a neutral/background color — use a palette light color (e.g., `$LIGHT`) instead - ❌ BANNED: Any bare hex color value that does NOT appear in your palette variable block **How to express contrast and status without new colors:** - "Bad/competitor" column or row → use your palette's darkest or most muted shade (e.g., `$DARK`, `$DARK2`) - "Good/your product" column or row → use your palette's primary or accent color (e.g., `$PRIMARY`, `$ACCENT1`) - Neutral/disabled state → use a light-opacity version of an existing palette color, not gray - Tick mark vs cross mark in comparison tables → use the same text color as the column; do NOT switch to red/green --- ## Core Concepts 1. **Layout-First Construction** -- Select a slide pattern from creating.md Section C, then fill with content. Never manually calculate x/y from scratch. 2. **Color Palette Upfront** -- Define 5-6 hex colors as shell variables before building. All commands reference `$PRIMARY`, `$SECONDARY`, etc. 3. **Slide Pattern Library** -- 11 pre-tested spatial blueprints with positioning tables. See [creating.md](creating.md) Section C. 4. **Chart Styling is Non-Negotiable** -- Every chart uses the modern recipe: `plotFill=none`, `chartFill=none`, subtle gridlines, `series.outline`. 5. **Speaker Notes as Checklist Item** -- Add 2+ sentence notes after each content slide is complete. --- ## Workflow Overview **Phase 1: Understand** -- Identify deck type (seed/launch/investor/sales), slide count, data provided, color preference. **Phase 2: Plan** -- Select deck structure from creating.md Section A. Define palette as shell variables. Map each slide to a pattern from Section C. Verify no two consecutive slides share the same layout. **Phase 3: Build** -- Create file, set metadata, then `officecli open` for resident mode. Build slide by slide using batch mode (heredoc syntax for 4+ elements). Apply chart/table recipes from Sections D/E. Add speaker notes after each slide. `officecli close` before QA. **Phase 4: QA & Deliver** -- Run `officecli validate`. Check the QA checklist below. Deliver with note about validation exceptions if cell merge was used. --- ## Quick Start -- 6-Slide Seed Pitch ```bash # Setup officecli create pitch.pptx officecli set pitch.pptx / --prop title="FitPulse" --prop author="Alex Kim" officecli open pitch.pptx # Resident mode — all batch operations run in memory PRIMARY="FF6B35"; SECONDARY="1A1A2E"; ACCENT1="00C9A7"; DARK="16213E"; MUTED="64748B" # MUTED is declared here so stat sub-label colors use a palette variable, not a bare hex gray # Slide 1: Title (gradient background, pattern C.1) cat <<'EOF' | officecli batch pitch.pptx [ {"command":"add","parent":"/","type":"slide","props":{"layout":"blank","background":"1A1A2E-16213E-180"}}, {"command":"add","parent":"/slide[1]","type":"shape","props":{"text":"FitPulse","x":"2cm","y":"5cm","width":"29.87cm","height":"4cm","font":"Georgia","size":"48","bold":"true","color":"FF6B35","align":"center","fill":"none"}}, {"command":"add","parent":"/slide[1]","type":"shape","props":{"text":"AI That Trains With You","x":"2cm","y":"10cm","width":"29.87cm","height":"2cm","font":"Calibri","size":"22","color":"FFFFFF","align":"center","fill":"none"}}, {"command":"add","parent":"/slide[1]","type":"shape","props":{"text":"Seed Round | $500K","x":"2cm","y":"13cm","width":"29.87cm","height":"1.5cm","font":"Calibri","size":"16","color":"00C9A7","align":"center","fill":"none"}} ] EOF officecli set pitch.pptx "/slide[1]" --prop transition=fade # Slide 2: Market (3-stat callout, pattern C.2) cat <<'EOF' | officecli batch pitch.pptx [ {"command":"add","parent":"/","type":"slide","props":{"layout":"blank","background":"FFFFFF"}}, {"command":"add","parent":"/slide[2]","type":"shape","props":{"text":"A $96B Market","x":"2cm","y":"1cm","width":"29.87cm","height":"3cm","font":"Georgia","size":"36","bold":"true","color":"1A1A2E","align":"left","fill":"none"}}, {"command":"add","parent":"/slide[2]","type":"shape","props":{"text":"$96B","x":"2cm","y":"5cm","width":"9cm","height":"4cm","font":"Georgia","size":"64","bold":"true","color":"FF6B35","align":"center","valign":"bottom","fill":"none"}}, {"command":"add","parent":"/slide[2]","type":"shape","props":{"text":"Total Addressable Market","x":"2cm","y":"9.5cm","width":"9cm","height":"2cm","font":"Calibri","size":"16","color":"64748B","align":"center","fill":"none"}}, // ^^^ "64748B" = $MUTED declared above. Use $MUTED in your palette; in heredoc use its literal hex value. {"command":"add","parent":"/slide[2]","type":"shape","props":{"text":"$14.7B","x":"12.5cm","y":"5cm","width":"9cm","height":"4cm","font":"Georgia","size":"64","bold":"true","color":"FF6B35","align":"center","valign":"bottom","fill":"none"}},
Auf GitHub ansehen
Diese SKILL.md ist sehr gross, daher zeigt SkillsMP hier nur den ersten Abschnitt. Auf GitHub ansehen