$34
Business/humanities presentation skill. Full lifecycle: analyze → interview → research → outline → plan → draft SVG → design SVG → export.
Execution model: LLM generates SVG (1280x720) per slide → SVG embedded in OOXML PPTX (editable in Office 365+, PNG fallback for older versions). Editing: natural language → semantic manifest element lookup → targeted SVG regeneration.
| Action | Command | Description |
|---|---|---|
| Create from topic/file | create [topic] | Full Phase 0-7 pipeline |
| Edit slides | edit [project] | Natural language editing |
| Undo edit | undo [project] [slide] | Restore previous slide version |
| Switch theme | retheme [project] [theme] | Regenerate Design SVGs from Drafts |
| Export | export [project] | Re-export PPTX + HTML |
| Preview | preview [project] | Generate and open HTML preview |
| Review | review [project] | Run Reviewer QA on slides |
| CRAP Review | review [project] --crap |
| Run CRAP design optimization check |
Parse $ARGUMENTS to determine action. If none specified, ask.
s{nn}-{role}-{index} format. No anonymous elements.check_svg.py.sync_manifest.py. Script is source of truth.<foreignObject> for multi-line text — card bodies use <foreignObject> + HTML div. Single-line (titles, stats) use <text>.slides/history/ before any edit.14 themes (10 business + 4 academic/humanities):
14 Bento Grid layouts + 3 semantic visualization components: content-driven, not template-based.
206 Lucide SVG icons across 9 categories: general, communication, data, business, education, humanities, nature, status, arrows.
28 chart templates indexed by analysis goal in references/charts-index.json.
Read references/themes.yaml for full theme definitions (color scheme, typography, card style, elevation, decoration).
Read references/bento-grid.md for layout strategies, density targets, card constraints, and structural components.
Read references/svg-conventions.md for SVG generation rules (IDs, fonts, multi-layer backgrounds, dynamic sizing, data viz).
Read references/cognitive-design.md for evidence-based design principles (Miller's Law, Mayer, Gestalt, cognitive load, narrative arc).
5 specialized roles, orchestrated by Lead Agent (this skill). Each role has a dedicated
system prompt in prompts/. Dispatch as Agent subagents with the corresponding prompt.
| Role | Prompt | Phases | Key Output |
|---|---|---|---|
| Consultant | prompts/consultant.md | 0-1 | requirements.md |
| Researcher | prompts/researcher.md | 2 | research/chapter-{nn}.md |
| Planner | prompts/planner.md | 3-4 | outline.json + planning-draft.md |
| Designer | prompts/designer.md | 5-6 | slides/*.svg + slide-manifest.json |
| Reviewer | prompts/reviewer.md | 6 QA | reviews/*.md + reviews/scores.json |
Role boundaries: each role reads only upstream outputs, never modifies other roles' artifacts. Reviewer feedback routes to the correct role (content issues → Planner, visual → Designer).
create [topic/file] — Full Pipeline (Phase 0-7)Read user-provided materials (PDF, Word, text, URL). Extract key information, data points, logical structure, target audience cues. If user provides only a topic string with no materials, note that Phase 2 research will be essential.
Proceed directly to Phase 1 — do not present analysis yet.
Dispatch Consultant agent with prompts/consultant.md. The Consultant handles:
AskUserQuestion tool (questions, options, recommendations)requirements.md (audience, purpose, scope, style, content strategy, rough chapter outline)User must confirm requirements before proceeding.
Only if user requested. Dispatch Researcher agent. Read prompts/researcher.md.
Process: Planner produces rough outline first → Researcher supplements per chapter using grok-search → Planner refines. Max 1 iteration cycle.
Output: research/chapter-{nn}.md files, confidence-tagged.
Dispatch Planner agent. Read prompts/planner.md.
Apply Pyramid Principle + select narrative framework (Pyramid/SCQA/PAS/Hero's Journey).
Output structured outline.json.
Present outline to user. User must approve before proceeding.
Same Planner agent continues. For each page, produce 8-field planning card:
| Field | Content |
|---|---|
| Objective | What this slide achieves |
| Core Message | Single takeaway |
| Evidence | Data source |
| Layout | Bento Grid type + card count |
| Info Hierarchy | Primary > Secondary > Tertiary |
| Keywords | Key terms and numbers |
| Visual Elements | Charts, diagrams, images |
| Design Notes | Guidance for Designer |
Output: planning-draft.md
Dispatch Designer agent. Read prompts/designer.md.
Generate one SVG per slide (1280x720). Focus on content + layout, neutral gray palette. Every element gets semantic ID. Batch: 3-5 slides per subagent.
Output: drafts/slide-{nn}-draft.svg
Designer injects theme style onto Draft SVGs. Does NOT change content/layout, only visual polish.
Then Reviewer runs two-layer QA:
scripts/check_svg.py — automated (well-formedness, safe area, contrast, gaps)Quality gate: >= 7.0 pass, 5.0-6.9 fix loop (max 2 rounds), < 5.0 redesign.
Output: slides/slide-{nn}.svg + slide-manifest.json + reviews/
# Generate manifest from final SVGs
python ~/.claude/skills/powerpoint-business/scripts/sync_manifest.py slides/ slide-manifest.json
# Export PPTX (SVG-embed, editable in Office 365+)
python ~/.claude/skills/powerpoint-business/scripts/export_pptx.py slides/ output/presentation.pptx
# Generate HTML preview
python ~/.claude/skills/powerpoint-business/scripts/preview.py slides/ output/index.html
# Open preview
open output/index.html
[ ] All SVGs well-formed (check_svg.py passes)
[ ] Manifest synced (sync_manifest.py run)
[ ] QA score >= 7.0
[ ] Layout diversity — no 3+ consecutive same layout
[ ] PPTX generated and non-empty
[ ] HTML preview opens correctly
[ ] Speaker notes in output/speaker-notes.md
edit [project]Natural language editing. User describes change in plain language.
slide-manifest.json to locate target element(s)slides/history/slide-{nn}.v{ver}.svgsync_manifest.py to update manifestEdit granularity:
retheme action insteadundo [project] [slide]Restore previous version from slides/history/. Update manifest. Re-export.
retheme [project] [theme]Regenerate all Design SVGs from Draft SVGs using new theme. Drafts in drafts/ are preserved.
Re-run full QA cycle. Re-export.
export [project]Re-export from current SVGs:
python ~/.claude/skills/powerpoint-business/scripts/export_pptx.py slides/ output/presentation.pptx
python ~/.claude/skills/powerpoint-business/scripts/preview.py slides/ output/index.html
preview [project]Generate HTML preview and open in browser:
python ~/.claude/skills/powerpoint-business/scripts/preview.py slides/ output/index.html
open output/index.html
review [project]Run Reviewer on existing slides. Dispatch Reviewer agent with prompts/reviewer.md.
Produces reviews/ directory with per-slide reports and scores.
Required:
pip install python-pptx lxml cairosvg
Optional:
matplotlib — complex statistical charts (simple charts are inline SVG)soffice (LibreOffice) — PPTX → PDF QA verificationCheck before first run:
python -c "import cairosvg; print('cairosvg OK')"
python -c "from pptx import Presentation; print('python-pptx OK')"
| Problem | Fix |
|---|---|
| cairosvg import error | pip install cairosvg; macOS may need brew install cairo |
| SVG text not wrapping | Use <foreignObject> for multi-line text, not <text> |
| PPTX blank slides | Check SVG well-formedness with check_svg.py; SVG-embed requires Office 365+ |
| Font fallback in preview | Install Noto Sans SC: brew install font-noto-sans-cjk-sc |
| Manifest out of sync | Run sync_manifest.py to regenerate from SVG |
| Reviewer score low | Check reviews/ for specific issues; fix and re-run Design phase |
| matplotlib not found | pip install matplotlib; only needed for complex charts |