Agent skill

Ppt Generation Resilient

by HKUDS in HKUDS/OpenSpace

Resilient PowerPoint generation with shellagent primary path and python-pptx fallback

MITAuto-check passedDocuments & Office

Install Ppt Generation Resilient

skills CLI
$ npx skills add HKUDS/OpenSpace --skill ppt-generation-resilient -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install HKUDS/OpenSpace ppt-generation-resilient --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/HKUDS/OpenSpace.git skills-src && mkdir -p .claude/skills && cp -r skills-src/benchmarks/gdpval/skills/ppt-workflow-location-enhanced .claude/skills/ppt-generation-resilient && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
ppt-generation-resilient
GitHub stars
7.8k
Token cost
~2.4k tokens
SKILL.md length
507 words
Files
2
Skills in repo
199
Repo updated
First seen
Licence
MIT

At a glance

Resilient PowerPoint generation with shellagent primary path and python-pptx fallback

  • Works in 5 steps: 1: Delegate with Clear Specifications → 2: Verify shell_agent Success → 1: Create Python Script File → …
  • Tasks that involve PowerPoint presentations
  • SKILL.md covers When to Use This Skill, Overview, Path 1: shell_agent (Primary) and Path 2: Direct Python with…, plus 9 more sections
  • Calls python and pip

What it does

Ppt Generation Resilient is an agent skill from HKUDS/OpenSpace. Resilient PowerPoint generation with shellagent primary path and python-pptx fallback

Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file.

It sits in Documents & Office, covering PowerPoint presentations. It works with Microsoft PowerPoint, python-pptx and Python. The repository describes itself as: "OpenSpace: The Skill Management Layer for AI Agents" -- https://open-space.cloud/. The licence is MIT.

When your agent uses it

  • Tasks that involve PowerPoint presentations

Example prompts

  • “/ppt-generation-resilient”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. 1: Delegate with Clear Specifications
  2. 2: Verify shell_agent Success
  3. 1: Create Python Script File
  4. 2: Execute with Error Output Capture
  5. 3: Debug Common Issues

What it can do on your machine

Read from SKILL.md and the folder at commit 3827781. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • python
    • pip

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use pip, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Ppt Generation Resilient loads about 2.4k tokens when it runs. Until then it costs about 28 tokens; SKILL.md has 507 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~28
When it runs · the whole SKILL.md, loaded when a task matches
~2.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from HKUDS/OpenSpace at commit 3827781, republished under its MIT licence (© HKUDS). 507 words, ~2,371 tokens.

Download SKILL.mdSave it as .claude/skills/ppt-generation-resilient/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
ppt-generation-resilient
description
Resilient PowerPoint generation with shell_agent primary path and python-pptx fallback

Resilient PowerPoint Generation Workflow

When to Use This Skill

Use this workflow when:

  • You need to create PowerPoint presentations programmatically
  • shell_agent may fail or produce opaque error messages
  • You need robust error handling and debugging capabilities
  • Output files may be created in unexpected nested directories

Overview

This workflow provides two paths:

  1. Primary: Use shell_agent with clear specifications (preferred for simple presentations)
  2. Fallback: Direct Python execution with python-pptx library (for complex or failed shell_agent attempts)

Both paths include automatic error capture and file location verification.


Path 1: shell_agent (Primary)

Step 1.1: Delegate with Clear Specifications
Use shell_agent to create a PowerPoint presentation with:
- Specify exact number of slides needed
- Define content/topic for each slide
- Request file saved with clear filename (e.g., presentation.pptx)
- Ask agent to confirm the full file path after creation
- Request agent report any errors with full output

Example task description:

Create a PowerPoint presentation with 10 slides covering [topic]. Each slide should have a title and bullet points. Save it as presentation.pptx in the current working directory and report the full file path. If you encounter any errors, show the complete error message.
Step 1.2: Verify shell_agent Success

Check if shell_agent completed successfully:

  • Did it report a file path?
  • Can you access the file at that path?
  • Is the file size > 0 bytes?

If any check fails, proceed to Path 2 (Fallback).


Path 2: Direct Python with python-pptx (Fallback)

Step 2.1: Create Python Script File

First, write the PowerPoint generation script to a .py file (do NOT use inline execution):

python
# save as: generate_presentation.py
from pptx import Presentation
from pptx.util import Inches, Pt
import os

# CRITICAL: Explicitly set and verify working directory
working_dir = os.getcwd()
print(f"Working directory: {working_dir}")

# Create presentation
prs = Presentation()

