From investment-banking
Populates investment banking pitch deck templates with data from source files. Use when: user provides a PowerPoint template to fill in, user has source data (Excel/CSV) to populate into slides, user mentions populating or filling a pitch deck template, or user needs to transfer data into existing slide layouts. Not for creating presentations from scratch.
npx claudepluginhub rodaquino-omni/crowtech-healthcare-finance --plugin investment-bankingThis skill uses the workspace's default tool permissions.
**Read all reference files at task start before beginning any work.** These contain critical patterns and anti-patterns that will affect your approach.
Provides Ktor server patterns for routing DSL, plugins (auth, CORS, serialization), Koin DI, WebSockets, services, and testApplication testing.
Conducts multi-source web research with firecrawl and exa MCPs: searches, scrapes pages, synthesizes cited reports. For deep dives, competitive analysis, tech evaluations, or due diligence.
Provides demand forecasting, safety stock optimization, replenishment planning, and promotional lift estimation for multi-location retailers managing 300-800 SKUs.
Read all reference files at task start before beginning any work. These contain critical patterns and anti-patterns that will affect your approach.
| 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) |
┌─ 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.
A slide that passes validation in LibreOffice may still have issues in Microsoft PowerPoint. The loop catches structural issues (missing content, broken tables, retained placeholder formatting) 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."
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. XML edits or errors can corrupt files.calculation-standards.mdslide-templates.mdslide-templates.mdformatting-standards.mdxml-reference.mdxml-reference.md# Convert to images for visual validation
soffice --headless --convert-to pdf presentation.pptx
pdftoppm -jpeg -r 150 presentation.pdf slide
Validation checklist:
Fix cycle: cycle 1 fix and revalidate; cycle 2 fix and revalidate; cycle 3 — document remaining issues and escalate.
After 3 cycles, if issues remain, list them with slide numbers and deliver with an explicit disclaimer.
Do not cycle indefinitely.
Run through the Final Quality Checklist.
| Context | Symbol | Usage |
|---|---|---|
| Included/Positive | ✓ | Items within scope |
| Excluded/Negative | × | Items outside scope |
| Neutral list | • | General enumeration |
| Numbered sequence | 1. 2. 3. | Process steps |
| Sub-bullets | – | Secondary points |
| Level | Examples | Typical Size | Style |
|---|---|---|---|
| Title | Slide title | 40-48pt | Bold |
| Subtitle | Descriptor | 18-22pt | Bold |
| Section Header | "Key Projections" | 14-16pt | Regular |
| Block Label | "Segments Included" | 12-14pt | Regular |
| Block Content | Bullets, body | 11-14pt | Regular |
| Table Header | Columns | 10-12pt | Bold |
| Table Body | Cells | 9-11pt | Regular |
| Footnotes | Sources | 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 |
| 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 source precision | 14.9-22.1 → $15-22bn |
| CAGR | Whole % or 0.5% | 16.4% → 16% |
| Market share | Nearest 5% | 21.4% → 20% |
| Multiples | 1 decimal | 9.69 → 9.7x |
Vertically stacked boxes share left margin, bullet indentation, text start position, box width.
Horizontally adjacent boxes share top position, height (where possible), internal padding.
Same data across slides: use identical figures, formatting, terminology. Update all occurrences when one changes. Cross-reference during validation.
| Requirement | Details |
|---|---|
| Text Readability | Sufficient contrast: light text on dark, dark text on light. |
| Actual Table Objects | Tabular data MUST be table objects. 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; same-level boxes MUST share font size. |
| Content Boundaries | Stay within slide edges. Footnote box: ~32.5cm for 16:9, ~24cm for 4:3. |
| No Placeholder Formatting | Remove colored instruction boxes. Dark text on light background for body. |
What happens: Template has colored instruction boxes; model replaces guidance text but keeps the colored box.
Why wrong: The colored box IS the placeholder. Output should be different formatting — dark text on white, or styled shapes.
Recognition test: Large colored rectangles filled with data = placeholder format copied.
Two types of "placeholders":
| Type | How to identify | What to do |
|---|---|---|
| Instruction boxes | Bright colors, guidance text, white/light text on colored bg | DELETE the shape, create new content |
| Layout placeholders | Slide master, neutral theme colors, "Click to add text" | KEEP the shape, REPLACE the text |
Model creates table-like content using |, tabs, spaces — NOT a table object. Columns never align; can't format consistently.
MUST verify: After creating any table, confirm it's an actual table object. See xml-reference.md.
Placeholder uses light text on colored background; model populates but keeps this — hard to read. Production: dark text (#000000 or #333333) on white/light for body; brand colors for headers.
| Element | Placeholder (Input) | Production (Output) |
|---|---|---|
| Instruction boxes | Colored bg, guidance text | Removed or reformatted |
| Data areas | "[Insert data here]" | Actual data with clean formatting |
| Tables | Description | Actual table object |
| Body text | Light on colored | Dark on light |
The placeholder tells you WHAT to create, not HOW to format it.
| Failure | Solution | Reference |
|---|---|---|
| Unstructured text dumps | Break into bullets (✓, ×, •) | formatting-standards.md |
| Pipe/tab-separated "tables" | Create actual table objects | xml-reference.md |
| Poor text/background contrast | Audit every text element | — |
| Tiny pasted charts | Resize to fill area | formatting-standards.md |
| Source data pasted with charts | Select only chart object | — |
| Data dumped into placeholder boxes | Delete instruction boxes, create new | 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 | Explicit box widths | — |
| Missing logo | Use from task files; if not provided, flag | — |
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 conflicts:
If calculations don't match source projections:
When creating tables (MUST be actual table objects):
Column Alignment: text left-aligned; numeric right- or center-aligned (header matches content).
Header Row: bold, shaded background (template brand color), white/contrasting text.
Consensus/Total Row: bold, separator line above, distinct shading.
Width: fill designated section completely.
For XML implementation, see xml-reference.md.
Sources: [Source 1] (Year), [Source 2] (Year).
Notes: (1) [First note]; (2) [Second note].
Example (healthcare context):
Sources: CMS (2024), MedPAC (2024), Definitive Healthcare (2024).
Notes: (1) Excludes Medicare Advantage supplemental benefits; (2) Same-store locations open ≥13 months.
All superscripts (¹, ², ³) in slide body MUST have corresponding Notes entries.
See slide-templates.md for: Market Definition, Market Sizing/TAM, Competitive Landscape, Financial Summary, Transaction Comparables. For CrowTech healthcare pitches, lean on the services comp set (USPH, SGRY, ADUS, LHCG, ENSG, OPCH, PRVA) and healthcare-AI set (VEEV, HCAT, DOCS, HQY, EVH).
calculation-standards.md)[bracket] placeholder text