Populates investment banking pitch deck PowerPoint templates with data from Excel, CSV, PDFs, or other sources into existing slide layouts.
From investment-bankingnpx claudepluginhub anthropics/financial-services-plugins --plugin investment-bankingThis skill uses the workspace's default tool permissions.
reference/calculation-standards.mdreference/formatting-standards.mdreference/slide-templates.mdreference/xml-reference.mdDesigns and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Enables AI agents to execute x402 payments with per-task budgets, spending controls, and non-custodial wallets via MCP tools. Use when agents pay for APIs, services, or other agents.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Read all reference files at task start before beginning any work. These contain critical patterns and anti-patterns that will affect your approach. Do not wait until you encounter issues.
| File | Purpose |
|---|---|
formatting-standards.md | Text, bullets, tables, charts, alignment |
slide-templates.md | Content mapping guidance for common slide types |
xml-reference.md | PowerPoint XML patterns for tables, shapes, arrows |
calculation-standards.md | Financial formulas for verification (CAGR, consensus) |
What type of task is this?
┌─ Populating empty template with source data?
│ └─→ Follow "Template Population Workflow" below
│
├─ Editing existing populated slides?
│ └─→ Extract current content, modify, revalidate
│
└─ Fixing formatting issues on existing slides?
└─→ See "Common Failures" table, apply targeted fixes
LibreOffice is used for validation but DOES NOT render PowerPoint files accurately. It will mangle fonts, gradients, shape positions, text wrapping, and some table formatting.
What this means: A slide that passes visual validation in LibreOffice may still have issues in Microsoft PowerPoint. The validation loop catches structural issues (missing content, broken tables, placeholder formatting retained) but cannot catch font substitution, subtle alignment shifts, or gradient problems.
Required action: Always include this statement when delivering output:
"This file was validated using LibreOffice. Please review in Microsoft PowerPoint before distribution, as rendering differences may exist."
Copy and track progress:
Pitch Deck Progress:
- [ ] Phase 1: Extract and validate source data
- [ ] Phase 2: Map content to template sections
- [ ] Phase 3: Populate slides with proper formatting
- [ ] Phase 4: Validate → Fix → Repeat until clean
- [ ] Phase 5: Final verification
[filename]_backup.pptx. Direct XML editing or unexpected errors can corrupt files.calculation-standards.md for formulasslide-templates.md for mapping guidanceslide-templates.md for resolutionformatting-standards.mdxml-reference.mdxml-reference.mdThis is a feedback loop. Repeat until all checks pass OR escalation is triggered.
# Convert to images for visual validation
soffice --headless --convert-to pdf presentation.pptx
pdftoppm -jpeg -r 150 presentation.pdf slide
Validation checklist (check each slide image):
| or tab separators creating fake columns)?Fix cycle protocol:
| Cycle | Action |
|---|---|
| 1 | Fix all identified issues, re-validate |
| 2 | Fix remaining issues, re-validate |
| 3 | If issues persist, document remaining problems and escalate to user |
After 3 cycles, if issues remain:
Do not continue cycling indefinitely. Some issues (font rendering, complex shape alignment) may require manual intervention in PowerPoint.
Run through the Final Quality Checklist before delivering.
| Context | Symbol | Usage |
|---|---|---|
| Included/Positive | ✓ | Items within scope, features present |
| Excluded/Negative | × | Items outside scope, features absent |
| Neutral list | • | General enumeration, commentary |
| Numbered sequence | 1. 2. 3. | Process steps, rankings |
| Sub-bullets | – | Secondary points under main bullets |
These are typical ranges—adjust based on template specifications:
| Level | Examples | Typical Size | Style |
|---|---|---|---|
| Title | Slide title | 40-48pt | Bold |
| Subtitle | Market definition, slide descriptor | 18-22pt | Bold |
| Section Header | "Key Projections", "Commentary" | 14-16pt | Regular |
| Block Label | "Segments Included", "Definition" sidebar | 12-14pt | Regular |
| Block Content | Bullet points, body text | 11-14pt | Regular |
| Table Header | Column headers | 10-12pt | Bold |
| Table Body | Cell content | 9-11pt | Regular |
| Footnotes | Sources, notes | 8-9pt | Italic |
Boxes at the same hierarchy level MUST use identical font sizes:
| Same Level | Must Match With |
|---|---|
| "Segments Included" | "Segments Excluded" |
| "Definition" | "Scope Rationale" |
| Left column bullets | Right column bullets |
| All block labels | Each other |
| All section headers | Each other |
These are typical conventions — adjust based on the magnitude of values and template style:
| Value Type | Typical Rounding | Example |
|---|---|---|
| Large market sizes ($10bn+) | Nearest $1bn | 18.5 → $19bn |
| Smaller market sizes (<$10bn) | Nearest $0.5bn or $0.1bn | 2.3 → $2.5bn |
| Size ranges | Match precision of sources | 14.9-22.1 → $15-22bn |
| CAGR | Whole % or 0.5% | 16.4% → 16% or 16.5% |
| Market share | Nearest 5% or match source | 21.4% → 20% |
| Multiples | 1 decimal | 9.69 → 9.7x |
Principle: Rounding should not materially change the figure. For smaller values, use finer precision.
Vertically stacked boxes must have identical:
Horizontally adjacent boxes must have identical:
When the same data appears on multiple slides:
These requirements are non-negotiable regardless of template:
| Requirement | Details |
|---|---|
| Text Readability | All text MUST have sufficient contrast with background. Examples: white/light text on dark blue, dark green, black backgrounds; black/dark text on white, light gray, light yellow backgrounds. |
| Actual Table Objects | Tabular data MUST be table objects, not tab-separated text. See xml-reference.md. |
| Proper Chart/Table Sizing | Pasted visuals MUST fill designated area. See formatting-standards.md. |
| Consistent Formatting | Bullets within section MUST match (symbol, size, indent). Same-level boxes MUST use same font size. |
| Content Boundaries | All content MUST stay within slide edges. Footnote box width: ~32.5cm for 16:9, ~24cm for 4:3. |
| No Placeholder Formatting | Remove colored instruction boxes. Main body: dark text on light background per template. |
These failures occur when placeholder formatting is mistaken for output formatting. Recognizing these patterns is essential.
What happens: Template has colored instruction boxes (yellow, orange, etc.) with guidance text. Model replaces the guidance text with actual data BUT KEEPS THE COLORED BOX.
Why it's wrong: The colored box IS the placeholder. It tells you what content goes there. The output should have different formatting — typically dark text on white/light background, or properly styled shapes.
Recognition test: If your populated slide has large colored rectangles filled with data text, you have copied the placeholder format instead of replacing it.
Critical distinction — two types of "placeholders":
| Type | How to identify | What to do |
|---|---|---|
| Instruction boxes | Bright colors (yellow, orange), contains guidance text like "Insert X here", white/light text on colored background | DELETE the entire shape, then create new content with production formatting |
| Layout placeholders | Part of slide master/layout, neutral colors matching template theme, "Click to add text" | KEEP the shape, REPLACE the text content only |
If uncertain: check if the shape exists on an empty slide from the same template. Layout placeholders persist; instruction boxes are regular shapes.
What happens: Model creates table-like content using separator characters (|, tabs, spaces) instead of actual table objects.
Why it's wrong: This is NOT a table. Columns will never align properly, it cannot be formatted consistently, and it looks unprofessional.
Recognition test: If you're typing | characters or relying on spaces/tabs to create columns, you're creating text, not a table.
MUST verify: After creating any table, verify it is an actual table object. See xml-reference.md for verification methods.
What happens: Placeholder uses light text on colored background (e.g., white on yellow). Model populates data but keeps this color scheme, resulting in hard-to-read output.
Why it's wrong: Placeholder colors are deliberately distinct to signal "replace me." Production slides typically use dark text on light backgrounds for body content.
Recognition test: If your populated content has light/white text on bright colored backgrounds in body areas (not headers), you've inherited placeholder formatting.
Correct approach: Apply production formatting — typically dark text (#000000 or #333333) on white or light backgrounds for body content. Headers and accent areas may use brand colors.
| Element | Placeholder (Input) | Production (Output) |
|---|---|---|
| Instruction boxes | Colored background, guidance text | Removed or reformatted |
| Data areas | "[Insert data here]" text | Actual data with clean formatting |
| Tables | Description of what table should contain | Actual table object with rows/columns |
| Body text | Light text on colored background | Dark text on light background |
The placeholder tells you WHAT to create, not HOW to format it.
For detailed explanations of the most critical failures, see Critical Anti-Patterns above.
| Failure | Solution | Reference |
|---|---|---|
| Unstructured text dumps | Break into bullets (✓, ×, •) | formatting-standards.md |
| Pipe/tab-separated "tables" | Create actual table objects — text with separators is NOT a table | xml-reference.md |
| Poor text/background contrast | Audit every text element | — |
| Tiny pasted charts | Resize to fill area, paste chart only | formatting-standards.md |
| Source data pasted with charts | Select only chart object before copy | — |
| Data dumped into placeholder boxes | Delete colored instruction boxes, create new properly formatted content | Anti-Patterns |
| Inconsistent bullets | Define style once, apply to all | formatting-standards.md |
| Inconsistent fonts across boxes | Standardize same-level boxes | formatting-standards.md |
| Content overflow | Set explicit box widths (footnotes: 32.5cm for 16:9, 24cm for 4:3) | — |
| Missing logo | Use logo from task files; if not provided, flag to user | — |
Remaining [brackets] | Search and replace all placeholders | — |
| Text arrows (→, ⟹) | Use PowerPoint shape objects | xml-reference.md |
If PDF/image conversion fails:
which sofficelibreoffice --headless --convert-to pdf presentation.pptxIf source data has inconsistencies or conflicts:
If calculations don't match source projections:
When creating tables (MUST be actual table objects):
Column Alignment:
Header Row:
Consensus/Total Row:
Width: Fill designated section width completely.
For XML implementation, see xml-reference.md.
Format:
Sources: [Source 1] (Year), [Source 2] (Year).
Notes: (1) [First note]; (2) [Second note].
Example:
Sources: Grand View Research (2024), Mordor Intelligence (2024), Markets and Markets (2023).
Notes: (1) Excludes hardware revenue; (2) Includes both B2B and B2C segments.
All superscript numbers (¹, ², ³) in slide body MUST have corresponding Notes entries.
For detailed data requirements, formatting principles, and example column headers for each slide type, see slide-templates.md.
Common slide types covered: Market Definition, Market Sizing/TAM, Competitive Landscape, Financial Summary, Transaction Comparables.
Before delivering the populated template, verify:
calculation-standards.md)[bracket] placeholder text remaining