Agent skill

Ppt Generation Resilient

by HKUDS in HKUDS/OpenSpace

Robust PowerPoint generation with shellagent primary approach and python-pptx fallback, including working directory verification and inline error debugging

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-877e03 .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.2k tokens
SKILL.md length
520 words
Files
2
Skills in repo
199
Repo updated
First seen
Licence
MIT

At a glance

Robust PowerPoint generation with shellagent primary approach and python-pptx fallback, including working directory verification and inline error debugging

  • Works in 6 steps: Verify Working Directory → Attempt PowerPoint Generation via… → Fallback to Direct Python Execution with… → …
  • Tasks that involve PowerPoint presentations
  • SKILL.md covers When to Use This Skill, Overview, Step 0: Verify Working Directory and Step 1: Attempt PowerPoint…, plus 9 more sections
  • Calls python and pip

What it does

Ppt Generation Resilient is an agent skill from HKUDS/OpenSpace. Robust PowerPoint generation with shellagent primary approach and python-pptx fallback, including working directory verification and inline error debugging

Its SKILL.md is about 2.2k 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

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

  1. Verify Working Directory
  2. Attempt PowerPoint Generation via shell_agent (Primary)
  3. Fallback to Direct Python Execution with python-pptx
  4. Locate the Output File
  5. Copy to Working Directory
  6. Verify the File

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.2k tokens when it runs. Until then it costs about 45 tokens; SKILL.md has 520 words of instructions outside code blocks.

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

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). 520 words, ~2,189 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
Robust PowerPoint generation with shell_agent primary approach and python-pptx fallback, including working directory verification and inline error debugging

Resilient PowerPoint Generation Workflow

When to Use This Skill

Use this workflow when:

  • You need to create PowerPoint presentations with specific slide content and structure
  • Direct document generation tools fail or are unavailable
  • shell_agent encounters opaque errors during PowerPoint generation
  • Output files may be created in unexpected nested directories within the workspace

Overview

This workflow provides a resilient approach with two tiers:

  1. Primary: shell_agent delegation with clear specifications
  2. Fallback: Direct Python execution using python-pptx library with proper error capture

Step 0: Verify Working Directory

Before starting, establish your working directory context:

bash
# Capture current working directory
pwd
# Store for later reference
WORK_DIR=$(pwd)
echo "Working directory: $WORK_DIR"

Step 1: Attempt PowerPoint Generation via shell_agent (Primary)

Delegate the PowerPoint creation task to shell_agent with explicit specifications:

Use shell_agent to create a PowerPoint presentation with:
- Specify the exact number of slides needed
- Define the content/topic for each slide
- Request the file be saved with a clear filename (e.g., presentation.pptx)
- Ask the agent to confirm the file path after creation using: echo "FILE_PATH: $(pwd)/presentation.pptx"
- Request that any errors be printed to stderr with full tracebacks

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. After creation, run: echo "FILE_PATH: $(pwd)/presentation.pptx" and report any errors with full tracebacks.

Wait for shell_agent response. If successful with file path confirmed, proceed to Step 4. If shell_agent fails or returns opaque errors, proceed to Step 2.

Step 2: Fallback to Direct Python Execution with python-pptx

When shell_agent fails, create and execute a Python script directly:

2a: Create the Python Script

Write the PowerPoint generation script to a .py file first:

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

# Verify working directory
print(f"Working directory: {os.getcwd()}")

# Create presentation
prs = Presentation()

# Slide 1: Title slide
slide_layout = prs.slide_layouts[0]
slide = prs.slides.add_slide(slide_layout)
title = slide.shapes.title
subtitle = slide.placeholders[1]
title.text = "Your Title"
subtitle.text = "Your Subtitle"

# Additional slides (add as needed)
for i in range(2, 11):
    slide_layout = prs.slide_layouts[1]
    slide = prs.slides.add_slide(slide_layout)
    title = slide.shapes.title
    content = slide.placeholders[1]
    title.text = f"Slide {i} Title"
    content.text = f"• Bullet point 1\n• Bullet point 2\n• Bullet point 3"

# Save with full path verification
output_path = os.path.join(os.getcwd(), "presentation.pptx")
prs.save(output_path)
print(f"FILE_PATH: {output_path}")
print(f"File size: {os.path.getsize(output_path)} bytes")
2b: Execute with Full Error Capture

Run the script with stderr redirected to capture actual errors:

bash
# Execute with full error output capture
python generate_pptx.py 2>&1 | tee execution_log.txt

# Or if using run_shell tool, ensure 2>&1 is included
python generate_pptx.py 2>&1

Critical: The 2>&1 redirect ensures Python exceptions are captured, not masked as "unknown error".

2c: Verify Script Execution Output

