Manage Apple Reminders via the `remindctl` CLI on macOS (list, add, edit, complete, delete)....
npx skills add beltonk/oracle-pptx-skill --skill "oracle-pptx"
Install specific skill from multi-skill repository
# Description
Create Oracle-compliant PowerPoint presentations following Oracle brand guidelines. Supports Dark (default) and Light themes with OCI/Database branding. Use when creating Oracle presentations, slides, or decks that must follow Oracle design standards.
# SKILL.md
name: oracle-pptx
description: "Create Oracle-compliant PowerPoint presentations following Oracle brand guidelines. Supports Dark (default) and Light themes with OCI/Database branding. Use when creating Oracle presentations, slides, or decks that must follow Oracle design standards."
Oracle PPTX Creation
Overview
Create professional PowerPoint presentations that strictly follow Oracle's FY26 brand guidelines. All resources self-containedβno external dependencies.
Current version: Oracle FY26 templates (v8.5, January 2026)
When to use: Creating Oracle-branded presentations, slides, or decks for events, meetings, or documentation.
Templates:
- Dark theme (default): Large live events, formal presentations (51 layouts)
- Light theme: Virtual events, documentation, internal meetings (55 layouts)
β οΈ BEFORE YOU START - READ THESE FIRST
CRITICAL - Read these guidelines BEFORE creating presentations:
resources/guidelines.md- Complete Oracle design standards, color palettes, typographyresources/brand-compliance.md- Oracle brand requirements, compliance rules
These documents contain essential Oracle brand requirements that MUST be followed. Skipping them will result in non-compliant presentations.
Quick Start
Step 1: Plan Your Presentation
Examine template inventory to identify available layouts:
# View all layouts with descriptions
cat resources/templates/dark-inventory.json | jq 'to_entries | map({slide: .key, title: .value["shape-0"].paragraphs[0].text})'
Key layout types (find actual slide numbers in inventory):
- Cover slides
- Speaker introduction slides
- Section dividers (title-only)
- Title + Body (bullet lists)
- 2-column layouts
- 3-column layouts
- Bold statement/impact slides
- Statistics/timeline slides
- Thank you/closing
Step 2: Create Slide Structure
Use rearrange.py to build your presentation with selected slide numbers:
python scripts/rearrange.py \
resources/templates/dark-template.pptx \
working.pptx \
0,16,12,16,17,30,12,16,18,39
Example sequence breakdown:
- 0: Cover
- 16: Title + Body (bullets)
- 12: Divider
- 17: 2-column
- 30: Bold statement
- 39: Thank you
Step 3: Generate Content Inventory
Extract placeholder structure from your working presentation:
python scripts/inventory.py working.pptx inventory.json
Review inventory.json to understand:
- Shape IDs for each slide
- Placeholder dimensions (width, height)
- Default text/formatting
- Placeholder types (TITLE, BODY, etc.)
Step 4: Create Content JSON
Build replacement JSON matching the inventory structure:
{
"slide-0": {
"shape-0": {
"paragraphs": [{"text": "Presentation Title", "bold": true}]
},
"shape-1": {
"paragraphs": [{"text": "Subtitle goes here"}]
}
},
"slide-1": {
"shape-0": {
"paragraphs": [{"text": "Section Title", "bold": true}]
},
"shape-2": {
"paragraphs": [
{"text": "First key point", "bullet": true, "level": 0},
{"text": "Second key point", "bullet": true, "level": 0},
{"text": "Third key point", "bullet": true, "level": 0}
]
}
}
}
CRITICAL - Avoid common errors:
- β Do NOT populate footer shapes - footers are automatic
- β Do NOT use timeline/statistics layouts without actual data
- β Do NOT use emoji icons - use professional icons from library
- β Do NOT insert icons as post-processing - specify them at design time with proper positioning
- β Do NOT use dark icons (Bark) on dark themes - use light icons (Air) for visibility
- β Do NOT place icons over text - use margin positions (left: 0.3 or 11.0) to avoid overlap
- β Do NOT add icons to cover slides (slide-0) or divider slides
- β Do NOT use generic/random icons - ensure STRONG contextual relevance or omit icon
- β Do NOT use same size for all icons - vary 0.7-1.2" based on content importance
Step 5: Apply Content
Replace placeholder text with your content:
python scripts/replace.py working.pptx content.json final.pptx
Auto-fix feature: The script automatically adjusts font sizes and spacing if content overflows placeholders. Write full, detailed contentβformatting is optimized automatically.
Step 6: Insert Icons (Optional - Currently Disabled)
β οΈ ICON INSERTION CURRENTLY DISABLED - SKIP THIS STEP
Icon insertion requires manual, contextually-accurate icon selection which is time-intensive and error-prone. Until a better icon-matching algorithm is developed, it's recommended to skip icon insertion.
Advanced: Manual Icon Insertion (Click to expand)
If you absolutely need icons, insert them manually based on strong contextual relevance:python scripts/insert-icons.py final.pptx icons.json final-with-icons.pptx
**Design-time approach**: Create an `icons.json` file specifying which icon to use on each slide and where to position it.
**Icons JSON format**:
{
"slide-6": {
"icon": "RMIL_Business_Analytics_Air_RGB.svg",
"position": {"left": 0.3, "top": 2.8, "width": 0.7, "height": 0.7},
"context": "Analytics - Business metrics slide"
},
"slide-14": {
"icon": "RMIL_Technology_Machine-Learning_Air_RGB.svg",
"position": {"left": 11.1, "top": 1.0, "width": 1.0, "height": 1.0},
"context": "Machine learning capabilities"
}
}
**CRITICAL - Icon selection rules** (if using):
- β
ONLY use icons with **STRONG contextual relevance** to slide content
- β
NO icon on cover/title slides (slide-0)
- β
NO icon if no relevant match found - **quality over quantity**
- β
Vary sizes: Small (0.7"), Medium (0.8-0.9"), Large (1.0-1.2") based on importance
- β Do NOT add icons just to have icons - they must be meaningful
Icon color variants:
- Dark themes: Use _Air_RGB.svg (light/white icons) - located in dark-theme/
- Light themes: Use _Bark_RGB.svg (dark icons) - located in light-theme/
- Folder names indicate which theme they're FOR (not icon color)
- Script auto-detects theme and switches variants if needed
Position guide: Use inches for coordinates.
- Top-right (no text overlap): {"left": 11.0, "top": 1.2} - Outside slide content area
- Left sidebar (below title): {"left": 0.3, "top": 2.5} - Below slide title
- Icon size: 0.8-1.0 inches (professional scale)
- Icons automatically placed behind text (z-order controlled)
Critical Rules
β οΈ REMINDER: Have you read resources/guidelines.md and resources/brand-compliance.md? These are REQUIRED reading.
Footer Handling (MOST COMMON ERROR)
Footers are AUTOMATIC - never add manually:
Year Token: Template footers contain {YEAR} tokens that are automatically replaced with the current year (following Claude agent skills best practices for time-sensitive content).
β CORRECT - Leave footer shapes empty:
{
"slide-N": {
"shape-0": {"paragraphs": [{"text": "Title"}]},
"shape-1": {"paragraphs": [{"text": "Content"}]}
// Footer shapes NOT included - template handles automatically with current year
}
}
β WRONG - Manual footer causes duplicates/issues:
{
"slide-N": {
"shape-0": {"paragraphs": [{"text": "Title"}]},
"shape-X": {"paragraphs": [{"text": "Copyright Β© 2026..."}]} // β HARDCODED YEAR
}
}
Why footers fail:
1. Footer shape ID included in replacement JSON β duplicate/floating footer
2. Using wrong slide layouts β footer doesn't render
3. Manual text added β conflicts with template default
Fix: Remove ALL footer shape entries from replacement JSON. Template copyright footers appear automatically.
Layout Selection
Match content to appropriate layouts (check inventory for slide numbers):
AVOID these patterns:
- β All bullet lists (boring, unprofessional)
- β Same layout repeated 5+ times
- β Speaker slides in middle of content
- β Timeline/statistics slides without data
- β Empty placeholders
PREFER varied layouts:
- β
Mix: bullets, 2-column, 3-column, bold statements
- β
Section dividers every 4-6 content slides
- β
Image/visual slides for impact
- β
Statistics slides ONLY with actual numbers
Icon Usage (NEW REQUIREMENT)
Use professional icons from library - NEVER emoji:
β CORRECT - Reference library icons:
"Cloud Migration" β Reference OCI Migration icon (see icon-library.md)
"Data Analytics" β Reference Analytics icon (Business category)
"Customer Experience" β Reference CX icon (Customer category)
β WRONG - Emoji icons unprofessional:
"π° Finance" β Use Analytics icon instead
"π Dashboard" β Use Data-Engineering icon instead
"π― Goals" β Use Target/Arrow icon instead
Icon library: 540 professional SVG icons organized by category
See: resources/icons/icon-library.md for complete catalog with search
Content Quality
For professional presentations:
- 3-5 bullets per slide (not more)
- 8-12 words per bullet
- Vary sentence structure
- Use action verbs
- Avoid jargon overload
Multi-column layouts:
- 2-3 items per column
- Parallel structure across columns
- Headers + supporting points
- Max 35 characters per bullet in narrow columns
Advanced Features
Layout Reference Files
Detailed layout guidance β See resources/templates/layout-mapping.md
Common patterns β See examples in examples/ directory
Scripts Reference
Core scripts (all include --help):
python scripts/rearrange.py --help # Build slide structure
python scripts/inventory.py --help # Extract placeholders
python scripts/replace.py --help # Apply content
python scripts/insert-icons.py --help # Insert icons from specs
Icon insertion: insert-icons.py requires a JSON file specifying icon file and position for each slide. See icon-library.md and icon-index.json for available icons (540 professional SVG icons automatically converted to PNG).
Template Inventories
Pre-generated inventories available:
- resources/templates/dark-inventory.json (51 slides)
- resources/templates/light-inventory.json (55 slides)
Use these to understand layout structure without generating new inventories.
Validation Checklist
Before finalizing presentations:
Brand compliance:
- [ ] Oracle Sans Tab fonts used
- [ ] Footer shows: "Copyright Β© 2026, Oracle and/or its affiliates"
- [ ] Colors from Oracle palette only
- [ ] No emoji - professional icons only
Content quality:
- [ ] Varied layouts (not all bullets)
- [ ] No text overflow or cutoff
- [ ] All placeholders filled (no empties)
- [ ] 3-5 bullets max per slide
Technical:
- [ ] No speaker slides in content sections
- [ ] Section dividers at topic transitions
- [ ] Statistics slides have actual data
- [ ] Footers automatic (not manual)
Troubleshooting
Common Issues
Footer not showing:
- Check you're using content layouts (not dividers/special slides)
- Verify footer shapes NOT in replacement JSON
- Confirm using official dark/light template
Timeline slide appears empty:
- Timeline layout requires specific data structure
- Use standard bullet or bold statement layouts instead
- Check layout-mapping.md for timeline usage
Text overflow errors:
- Auto-fix adjusts fonts automatically (9pt minimum)
- If persistent, content genuinely too long for placeholder
- Split into multiple slides or use wider layout
Wrong layout selected:
- Check dark-inventory.json for actual slide numbers
- Layout numbers change between template versions
- Don't hardcode slide numbersβexamine inventory first
Resources
β οΈ MUST READ BEFORE GENERATING:
- resources/guidelines.md - Complete Oracle design standards (REQUIRED)
- resources/brand-compliance.md - Oracle brand requirements (REQUIRED)
Reference Materials:
- resources/icons/icon-library.md - 540 professional icons with filenames
- resources/icons/icon-index.json - Machine-readable icon index for scripts
- resources/templates/layout-mapping.md - Layout descriptions and best practices
Examples: examples/ directory - Step-by-step workflow tutorials
File Structure
skills/oracle-pptx/
βββ SKILL.md # This file
βββ scripts/ # Python utilities
β βββ inventory.py # Extract placeholders
β βββ rearrange.py # Build slide structure
β βββ replace.py # Apply content (with auto-fix)
β βββ thumbnail.py # Generate previews
βββ resources/
β βββ fonts/OracleSans/ # Oracle Sans Tab fonts (37 files)
β βββ icons/ # 540 SVG icons
β β βββ icon-library.md # β Icon catalog with categories
β β βββ icon-index.json # β Machine-readable index
β β βββ dark-theme/ # Icons for dark presentations
β β βββ light-theme/ # Icons for light presentations
β βββ templates/
β β βββ dark-template.pptx # 51 layouts
β β βββ light-template.pptx # 55 layouts
β β βββ dark-inventory.json # Pre-generated inventory
β β βββ light-inventory.json # Pre-generated inventory
β β βββ layout-mapping.md # Layout descriptions
β βββ guidelines.md # Oracle brand standards (REQUIRED)
β βββ brand-compliance.md # Oracle compliance (REQUIRED)
Dependencies
Python packages (pre-installed in Claude Code environment):
- python-pptx - PPTX manipulation
- pillow - Image processing
- six - Python 2/3 compatibility
Install if needed:
pip install python-pptx pillow six
Version Information
- Template version: Oracle FY26 v8.5 (January 2026)
- Skill version: 1.1.0 (with auto-fix, icon library, optimized guidance)
- Last updated: January 2026
Questions?
- Oracle brand: Read resources/guidelines.md and resources/brand-compliance.md (REQUIRED)
- Layout selection: See resources/templates/layout-mapping.md
- Icons: See resources/icons/icon-library.md for complete index
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.