# Example: Add slides with content
slides_content = [
    {"title": "Slide 1 Title", "content": ["Bullet 1", "Bullet 2"]},
    {"title": "Slide 2 Title", "content": ["Point A", "Point B", "Point C"]},
    # Add more slides as needed
]

for slide_data in slides_content:
    slide_layout = prs.slide_layouts[1]  # Title and Content layout
    slide = prs.slides.add_slide(slide_layout)
    
    # Set title
    title = slide.shapes.title
    title.text = slide_data["title"]
    
    # Set content
    content = slide.placeholders[1]
    tf = content.text_frame
    tf.clear()  # Clear existing content
    
    for i, point in enumerate(slide_data["content"]):
        if i == 0:
            p = tf.paragraphs[0]
        else:
            p = tf.add_paragraph()
        p.text = point
        p.font.size = Pt(18)

# Save to current working directory with explicit path
output_filename = "presentation.pptx"
output_path = os.path.join(working_dir, output_filename)
prs.save(output_path)

print(f"Presentation saved to: {output_path}")
print(f"File exists: {os.path.exists(output_path)}")
print(f"File size: {os.path.getsize(output_path)} bytes")
Step 2.2: Execute with Error Output Capture

CRITICAL: Always redirect stderr to stdout to capture actual error messages:

bash
# Execute the script with full error output
python generate_presentation.py 2>&1

# Or if using run_shell tool, ensure 2>&1 is included

Why this matters: Without 2>&1, Python exceptions are sent to stderr and you only see "unknown error" instead of the actual exception message.

Step 2.3: Debug Common Issues

If execution fails, add these debugging commands:

bash
# Check if python-pptx is installed
python -c "import pptx; print(pptx.__version__)" 2>&1

# Check working directory
pwd
ls -la

# Check Python version
python --version

# Run with verbose error output
python -u generate_presentation.py 2>&1 | tee execution_log.txt

Step 3: Locate the Output File (Both Paths)

PowerPoint files may be in nested workspace directories. Always verify location:

bash
# Find all .pptx files in workspace
find . -name "*.pptx" -type f 2>&1

# Or search for specific filename
find . -name "presentation.pptx" -type f 2>&1

# If not found locally, search broader (last resort)
find /workspace -name "*.pptx" -type f 2>/dev/null

Step 4: Copy to Working Directory

Once located, copy the file to your working directory:

bash
# Get the full path from find output
FILE_PATH=$(find . -name "presentation.pptx" -type f | head -1)

# Copy to current directory
cp "$FILE_PATH" . 2>&1

# Or move it
mv "$FILE_PATH" . 2>&1

Step 5: Verify the File

Confirm the file exists and is valid:

bash
# List file with details
ls -la presentation.pptx

# Check file size (should NOT be 0 bytes)
file presentation.pptx
stat presentation.pptx | grep Size

# Verify it's a valid PowerPoint file
python -c "from pptx import Presentation; prs = Presentation('presentation.pptx'); print(f'Slides: {len(prs.slides)}')" 2>&1

Show full SKILL.md (242 more words)Show less

Common Pitfalls & Solutions

ProblemSolution
shell_agent returns "unknown error"Switch to Path 2 (direct Python) immediately
Python script fails silentlyAdd 2>&1 to capture stderr; use python -u for unbuffered output
File not found after generationUse find . -name "*.pptx" - don't assume current directory
File is 0 bytesRe-run generation; check for exceptions in error output
Working directory confusionAlways print(os.getcwd()) in Python scripts; use absolute paths
Module not found (pptx)Install with pip install python-pptx or use alternative environment
Permission deniedCheck directory permissions: ls -la on parent dirs; use /workspace/ prefix

Decision Tree

Start
  │
  └─→ Try shell_agent with clear specs
        │
        ├─→ Success + File path reported? ──→ Verify file → Done
        │
        └─→ Failed or opaque error?
              │
              └─→ Switch to direct Python (Path 2)
                    │
                    ├─→ Write script to .py file
                    ├─→ Execute with 2>&1 redirect
                    ├─→ Capture and analyze errors
                    ├─→ Fix and retry (max 3 attempts)
                    │
                    └─→ Success? → Locate → Copy → Verify → Done
                    └─→ Still failing? → Report actual error messages

Example: Complete Workflow

bash
# Attempt 1: shell_agent (via task delegation)
# [Agent creates presentation, reports path or error]

# If shell_agent failed, proceed to Path 2:

# Step 1: Write Python script
cat > generate_presentation.py << 'EOF'
from pptx import Presentation
import os
print(f"Working directory: {os.getcwd()}")
prs = Presentation()
slide = prs.slides.add_slide(prs.slide_layouts[0])
slide.shapes.title.text = "Title Slide"
prs.save("presentation.pptx")
print(f"Saved: presentation.pptx")
EOF

