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

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
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"
manifest: skills/data/ce101-slides/SKILL.md
source content

CE101 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:

  • CE101-Master-Presentation-Styled.pptx
    - Styled PowerPoint
  • workspace/thumbnails/slide-*.png
    - Individual slide images
  • workspace/thumbnails/index.html
    - Browsable slide index

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:

  1. Edit curriculum modules (01-08.md)
  2. 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)
  3. Generate slides:
    ./scripts/generate-slides.sh
    
  4. 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:

  1. Check
    workspace/slides-html/
    for problematic HTML
  2. Verify slide separators are
    ---
    on their own line
  3. Look for unbalanced markdown formatting

Dependencies

Node.js Packages (Global)

  • pptxgenjs
    - PowerPoint generation
  • Located at:
    /home/becker/.nvm/versions/node/v20.19.3/lib/node_modules

System Packages

  • libreoffice
    /
    soffice
    - PowerPoint → PDF conversion
  • pdftoppm
    (poppler-utils) - PDF → PNG conversion

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

  1. Edit
    workspace/generate-presentation.js
    lines 10-11:
primaryOrange: '0066CC',  // Blue
deepOrange: '004C99',     // Darker blue
  1. Regenerate:
./scripts/generate-slides.sh

File Ownership

Source Files (Edit and Commit to Git)

  • 01-core-concepts.md
    through
    08-mcp-servers.md
  • CE101-Master-Presentation.md
  • workspace/generate-presentation.js
  • scripts/*.sh

Generated Files (Don't Edit, In .gitignore)

  • CE101-Master-Presentation-Styled.pptx
  • workspace/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

  1. Create/edit curriculum:
    09-new-topic.md
  2. 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
    
  3. Generate:
    ./scripts/generate-slides.sh
  4. Review:
    ./scripts/view-slides.sh

Fix Overcrowded Slide

Problem: Slide generation fails with "text too close to bottom edge"

Solution:

  1. Find the problematic slide number in error message
  2. Open
    CE101-Master-Presentation.md
  3. Count
    ---
    separators to find the slide
  4. Reduce content:
    • Remove less important bullets
    • Split into two slides
    • Shorten text
  5. Regenerate:
    ./scripts/generate-slides.sh

Update Slides After Curriculum Changes

Scenario: You improved Module 2 and want slides to reflect changes

Workflow:

  1. Edit
    02-filesystem-organization.md
    (curriculum)
  2. 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.
    
  3. Claude updates master presentation
  4. Generate:
    ./scripts/generate-slides.sh
  5. 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

  1. Keep curriculum detailed, slides concise

    • Curriculum has full explanations
    • Slides have key points only
  2. 6-7 bullets maximum per slide

    • More than this and font sizes shrink
    • Content gets cramped
  3. Use module dividers

    • Break up sections with full-orange slides
    • Any slide with "Module" in title becomes a divider
  4. Test after edits

    • Run
      ./scripts/generate-slides.sh
      frequently
    • Catch formatting issues early
  5. 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)