agentsclimarketplace

Docx pptx extraction

Skill cxcscmu/SkillLearnBench/skills/b1-one-shot-claude-haiku-4-5/organize-messy-files/docx-pptx-extraction

[COLM'26] SkillLearnBench is the first benchmark for evaluating continual learning methods that automatically generate agent skills.

Install
npx -y skills add cxcscmu/SkillLearnBench --skill docx-pptx-extraction

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

What its author says it does

Copied from the file, not written here

Extract text from DOCX and PPTX files for content analysis

SKILL.md

2.0 KB, as published. Nobody here has run it

DOCX and PPTX Text Extraction

Overview

Extract text content from Microsoft Office files (.docx, .pptx) for subject classification.

Installation

pip install python-docx python-pptx

DOCX Extraction

from docx import Document

def extract_docx_text(docx_path, max_chars=5000):
    """Extract text from DOCX files"""
    try:
        doc = Document(docx_path)
        text = ""
        for para in doc.paragraphs:
            text += para.text + "\n"
            if len(text) > max_chars:
                break
        return text[:max_chars]
    except Exception as e:
        return f"Error reading DOCX: {str(e)}"

PPTX Extraction

from pptx import Presentation

def extract_pptx_text(pptx_path, max_chars=5000):
    """Extract text from PPTX files"""
    try:
        prs = Presentation(pptx_path)
        text = ""
        for slide_num, slide in enumerate(prs.slides):
            if slide_num >= 5:  # First 5 slides
                break
            for shape in slide.shapes:
                if hasattr(shape, "text"):
                    text += shape.text + "\n"
                    if len(text) > max_chars:
                        return text[:max_chars]
        return text[:max_chars]
    except Exception as e:
        return f"Error reading PPTX: {str(e)}"

Combined Handler

def extract_text_by_type(file_path):
    """Route to appropriate extraction method based on file extension"""
    ext = file_path.lower().split('.')[-1]

    if ext == 'pdf':
        return extract_pdf_text(file_path)
    elif ext == 'docx':
        return extract_docx_text(file_path)
    elif ext == 'pptx':
        return extract_pptx_text(file_path)
    else:
        return ""

Best Practices

  • Extract from first 3-5 pages/slides only
  • Handle missing text shapes gracefully
  • Use consistent character limits across all file types

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.