# Step 2: Execute with error capture
python generate_presentation.py 2>&1
# Output: Working directory: /workspace/task_123
#         Saved: presentation.pptx

# Step 3: Locate (in case it's nested)
find . -name "presentation.pptx" -type f
# Output: ./presentation.pptx

# Step 4: Verify
ls -la presentation.pptx
# Output: -rw-r--r-- 1 user user 45632 Jan 15 10:30 presentation.pptx

python -c "from pptx import Presentation; print(len(Presentation('presentation.pptx').slides))"
# Output: 1

Troubleshooting: Detailed Error Diagnosis

When you see "unknown error" from run_shell:
bash
# This is NOT helpful - stderr is hidden
python script.py

# This CAPTURES the actual error
python script.py 2>&1

# This CAPTURES and LOGS for analysis
python script.py 2>&1 | tee error_log.txt
When working directory is unclear:
python
# Always include this at script start
import os
print(f"CWD: {os.getcwd()}")
print(f"Files in CWD: {os.listdir('.')}")

# Use absolute paths for output
output_path = os.path.join(os.getcwd(), "presentation.pptx")
When multiple .pptx files exist:
bash
# Find most recently created
find . -name "*.pptx" -type f -printf '%T@ %p\n' | sort -n | tail -1

# Or find by name pattern
find . -name "*presentation*.pptx" -type f

Tool-Specific Notes

run_shell
  • ALWAYS include 2>&1 to capture Python exceptions
  • Consider python -u for unbuffered output (real-time error display)
  • Use | tee logfile.txt to preserve error output for analysis
shell_agent
  • Request explicit file path confirmation in task description
  • Ask agent to report full error messages if generation fails
  • Be prepared to switch to Path 2 if errors are opaque
execute_code_sandbox
  • May have module availability issues (e.g., missing python-pptx)
  • Prefer run_shell with explicit script file for complex tasks
  • Verify module availability before relying on this tool

Success Criteria

A successful PowerPoint generation workflow:

  • File exists at known path
  • File size > 0 bytes (typically > 10KB for multi-slide)
  • File can be opened by python-pptx without errors
  • Expected number of slides present
  • Slide titles match specifications *** End Files

© HKUDS, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in benchmarks/gdpval/skills/ppt-workflow-location-enhanced of HKUDS/OpenSpace.

  • SKILL.md
  • .skill_id

Open the folder on GitHubat commit 3827781

Compare with similar skills

Ppt Generation Resilient next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Ppt Generation Resilient compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Ppt Generation Resilient this skillHKUDS/OpenSpace7.8k—~2.4kAutomated safety check: PassMIT
Ppt Creatorcigery-useio/useio-skills104—~2.4kAutomated safety check: PassNone
Python PPTX Generatorsickn33/agentic-awesome-skills47k2 repos~1.1kAutomated safety check: PassMIT
Kb Office RemediationCommunity-Access/accessibility-agents423—~2kAutomated safety check: PassMIT
McKinsey-Style PPT Designlikaku/Mck-ppt-design-skill297—~2.1kAutomated safety check: PassApache-2.0
PowerPoint PPTX ToolkitXiaomiMiMo/MiMo-Code14k—~6.8kAutomated safety check: NotesApache-2.0

Similar skills

  • Ppt Creator

    cigery-useio/useio-skills

    PPT 制作技能,支持创建和修改 PowerPoint 演示文稿。包含嵌入式 Python(Windows x64,约 25MB),支持企业内网环境零依赖运行。支持标题页、内容页、双栏页、表格页、图片页、章节页、图表页等多种布局。默认 16:9 宽高比,支持模板创建和修改前自动备份。

    104 GitHub stars~2.4k tokensUpdated 17 days ago
    Documents & OfficeAuto-check passed
  • Python PPTX Generator

    sickn33/agentic-awesome-skills

    Generate complete Python scripts that build polished PowerPoint decks with python-pptx and real slide content.

    47k GitHub starsUsed in 2 repos~1.1k tokens
    Documents & OfficeAuto-check passed
  • Kb Office Remediation

    Community-Access/accessibility-agents

    Reference data, not a reviewer. An agent skill from Community-Access/accessibility-agents.

    423 GitHub stars~2k tokensUpdated 17 days ago
    Documents & OfficeAuto-check passed
  • McKinsey-Style PPT Design

    likaku/Mck-ppt-design-skill

    Builds consultant-style PowerPoint decks from scratch with the MckEngine python-pptx wrapper, through a five-stage flow with scripted quality gates.

    297 GitHub stars~2.1k tokensUpdated 5 mo ago
    Documents & OfficeAuto-check passed
  • PowerPoint PPTX Toolkit

    XiaomiMiMo/MiMo-Code

    Creates, edits and reads PowerPoint .pptx files with python-pptx or PptxGenJS, with scripts for XML edits, text dumps, PDF and image rendering, and thumbnails.

    14k GitHub stars~6.8k tokensUpdated yesterday
    Documents & OfficeAuto-check: notes
  • PPTX

    rvdbreemen/OTGW-firmware

    Use this skill any time a .pptx file is involved in any way — as input, output, or both.

    207 GitHub starsUsed in 34 repos~2.3k tokens
    Documents & OfficeAuto-check passed

