OpenSpace pptx-validation-fallback
Validate PowerPoint files using python-pptx when read_file fails
install
source · Clone the upstream repo
git clone https://github.com/HKUDS/OpenSpace
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/HKUDS/OpenSpace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/gdpval_bench/skills/pptx-validation-fallback" ~/.claude/skills/hkuds-openspace-pptx-validation-fallback && rm -rf "$T"
manifest:
gdpval_bench/skills/pptx-validation-fallback/SKILL.mdsource content
PowerPoint Validation Fallback
When to Use
Use this skill when
read_file fails to properly read or validate PowerPoint (.pptx) files. This provides a reliable alternative for verifying presentation contents including slide count, titles, and structure.
Procedure
Step 1: Check if read_file Failed
If
read_file with filetype pptx returns errors, incomplete content, or cannot extract slide information, proceed to the fallback method.
Step 2: Use run_shell with python-pptx
Execute Python code via
run_shell using the python-pptx library to inspect the presentation:
from pptx import Presentation # Load the presentation prs = Presentation('path/to/file.pptx') # Get basic info slide_count = len(prs.slides) print(f"Total slides: {slide_count}") # Extract slide titles for i, slide in enumerate(prs.slides): if slide.shapes.title: title = slide.shapes.title.text print(f"Slide {i+1}: {title}") else: print(f"Slide {i+1}: [No title]")
Step 3: Validate Structure
Check that the presentation meets expected requirements:
from pptx import Presentation prs = Presentation('path/to/file.pptx') # Validation checks expected_slides = 10 # Adjust based on requirements actual_slides = len(prs.slides) if actual_slides >= expected_slides: print(f"✓ Slide count OK: {actual_slides} slides") else: print(f"✗ Insufficient slides: {actual_slides}/{expected_slides}") # Check for content on each slide for i, slide in enumerate(prs.slides): has_title = slide.shapes.title is not None has_content = len(slide.shapes) > 1 print(f"Slide {i+1}: title={has_title}, content={has_content}")
Step 4: Extract Detailed Content (Optional)
For deeper validation, extract text content from all shapes:
from pptx import Presentation prs = Presentation('path/to/file.pptx') for i, slide in enumerate(prs.slides): print(f"\n=== Slide {i+1} ===") for shape in slide.shapes: if hasattr(shape, "text") and shape.text.strip(): print(shape.text)
Expected Output
Successful validation should provide:
- Confirmed slide count
- List of slide titles
- Verification that each slide has expected content structure
Common Use Cases
- Verifying generated presentations have correct number of slides
- Confirming slide titles match required topics
- Validating presentation structure before delivery
- Debugging why read_file cannot parse a .pptx file
Dependencies
The
python-pptx library must be available in the execution environment. Most Python environments support it via pip:
pip install python-pptx