{
  "$schema": "https://humangarden.ai/.well-known/skill-spec.schema.json",
  "canonical_url": "https://humangarden.ai/skills/pptx/spec.json",
  "slug": "pptx",
  "last_tested": "2026-06-05",
  "tested_by": "humangarden",
  "verdict_one_line": "A pptxgenjs cookbook + python OOXML toolbelt — create-from-scratch path generated a valid 6-slide chart deck in 60ms; visual QA loop needs LibreOffice + Poppler installed",
  "fires_when": [
    "user wants to generate a PowerPoint deck from structured data or an outline",
    "user wants to programmatically edit an existing pptx via unpack → edit → pack",
    "user is building agent workflows that produce slide decks as artifacts",
    "user wants a slide deck with native charts (not images of charts)",
    "user wants design-taste guidance for slide aesthetics (palette, typography, motifs)"
  ],
  "skip_when": [
    "user wants a fill-in-the-blanks generator (this is \"write JS, learn the pptxgenjs API\")",
    "user needs pixel-level visual QA of the rendered deck without installing LibreOffice",
    "user needs PDF export of the final deck without LibreOffice",
    "user has Keynote (.key) files needing conversion — not supported"
  ],
  "inputs": [
    {
      "type": "text",
      "format": "outline or structured-spec",
      "constraint": "for new-deck generation; you write pptxgenjs JS that consumes this"
    },
    {
      "type": "file",
      "format": "pptx",
      "constraint": "for unpack → edit → pack workflow"
    }
  ],
  "outputs": [
    {
      "type": "file",
      "format": "pptx",
      "quality_note": "~90% trustworthy; content/layout match what the JS specifies; pptxgenjs emits chart XML element order that triggers strict-XSD warnings, but all real readers open the file fine"
    }
  ],
  "installation": {
    "pip": [
      "markitdown[pptx]",
      "python-pptx",
      "Pillow"
    ],
    "npm": [
      "pptxgenjs"
    ],
    "system": {
      "optional_libreoffice": "brew install --cask libreoffice (for thumbnail.py + PDF export + visual QA)",
      "optional_poppler": "brew install poppler (pdftoppm — for thumbnail rendering)"
    },
    "notes": "Create-path needs no system deps — just npm + uv pip. Visual-QA branch needs LibreOffice and Poppler. Skill's SKILL.md flags this honestly."
  },
  "artifacts": [
    {
      "kind": "office",
      "file": "https://humangarden.ai/spec-artifacts/pptx/humangarden-methodology.pptx",
      "caption": "The full 6-slide deck we generated — title, four-card phases, big-stat callout, bar chart, gardener-vs-vendor compare, dark closing slide. Generated in 60ms by pptxgenjs.",
      "role": "output",
      "hero": true
    },
    {
      "kind": "text",
      "inline": "Slides generated: 6\nAspect: 16:9 (LAYOUT_WIDE)\nFile size: 120 KB\n\nslide 1: title — humangarden, \"the methodology, in 6 slides\"\nslide 2: four-card row — Index / Score / Test / Publish phases\nslide 3: big-stat callout — \"99% of 2,389 SKILL.md files have no license\"\nslide 4: native bar chart — median scores across 5 dimensions\nslide 5: gardener vs vendor compare cards (3 rows, dark left / light right)\nslide 6: dark closing — \"humangarden.ai · tended daily\"\n\nSkill's own QA (markitdown round-trip): clean — every title, body, bullet, and the chart data round-tripped to markdown.\nSkill's own validate.py: 2 XSD ordering warnings on pptxgenjs-emitted chart XML. File opens in all readers.\n",
      "caption": "Structural summary — verified by python-pptx (6 slides, 1 chart, 16:9) and by the skill's own markitdown + validate.py.",
      "role": "output",
      "hero": false
    }
  ],
  "caveats": [
    "thumbnail.py fails with \"No such file or directory: soffice\" when LibreOffice is not installed",
    "skill's own validate.py flags 2 XSD ordering warnings on pptxgenjs-emitted chart XML (file still opens in all readers; potentially an upstream pptxgenjs bug)",
    "no bundled example deck or outline — first-time users must read pptxgenjs.md cookbook end-to-end",
    "GitHub clone occasionally times out; codeload.github.com tarball fallback works"
  ],
  "needs_credentials": [],
  "source_repo": "https://github.com/anthropics/skills/tree/main/pptx",
  "human_review_url": "https://humangarden.ai/skills/pptx/"
}