More from HKUDS/OpenSpace

All 199 skills in this repo
  • Walks through producing a master audio track plus stems in Python, from checking a reference file and timing sections by BPM to effects, a zip archive and final verification.

    7.8k GitHub stars~2.9k tokensUpdated 1 mo ago
    Auto-check passed
  • Handle cascading data retrieval tool failures by falling back to embedded knowledge generation

    7.8k GitHub stars~765 tokensUpdated 1 mo ago
    Auto-check passed
  • Gives an agent a workaround when its code-execution sandbox keeps failing: save the Python script to a file and run it through the shell instead.

    7.8k GitHub stars~588 tokensUpdated 1 mo ago
    Auto-check passed
  • A recovery routine for agents whose sandboxed code runner keeps failing: save the Python script to disk, then run it through the shell and read the output.

    7.8k GitHub stars~652 tokensUpdated 1 mo ago
    Auto-check passed
  • Fallback ladder for failed sandboxed code runs, plus the habit of fixing the working directory first so generated files land in the right place.

    7.8k GitHub stars~1.1k tokensUpdated 1 mo ago
    Auto-check passed
  • Fallback workflow for executing Python code when executecodesandbox fails repeatedly

    7.8k GitHub stars~1.1k tokensUpdated 1 mo ago
    Auto-check passed

Questions about Ppt Generation Resilient

What does Ppt Generation Resilient do?

Resilient PowerPoint generation with shellagent primary path and python-pptx fallback. Ppt Generation Resilient is an agent skill from HKUDS/OpenSpace.

When should I use Ppt Generation Resilient?

Ppt Generation Resilient fits situations like: tasks that involve PowerPoint presentations.

How do I install Ppt Generation Resilient in Claude Code?

Run `npx skills add HKUDS/OpenSpace --skill ppt-generation-resilient -a claude-code`. Or copy the skill folder (benchmarks/gdpval/skills/ppt-workflow-location-enhanced in HKUDS/OpenSpace) into .claude/skills/ppt-generation-resilient in your project. Claude Code loads it when a task matches its description.

How do I install Ppt Generation Resilient in Codex?

Run `npx skills add HKUDS/OpenSpace --skill ppt-generation-resilient -a codex`. Or copy the skill folder (benchmarks/gdpval/skills/ppt-workflow-location-enhanced in HKUDS/OpenSpace) into .agents/skills/ppt-generation-resilient in your project. Codex loads it when a task matches its description.

Can I use Ppt Generation Resilient in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add HKUDS/OpenSpace --skill ppt-generation-resilient -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ppt-generation-resilient, .gemini/skills/ppt-generation-resilient, .github/skills/ppt-generation-resilient and .opencode/skills/ppt-generation-resilient in your project.

What does Ppt Generation Resilient need to run?

Going by SKILL.md and its folder, Ppt Generation Resilient needs the command-line tools its instructions call (python and pip). Our summary lists: Python 3.

Does Ppt Generation Resilient access the network?

SKILL.md contains no URLs. Its commands use pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Ppt Generation Resilient safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Ppt Generation Resilient use?

Ppt Generation Resilient is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Ppt Generation Resilient use?

About 2.4k tokens (SKILL.md is roughly 9.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Ppt Generation Resilient?

Skills that share tags, products or a category with Ppt Generation Resilient: Ppt Creator (cigery-useio/useio-skills, 104 stars), Python PPTX Generator (sickn33/agentic-awesome-skills, 47k stars), Kb Office Remediation (Community-Access/accessibility-agents, 423 stars) and McKinsey-Style PPT Design (likaku/Mck-ppt-design-skill, 297 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Ppt Generation Resilient?

HKUDS (a GitHub organization) maintains it in HKUDS/OpenSpace, which has 7,754 GitHub stars. The repository holds 199 skills in this directory. The repository was last updated on August 12, 2026.

Source: HKUDS/OpenSpace on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.