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.

Datos de origen

Repositorio
CES-Ltd/TitanX
Última actividad en el origen
6 de abril de 2026 a las 04:04
Idioma detectado de SKILL.md
inglés
Estrellas
49
Forks
6

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Explorador de archivos
2 archivos

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
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"}},
Ver en GitHub
Este SKILL.md es muy grande, por eso SkillsMP muestra aqui solo la primera seccion. Ver en GitHub