Check the execution log for:

  • FILE_PATH: confirmation line
  • File size confirmation
  • Any error tracebacks in execution_log.txt

Step 3: Locate the Output File

PowerPoint files may be in nested workspace directories. Use find to locate them:

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

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

# If not found, search broader (may require elevated permissions)
find /workspace -name "*.pptx" -type f 2>/dev/null

Expected output format:

./presentation.pptx
or
./workspace/task_123/output/presentation.pptx

Step 4: Copy to Working Directory

Once located, copy the file to your working directory:

bash
# Copy the found file to current directory
cp /path/to/found/presentation.pptx .

# Or move it if you prefer
mv /path/to/found/presentation.pptx .

# Verify copy succeeded
ls -la presentation.pptx

Step 5: Verify the File

Confirm the file exists and is valid:

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

# Check file size to ensure it's not empty (should be > 0 bytes)
FILE_SIZE=$(stat -f%z presentation.pptx 2>/dev/null || stat -c%s presentation.pptx 2>/dev/null)
echo "File size: $FILE_SIZE bytes"

# Verify it's a valid PowerPoint file
file presentation.pptx
# Expected: "Microsoft PowerPoint 2007+"

# If python-pptx was used, verify slide count
python -c "from pptx import Presentation; prs=Presentation('presentation.pptx'); print(f'Slide count: {len(prs.slides)}')" 2>&1
Show full SKILL.md (247 more words)Show less

Common Pitfalls

  1. Don't assume the file is in the current directory - shell_agent may create files in subdirectories
  2. Don't skip the find step - always verify the file location before proceeding
  3. Check file size - ensure the PowerPoint file is not empty (0 bytes)
  4. Always use 2>&1 - redirect stderr to capture actual Python exceptions, not "unknown error"
  5. Write scripts to .py files first - don't rely on inline execution which may have path issues
  6. Verify working directory - capture and confirm pwd before and after script execution

Debugging Commands

When errors occur, use these commands to diagnose:

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

# Check current directory permissions
ls -la . 
ls -la ..

# Test write permissions
touch test_write.txt && rm test_write.txt && echo "Write permissions OK"

# Check Python path
which python
python --version

# Verify no stale files interfering
find . -name "*.pptx" -type f -mtime -1 2>&1

Example Workflow (Complete)

bash
# Step 0: Verify working directory
pwd
# Output: /workspace/task_abc

# Step 1: shell_agent attempt (via task delegation)
# If shell_agent fails with opaque errors...

# Step 2: Fallback to direct Python
cat > generate_pptx.py << 'EOF'
from pptx import Presentation
import os
print(f"Working directory: {os.getcwd()}")
prs = Presentation()
slide_layout = prs.slide_layouts[0]
slide = prs.slides.add_slide(slide_layout)
slide.shapes.title.text = "Title Slide"
output_path = os.path.join(os.getcwd(), "presentation.pptx")
prs.save(output_path)
print(f"FILE_PATH: {output_path}")
EOF

python generate_pptx.py 2>&1 | tee execution_log.txt
# Output: Working directory: /workspace/task_abc
# Output: FILE_PATH: /workspace/task_abc/presentation.pptx

# Step 3: Locate (if needed)
find . -name "*.pptx" -type f
# Output: ./presentation.pptx

# Step 4: Copy (if in nested directory)
# (skip if already in working directory)

# Step 5: 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; prs=Presentation('presentation.pptx'); print(f'Slide count: {len(prs.slides)}')" 2>&1
# Output: Slide count: 1

Troubleshooting

ProblemSolution
shell_agent returns "unknown error"Immediately fall back to Step 2; add 2>&1 to capture actual exceptions
File not found with findSearch broader: find /workspace -name "*.pptx" 2>/dev/null; check if script executed at all
File is 0 bytesRe-run Python script; check for exceptions in execution_log.txt
Permission deniedCheck directory permissions with ls -la; try creating in /tmp first
Multiple .pptx files foundUse more specific search: find . -name "*presentation*.pptx" -type f
python-pptx not installedTry pip install python-pptx or use alternative library
Script executes but no file createdCheck working directory mismatch; add explicit os.chdir() in script

Success Criteria

The workflow is complete when:

  • PowerPoint file exists in working directory
  • File size > 0 bytes (typically > 20KB for multi-slide presentations)
  • file command identifies it as Microsoft PowerPoint format
  • Slide count matches requirements (verify with python-pptx if needed)
  • File is readable and not corrupted

© 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-877e03 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.2kAutomated 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 16 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 16 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?

Robust PowerPoint generation with shellagent primary approach and python-pptx fallback, including working directory verification and inline error debugging. 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-877e03 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-877e03 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.2k tokens (SKILL.md is roughly 8.8k 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.