Claude Code Plugins

Community-maintained marketplace

Feedback
0
0

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 Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name ce101-slides
description 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

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)