Claude-skill-registry ce101-slides
Context Engineering 101 curriculum slide generation. Use this skill when working on CE101 curriculum to: (1) Generate styled PowerPoint presentations from markdown, (2) Create PNG previews of slides, (3) Update master presentation from curriculum modules
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/ce101-slides" ~/.claude/skills/majiayu000-claude-skill-registry-ce101-slides && rm -rf "$T"
skills/data/ce101-slides/SKILL.mdCE101 Slide Generation Skill
Overview
This skill automates the generation of professionally styled PowerPoint presentations from CE101 curriculum content. It handles the complete workflow: markdown → styled PowerPoint → PNG previews.
When to use this skill:
- Updating CE101 curriculum and need to regenerate slides
- Creating new presentation slides from curriculum content
- Previewing slides as PNG images
- Converting markdown presentations to PowerPoint
Quick Start
Generate Complete Slide Deck
# One-command generation (markdown → PowerPoint → PNGs) ./scripts/generate-slides.sh # View slides in browser ./scripts/view-slides.sh
Output:
- Styled PowerPointCE101-Master-Presentation-Styled.pptx
- Individual slide imagesworkspace/thumbnails/slide-*.png
- Browsable slide indexworkspace/thumbnails/index.html
File Structure
ce101/ ├── 01-core-concepts.md ← Curriculum modules (source of truth) ├── 02-filesystem-organization.md ├── ... ├── 08-mcp-servers.md │ ├── CE101-Master-Presentation.md ← Master slide deck (manually curated) │ ├── workspace/ │ ├── generate-presentation.js ← Slide generator script │ ├── thumbnails/ ← Generated PNG previews │ └── slides-html/ ← Intermediate HTML files │ └── scripts/ ├── generate-slides.sh ← Main automation ├── pptx-to-png.sh ← PowerPoint → PNG converter └── view-slides.sh ← Browser launcher
Core Workflows
1. Update Curriculum → Generate Slides
Workflow:
- Edit curriculum modules (01-08.md)
- Work with Claude to update
:CE101-Master-Presentation.md- Extract key concepts from updated modules
- Format as slide-friendly content (max 6-7 bullets per slide)
- Generate slides:
./scripts/generate-slides.sh - Review:
./scripts/view-slides.sh
Example prompt for Claude:
I updated Module 3 (03-multi-tab-orchestration.md) with new content about agent coordination. Help me extract the key concepts and update the relevant section in CE101-Master-Presentation.md.
2. View Generated Slides
# Open in browser ./scripts/view-slides.sh # Or directly: open workspace/thumbnails/index.html # macOS xdg-open workspace/thumbnails/index.html # Linux
3. Convert Any PowerPoint to PNGs
./scripts/pptx-to-png.sh <input.pptx> [output-dir] # Example: ./scripts/pptx-to-png.sh CE101-Master-Presentation-Styled.pptx workspace/preview
Slide Format Guidelines
Master Markdown Format
The master presentation uses marp-style markdown with
--- slide separators:
--- marp: true theme: default paginate: true --- # Slide Title ## Optional Subtitle Intro text here - Bullet point 1 - Bullet point 2 - Maximum 6-7 bullets recommended --- # Next Slide ...
Slide Types
1. Title Slide (first slide):
# Context Engineering 101 ## Stop Writing Prompts, Start Engineering Context A practical guide for SREs and DevOps engineers
- Dark charcoal background with orange accent bar
- Large title text
2. Module Divider (contains "Module" in title):
# Module 1: Core Concepts
- Full orange background (#F96D00)
- Centered white text
- Larger font sizes
3. Content Slide (regular slides):
# Slide Title ## Optional Subtitle Text content here - Bullet 1 - Bullet 2
- White background with orange accent bar on left
- Left-aligned content
- Auto-adjusting font sizes
Design Constraints
- Dimensions: 720pt × 405pt (16:9 aspect ratio)
- Margins: Minimum 0.5" (36pt) from all edges
- Bullets: Maximum 6-7 per slide for readability
- Font: Arial (web-safe)
- Auto-sizing: Font reduces from 12pt to 11pt when >10 content lines
- Line spacing: Adjusts from 1.2 to 1.15 for dense content
Color Theme (Little Caesars Orange)
{ primaryOrange: 'F96D00', // Main orange deepOrange: 'E85D04', // Darker accent charcoal: '222831', // Dark backgrounds/text coolGray: '546E7A', // Subtitles lightBg: 'F5F5F5', // Light backgrounds white: 'FFFFFF' // Text on orange }
Troubleshooting
Error: "Text box ends too close to bottom edge"
Cause: Too much content on one slide Fix: In
CE101-Master-Presentation.md, reduce bullets or split into two slides
Example:
# Before (10 bullets - TOO MANY) - Bullet 1 - Bullet 2 ... - Bullet 10 --- # After (split into two slides) # Part 1 - Bullet 1 ... - Bullet 5 --- # Part 2 - Bullet 6 ... - Bullet 10
Error: "HTML content overflows body horizontally"
Cause: Title or text too long Fix: Shorten title or text content
Slides look cut off in PNG previews
Cause: May be rendering issue Fix: Check actual PowerPoint file - PNGs are for preview only
Generated PowerPoint won't open
Cause: Malformed markdown or generation error Fix:
- Check
for problematic HTMLworkspace/slides-html/ - Verify slide separators are
on their own line--- - Look for unbalanced markdown formatting
Dependencies
Node.js Packages (Global)
- PowerPoint generationpptxgenjs- Located at:
/home/becker/.nvm/versions/node/v20.19.3/lib/node_modules
System Packages
/libreoffice
- PowerPoint → PDF conversionsoffice
(poppler-utils) - PDF → PNG conversionpdftoppm
Check Dependencies
# Node.js and packages which node ls /home/becker/.nvm/versions/node/v20.19.3/lib/node_modules/pptxgenjs # System tools which soffice which pdftoppm
Advanced Usage
Modify Slide Styling
Edit
workspace/generate-presentation.js:
// Line 8-17: Color scheme const colors = { primaryOrange: 'F96D00', // Change these deepOrange: 'E85D04', // ... }; // Line 143-182: Slide layout and spacing
After modifying, regenerate:
./scripts/generate-slides.sh
Change Theme Colors
Example: Switch to blue theme
- Edit
lines 10-11:workspace/generate-presentation.js
primaryOrange: '0066CC', // Blue deepOrange: '004C99', // Darker blue
- Regenerate:
./scripts/generate-slides.sh
File Ownership
Source Files (Edit and Commit to Git)
through01-core-concepts.md08-mcp-servers.mdCE101-Master-Presentation.mdworkspace/generate-presentation.jsscripts/*.sh
Generated Files (Don't Edit, In .gitignore)
CE101-Master-Presentation-Styled.pptxworkspace/thumbnails/workspace/slides-html/
Quick Reference Commands
# Generate everything (PowerPoint + PNGs) ./scripts/generate-slides.sh # View slides in browser ./scripts/view-slides.sh # Convert PowerPoint to PNGs only ./scripts/pptx-to-png.sh CE101-Master-Presentation-Styled.pptx # Check slide count grep -c "^---$" CE101-Master-Presentation.md # Clean generated files rm -rf workspace/thumbnails workspace/slides-html CE101-Master-Presentation-Styled.pptx
Common Tasks
Add New Module to Slides
- Create/edit curriculum:
09-new-topic.md - Ask Claude:
Extract key concepts from 09-new-topic.md and add a module section to CE101-Master-Presentation.md with: - Module divider slide - 3-5 content slides with main concepts - Max 6 bullets per slide - Generate:
./scripts/generate-slides.sh - Review:
./scripts/view-slides.sh
Fix Overcrowded Slide
Problem: Slide generation fails with "text too close to bottom edge"
Solution:
- Find the problematic slide number in error message
- Open
CE101-Master-Presentation.md - Count
separators to find the slide--- - Reduce content:
- Remove less important bullets
- Split into two slides
- Shorten text
- Regenerate:
./scripts/generate-slides.sh
Update Slides After Curriculum Changes
Scenario: You improved Module 2 and want slides to reflect changes
Workflow:
- Edit
(curriculum)02-filesystem-organization.md - Ask Claude:
I updated Module 2 with better examples. Please review the changes and update the Module 2 section in CE101-Master-Presentation.md to match. Keep it to 5-7 slides maximum. - Claude updates master presentation
- Generate:
./scripts/generate-slides.sh - Review:
./scripts/view-slides.sh
Performance Notes
- Markdown → PowerPoint: ~5 seconds for 56 slides
- PowerPoint → PNG: ~10-15 seconds for 56 slides
- Total workflow: ~20 seconds end-to-end
- PNG files: ~150KB each, ~8.5MB for 56 slides
Best Practices
-
Keep curriculum detailed, slides concise
- Curriculum has full explanations
- Slides have key points only
-
6-7 bullets maximum per slide
- More than this and font sizes shrink
- Content gets cramped
-
Use module dividers
- Break up sections with full-orange slides
- Any slide with "Module" in title becomes a divider
-
Test after edits
- Run
frequently./scripts/generate-slides.sh - Catch formatting issues early
- Run
-
Review visually
- Always check PNG previews
- PowerPoint might render slightly differently
Documentation
- README.md - Project overview and workflow
- SLIDE_WORKFLOW.md - Detailed slide generation guide
- CLAUDE.md - Project-specific guidance for Claude Code
License
Part of Context Engineering 101 curriculum (MIT License)