All skills
aktsmm avatar

/powerpoint-automation

@500f5af
by yamapanaktsmm/agent-skills26 stars
4

Create and edit professional PowerPoint presentations from web articles, blog posts, existing PPTX files, or templates. Use when creating PPTX, converting articles to slides, translating presentations, editing open PowerPoint files, or doing COM Automation / RefURL / overflow review work. Triggers on PowerPoint, PPTX, パワポ, スライド作成, 記事をスライド化, COM自動化, RefURL.

Use this Skill: https://skilld.dev/gh/aktsmm/agent-skills/powerpoint-automation

This session only. Nothing lands on disk.

referencesinstructionspurpose-blog.instructions.md

≈730 tokens on demand. Your agent reads this file only when SKILL.md points to it.

Purpose: Blog to Presentation Instructions

Rules for converting blog articles to presentations.

📰 Target: Tech blogs, Qiita, Zenn, Medium, internal wikis, official documentation


Workflow

1. Fetch article content (API or fetch_webpage)
     ↓
2. ★ Extract image URLs & download (images/{base}/)
     ↓
3. Calculate slide count: base + image count
     ↓
4. Create content.json (type: "photo" for images)
     ↓
5. Generate PPTX

Slide Count Guidelines

Article Length Without Images With Images Basis
Short (~1500 chars) 6-8 slides 10-14 slides 300 chars/slide
Medium (1500-4000) 10-14 slides 15-20 slides steps × 1.5
Long tech (4000+) 14-18 slides 20-30 slides sections × 3-4

Required Slide Structure

Position Slide Type Required
1 Title ✅
2 Agenda ✅
3-N Content ✅
N-1 Summary ✅
N Closing ✅

Image Handling

Extraction

$base = "20251212_example_blog"
$url = "https://zenn.dev/xxx/articles/yyy"

# Fetch HTML source
$html = curl -s $url

# Extract image URLs
$imageUrls = [regex]::Matches($html, 'https://[^"]+\.(png|jpg|jpeg|gif|webp)')

# Download images
$i = 1
foreach ($imgUrl in $imageUrls) {
    curl -s -o "images/${base}/$('{0:D2}' -f $i)_image.png" $imgUrl
    $i++
}

Placement

Image Type position width_percent Notes
Architecture right 50-55 Side-by-side text
Screenshot right 55-60 Visible detail
Flowchart full - Full slide
Icon/Logo right 25-30 Keep small

Code Block Handling

When to Include

  • Core implementation examples
  • Configuration snippets
  • Command examples

Format in content.json

{
  "type": "content",
  "title": "Implementation Example",
  "items": ["Point 1", "Point 2"],
  "code": "<button hx-get=\"/api/data\">Fetch</button>"
}

Guidelines

  • Max 10 lines per slide
  • Remove imports unless critical
  • Highlight key parts in speaker notes
  • Consider splitting into multiple slides

Speaker Notes

For each content slide, include:

  1. Context: Why this point matters
  2. Details: Additional explanation not on slide
  3. Speaking hints: Emphasis, transitions
  4. Source: [Source: Article section "XXX"]

Quality Checklist

  • All main images extracted
  • Code blocks under 10 lines
  • Agenda lists all sections
  • Summary captures key points
  • Speaker notes enriched
  • Citations included

Source: SKILL.md on GitHub

1 alert1d5 checks · Risk MEDIUM
  • Gen Agent Trust Hub1d

    The skill automates PowerPoint creation by downloading external images and executing shell commands. Potential risks include command injection through user-influenced filenames and indirect prompt injection from processed web content.

  • Socket1d

    2 alerts: gptAnomaly

  • Snyk1d

    Risk: MEDIUM · 1 issue

  • Runlayer7mo

    12/58 files flagged

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at 500f5af. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub yesterday.

Activeupdated 2 days ago
argument-hint
変換したい URL・PPTX・テンプレート、または編集内容
user-invocable
true
metadata
{
  "author": "yamapan (https://github.com/aktsmm)"
}
  • Python
  • powerpoint
  • pptx
  • presentation
  • automation
  • com-automation
  • template
  • translation
  • web-scraping
  • content-generation

README badge

README badge for aktsmm/agent-skills/powerpoint-automation

Generates and edits PowerPoint presentations from web articles, blog posts, existing PPTX files, or templates using a content.json intermediate format. Supports COM Automation for direct editing of open decks, translation between languages, and structured review workflows that separate extraction, translation, generation, and quality assurance phases.

Generated from the current SKILL.md.

Does this skill work with existing PowerPoint files, or only create new presentations?
It works with both. You can create presentations from web articles or templates, translate and restructure existing PPTX files, or directly edit open PowerPoint files using COM Automation.
What's the central data format for this workflow?
content.json is the source of truth. All phases — extraction, translation, generation, and review — reference and operate on this JSON schema, keeping slides and their content decoupled from the final PPTX output.
Can I use my own PowerPoint template?
Yes. The skill supports custom templates via the template parameter and template_layouts.json config. When using a user-provided template, the skill preserves existing placeholders and layouts rather than overlaying new shapes on top.
How does this handle currently open PowerPoint files?
It uses COM Automation for direct editing of open decks, avoiding python-pptx overwrites. See the com-automation.instructions.md reference for specific workflows around RefURL, notes, overflow, and hyperlink verification.
Does this support languages other than English and Japanese?
The SKILL.md documents English and Japanese localization via a Localizer agent, but does not describe support for other languages.

Generated from the current SKILL.md. These answers refresh after source changes.