CtrlK
BlogDocsLog inGet started
Tessl Logo

pptx-file-validation

Validate PowerPoint files using python-pptx when standard file readers fail

60

Quality

70%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./benchmarks/gdpval/skills/pptx-file-validation/SKILL.md
SKILL.md
Quality
Evals
Security

PPTX File Validation Workflow

This skill provides a reliable method to validate PowerPoint (.pptx) files when the built-in read_file function fails or returns insufficient information.

When to Use

  • read_file fails to read a .pptx file
  • You need to verify presentation contents (slide count, titles, structure)
  • Standard file readers return incomplete or unreadable data

Step-by-Step Instructions

Step 1: Detect read_file Failure

Attempt to read the PowerPoint file using read_file. If it fails, returns garbled content, or doesn't provide the structural information you need, proceed to Step 2.

Step 2: Use run_shell with python-pptx

Execute a Python script using run_shell with the python-pptx library to inspect the presentation:

python3 -c "
from pptx import Presentation
prs = Presentation('path/to/file.pptx')
print(f'Total slides: {len(prs.slides)}')
for i, slide in enumerate(prs.slides, 1):
    print(f'Slide {i}: {slide.shapes.title.text if slide.shapes.title else \"[No Title]\"}')
"

Step 3: Parse and Validate Output

Analyze the output to verify:

  • Slide count matches expected number
  • Slide titles align with required topics
  • Structure is complete and properly formatted

Step 4: Report Validation Results

Document the validation findings, including:

  • Total number of slides
  • List of slide titles
  • Any missing or problematic content

Example Usage

# In your agent workflow
run_shell(command="python3 -c \"from pptx import Presentation; prs = Presentation('output.pptx'); print(f'Slides: {len(prs.slides)}'); [print(f'{i}: {s.shapes.title.text}') for i, s in enumerate(prs.slides, 1) if s.shapes.title]\"")

Prerequisites

Ensure python-pptx is available in the environment:

pip install python-pptx

Benefits

  • Reliable: Works when built-in readers fail
  • Detailed: Provides slide-by-slide breakdown
  • Programmatic: Easy to parse and validate against requirements
  • Lightweight: No need for PowerPoint software installation
Repository
HKUDS/OpenSpace
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.