agentsclimarketplace

Python docx

Skill cxcscmu/SkillLearnBench/skills/b1-one-shot-gemini-3-flash-preview/offer-letter-generator/python-docx

[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 python-docx

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

Manipulate Word documents (.docx) using Python, including placeholder replacement and conditional section handling.

SKILL.md

1.9 KB, as published. Nobody here has run it

python-docx Skill

python-docx is a Python library for creating and updating Microsoft Word (.docx) files.

Installation

pip install python-docx

Basic Usage

Loading and Saving

from docx import Document

doc = Document('template.docx')
# ... modify doc ...
doc.save('output.docx')

Placeholder Replacement

To replace placeholders like {{NAME}} while preserving formatting, iterate through paragraphs and their runs.

def replace_placeholders(doc, data):
    for p in doc.paragraphs:
        for run in p.runs:
            for key, value in data.items():
                placeholder = f'{{{{{key}}}}}'
                if placeholder in run.text:
                    run.text = run.text.replace(placeholder, str(value))

Conditional Sections

For sections like {{IF_CONDITION}}...{{END_IF_CONDITION}}, you can identify the start and end points and remove the content or just the markers.

def handle_conditionals(doc, condition_key, keep_content):
    start_marker = f'{{{{IF_{condition_key}}}}}'
    end_marker = f'{{{{END_IF_{condition_key}}}}}'
    
    # This is a simplified approach for text-based conditionals within paragraphs
    for p in doc.paragraphs:
        if start_marker in p.text and end_marker in p.text:
            if keep_content:
                p.text = p.text.replace(start_marker, "").replace(end_marker, "")
            else:
                # Remove content between markers (regex or string find)
                import re
                p.text = re.sub(f'{re.escape(start_marker)}.*?{re.escape(end_marker)}', '', p.text)

Note: Complex conditionals spanning multiple paragraphs require more advanced logic iterating through the document element tree.

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.