upload-chapter-slides
Original:🇺🇸 English
Translated
Upload PDF slides to CDN and configure chapter README with slides metadata. This skill should be used when adding teaching presentation slides to a chapter. Handles: PDF upload, part/chapter resolution, README frontmatter update, Teaching Aid heading.
2installs
Sourcepanaversity/agentfactory
Added on
NPX Install
npx skill4agent add panaversity/agentfactory upload-chapter-slidesTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Upload Chapter Slides
Upload PDF teaching slides to CDN and update chapter README with proper metadata.
Usage
/upload-chapter-slides <pdf-path> <chapter-number> [--title "Custom Title"] [--name custom-filename]Examples
bash
# Basic usage - chapter number only
/upload-chapter-slides /path/to/slides.pdf 4
# With custom title
/upload-chapter-slides /path/to/slides.pdf 3 --title "Agentic AI - The Digital FTE"
# With custom filename (for CDN URL)
/upload-chapter-slides /path/to/slides.pdf 4 --name context-engineering-blueprintWorkflow
Step 1: Parse Arguments
Extract from user input:
- : Absolute path to PDF file (required)
pdf_path - : Chapter number (required)
chapter_num - : Optional custom title for slides
title - : Optional custom filename for CDN
name
Step 2: Resolve Chapter Path
bash
# Find chapter folder by number
ls -d apps/learn-app/docs/*/[0-9][0-9]-*/ | grep "/${CHAPTER_NUM}-\|/${CHAPTER_NUM}[0-9]-"Extract from path:
- Part number: First segment number (e.g., from
01)01-General-Agents-Foundations - Chapter folder: Full path to chapter directory
Pattern:
apps/learn-app/docs/{NN}-{PartName}/{NN}-{ChapterName}/Step 3: Upload PDF
Run from project root:
bash
cd apps/panaversity-fs-py && uv run python scripts/upload_asset.py \
--file "{pdf_path}" \
--type slides \
--part {part_num} \
--chapter {chapter_num} \
--name {name_or_default}Capture the CDN URL from output (format: )
https://pub-*.r2.dev/books/ai-native-dev/static/slides/part-{N}/chapter-{NN}/{filename}.pdfStep 4: Update README Frontmatter
Read and update YAML frontmatter:
{chapter_path}/README.mdIf exists: Replace the entire slides block
If missing: Add after line
slides:slides:title:yaml
slides:
source: "{cdn_url}"
title: "{title_or_chapter_title}"
height: 700Step 5: Ensure Teaching Aid Heading
Check if exists in README.
## 📚 Teaching AidIf missing: Add before (or first heading if no What You'll Learn):
## What You'll Learn##markdown
## 📚 Teaching Aid
## What You'll LearnIf exists: No change needed.
Step 6: Report Success
✅ Chapter {N} slides uploaded
CDN URL: {cdn_url}
README: {chapter_path}/README.md
Title: {slides_title}Error Handling
| Error | Resolution |
|---|---|
| PDF file not found | Verify path exists |
| Chapter not found | Run |
| Upload failed | Check |
| README missing | Chapter may not be initialized |
Path Constants
PROJECT_ROOT: /Users/mjs/Documents/code/panaversity-official/tutorsgpt/agentfactory
DOCS_PATH: apps/learn-app/docs
UPLOAD_SCRIPT: apps/panaversity-fs-py/scripts/upload_asset.pyREADME Structure Reference
Correct structure after skill runs:
yaml
---
sidebar_position: N
title: "Chapter N: Title"
slides:
source: "https://pub-*.r2.dev/books/ai-native-dev/static/slides/part-N/chapter-NN/filename.pdf"
title: "Slide Title"
height: 700
---
# Chapter N: Title
[intro paragraphs]
## 📚 Teaching Aid
## What You'll Learn
[content]