.claude/skills/pptx-create/SKILL.md
Create PowerPoint presentations from the template library
npx skillsauth add DavidROliverBA/ArchitectKB pptx-createInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Create a new PowerPoint presentation using a template from the extracted library. Populate slides from an outline, vault notes, or a JSON content specification.
/pptx-create <title> [--template <slug>]
/pptx-create <title> --template <slug> --from <note-path>
/pptx-create --template <slug> --content <content.json>
/pptx-create "Q1 Architecture Review" --template baae-community-day-feb2026
/pptx-create "Alpha Programme Update" --from "Projects/Project - Alpha.md"
/pptx-create --template baae-community-day-feb2026 --content slides.json
--template provided, load that templatepython3 .claude/scripts/pptx_create.py --list-templates
Use AskUserQuestion to select:
Question: "Which template should be used?"
Header: "Template"
Options:
1. "<most recent template>" (Recommended)
2. "<other template>"
3. "List all layouts first"
Determine the content source based on user input:
Option A: Interactive Outline
If user provides just a title, help them build an outline interactively:
Option B: From Vault Note
If --from <note-path> is provided:
Option C: JSON Content Specification
If --content <file> is provided, use the JSON directly. Format:
{
"title": "Presentation Title",
"slides": [
{
"layout": "title-slide",
"content": {
"title": "Presentation Title",
"subtitle": "Author — Date"
}
},
{
"layout": "section-divider-dark-blue",
"content": {
"title": "Section Name"
}
},
{
"layout": "single-column-text",
"content": {
"title": "Slide Title",
"body": ["Bullet 1", "Bullet 2", "Bullet 3"]
},
"notes": "Speaker notes here"
},
{
"layout": "two-column-text",
"content": {
"title": "Comparison",
"left": ["Before item 1", "Before item 2"],
"right": ["After item 1", "After item 2"]
}
},
{
"layout": "large-image-large-text",
"content": {
"title": "Architecture Diagram",
"image": "Attachments/diagram.png",
"body": "Key architecture overview"
}
}
]
}
Show available layouts for the selected template:
python3 .claude/scripts/pptx_create.py --list-layouts <slug>
Map content to layouts using these guidelines:
| Content Type | Suggested Layouts |
|-------------|-------------------|
| Title/opening | title-slide, title-slide-abba-confident-blue |
| Section break | section-divider-dark-blue, section-divider-corporate-blue |
| Bullet points | single-column-text, 1-single-column-text |
| Two columns | two-column-text, 5050-text-and-image |
| Image + text | large-image-large-text, wide-image-and-text |
| Multiple images | 4x-images, 6x-images, 8x-images |
| Chart/data | 1x-chart-white, 5-two-content |
| Thank you/close | thank-you-image, 1-thank-you-image |
| Agenda | 8x-agenda |
Before generating, show the plan:
python3 .claude/scripts/pptx_create.py --template <slug> --content <spec.json> --dry-run
Present as:
Planned Presentation: "Q1 Architecture Review"
Template: BAAE Community Day Feb2026
1. [title-slide] Q1 2026 Architecture Review
2. [section-divider-dark-blue] Programme Updates
3. [single-column-text] Alpha Status
4. [two-column-text] Before / After
5. [large-image-large-text] Architecture Diagram
6. [thank-you-image] Thank You
Proceed with generation?
Write the content specification to a temporary JSON file, then run:
python3 .claude/scripts/pptx_create.py --template <slug> --content /tmp/claude/slides.json --output "Attachments/<title>.pptx"
Ask if the user wants a Concept note linking to the presentation:
---
type: Concept
title: <Presentation Title>
created: YYYY-MM-DD
modified: YYYY-MM-DD
tags:
- presentation
- slides
sourceType: PPTX
template: <template-slug>
slides: <count>
---
# <Presentation Title>
**Template:** <template name>
**Created:** YYYY-MM-DD
**Slides:** <count>
**File:** [[<filename>.pptx]]
## Slide Outline
1. **<slide title>** — <layout name>
2. **<slide title>** — <layout name>
...
## Related
- [[<linked project/meeting if applicable>]]
Presentation created successfully!
Title: <title>
Template: <template name>
Slides: <count>
Output: Attachments/<filename>.pptx
Link in vault: [[<filename>.pptx]]
Next steps:
- Open in PowerPoint to review and refine
- Add to meeting note: [[Concept - <title>]]
| Key | Placeholder Target | Value Type |
|-----|-------------------|------------|
| title | Title placeholder (idx 0/1) | String |
| subtitle | Subtitle placeholder (idx 1/4) | String |
| body | First body placeholder | String or list of bullets |
| left | First body (two-column) | String or list |
| right | Second body (two-column) | String or list |
| image | First picture placeholder | File path |
| image_1, image_2... | Nth picture placeholder | File path |
| notes | Speaker notes | String |
| Error | Solution |
|-------|----------|
| Template not found | Run /pptx-templates to see available templates |
| Layout not found | Check layout slugs with --list-layouts |
| Image not found | Verify path relative to vault root |
| Output path issue | Check Attachments/ directory exists |
/pptx-extract-template — Extract templates from existing presentations/pptx-templates — Browse the template library/architecture-report — Generate architecture reports as presentations/project-report — Create project status presentationspython-pptx — PPTX creation/pptx-extract-templatetools
--- context: fork --- # /youtube Save a YouTube video as both a Weblink (quick reference) and a detailed Page (full analysis). ## Usage ``` /youtube <url> /youtube <url> <optional title override> ``` ## Examples ``` /youtube https://www.youtube.com/watch?v=0TpON5T-Sw4 /youtube https://youtu.be/abc123 AWS re:Invent Keynote ``` ## Prerequisites This skill uses the MCP Docker YouTube tools: - `mcp__MCP_DOCKER__get_video_info` - Video metadata - `mcp__MCP_DOCKER__get_transcript` - Full trans
data-ai
Create and manage git worktrees for parallel agent sessions
testing
--- context: fork --- # /wipe Generate a context handoff summary, clear the session, and resume in a fresh conversation. Detects environment and provides automated (tmux) or manual workflow. ## Usage ``` /wipe /wipe quick # Minimal handoff, just essentials /wipe detailed # Comprehensive handoff with full context ``` ## Instructions When the user invokes `/wipe`: ### Phase 1: Detect Environment First, check the terminal environment: ```bash echo "Environment Detection:"
data-ai
--- context: fork --- # /weekly-summary Generate comprehensive weekly summary from daily notes, meetings, tasks, and project updates using parallel sub-agents. ## Usage ``` /weekly-summary /weekly-summary --last-week /weekly-summary --from 2026-01-01 --to 2026-01-07 /weekly-summary --output page # Create Page note instead of just outputting ``` ## Instructions This skill uses **5 parallel sub-agents** to gather data concurrently from different vault areas, then synthesizes a comprehensi