document-skills
Collection of document processing suite including Excel, Word, PowerPoint, and PDF capabilities
Summary
This skill provides a comprehensive suite for creating, editing, and manipulating documents in Word, Excel, PowerPoint, and PDF formats directly within Claude Code.
- It includes detailed guides, API references, and helper scripts to streamline document processing tasks, making it essential for developers who need to automate or generate office documents programmatically.
Overview
A comprehensive collection of specialized skills and capabilities for Claude Code, Claude AI, and Claude API.
Quick Start (Claude Code)
/plugin marketplace add Cam10001110101/claude-skills-baseš Repository Structure
/mnt/skills
āāā public/ # Production-ready core skills
ā ā
ā āāā docx/ # Word document creation & editing
ā ā āāā SKILL.md # Main documentation
ā ā āāā docx-js.md # JavaScript library guide
ā ā āāā ooxml.md # OOXML format reference
ā ā āāā ooxml/ # OOXML specifications
ā ā āāā scripts/ # Helper utilities
ā ā
ā āāā pdf/ # PDF manipulation & forms
ā ā āāā SKILL.md # Main documentation
ā ā āāā FORMS.md # Form filling guide
ā ā āāā REFERENCE.md # API reference
ā ā āāā scripts/ # Helper utilities
ā ā
ā āāā pptx/ # PowerPoint presentation creation
ā ā āāā SKILL.md # Main documentation
ā ā āāā html2pptx.md # HTML to PowerPoint conversion
ā ā āāā css.md # Styling guide
ā ā āāā ooxml.md # OOXML format reference
ā ā āāā ooxml/ # OOXML specifications
ā ā āāā scripts/ # Helper utilities
ā ā
ā āāā xlsx/ # Excel spreadsheet creation
ā āāā SKILL.md # Main documentation
ā āāā recalc.py # Formula recalculation
ā
āāā examples/ # Specialized domain skills
ā
āāā code-to-music/
ā āāā SKILL.md
ā āāā electronic-music-pipeline.md
ā āāā traditional-music-pipeline.md
ā āāā scripts/ # MIDI rendering & utilities
ā
āāā music-generation/
āāā SKILL.md
āāā scripts/ # Synthesizers, MIDI tools
āāā drum_synthesizer.py
āāā melodic_synthesizer.pyšÆ About Agent Skills
This repository follows Anthropic's Agent Skills pattern. Agent Skills are modular packages that extend Claude's capabilities by providing domain-specific knowledge, instructions, and executable tools.
How Skills Work
As Anthropic explains, "Claude is powerful, but real work requires procedural knowledge and organizational context." Skills transform general-purpose agents into specialized ones through progressive disclosure:
- Metadata Level: Each skill includes a
SKILL.mdfile with name and description, pre-loaded so Claude knows when to use it - Core Content: If relevant, Claude loads the full
SKILL.mddocumentation - Supplementary Files: Additional references load only when needed
This keeps context efficient while allowing unbounded skill complexity.
š Try in Claude Code, Claude.ai, and the API
Claude Code
You can register this repository as a Claude Code Plugin from the marketplace by running the following command in Claude Code:
/plugin marketplace add Cam10001110101/claude-skills-baseAfter installing the plugin, you can use the skills by simply mentioning them. For example:
"use the pdf skill to extract the form fields from path/to/some-file.pdf"
"use the xlsx skill to create a financial model with formulas"
"use the pptx skill to create a presentation from this content"Claude.ai
Skills are available directly in Claude.ai conversations. Simply reference them when working with documents:
- ā¢Excel tasks are automatically handled with the xlsx skill
- ā¢PowerPoint creation uses the pptx skill
- ā¢PDF processing leverages the pdf skill
- ā¢Word documents use the docx skill
Claude Agent SDK
Integrate skills into custom agent workflows using the Claude Agent SDK. Skills are automatically discovered and loaded when available in the agent's environment.
API Integration
See the API Integration section below for details on using skills with the Claude Messages API.
For more information, see the Agent Skills documentation and examples.
š How Skills Work in Practice
PowerPoint Generation Flow
When you ask Claude to create a presentation, here's the automated workflow:
Receive content request for presentation creation
Create a .pptx using this content: [EXAMPLE_CONTENT]Claude scans available PowerPoint skills and templates in the system
/mnt/skills/public/pptx/
āāā SKILL.md # Main documentation
āāā pptxgenjs.md # PptxGenJS library guide
āāā ooxml.md # OOXML format reference
āāā scripts/ # PowerPoint utilitiesClaude reads the PptxGenJS documentation to understand API and formatting options, reviewing:
- ā¢PptxGenJS API Reference
- ā¢OOXML Schemas
- ā¢Layout and styling options
Claude creates a JavaScript file with presentation logic, styling, and content structure:
const pptxgen = require("pptxgenjs");
const { renderToStaticMarkup } = require("react-dom/server");
const React = require("react");
const { FiFileText, FiDatabase, FiCpu } = require("react-icons/fi");
const sharp = require("sharp");
// Create presentation
let pres = new pptxgen();
pres.layout = 'LAYOUT_16x9';
pres.author = 'Document Processing Solutions';
pres.title = 'Document Processing Pipelines & Automation';
// Color palette
const colors = {
primary: "185087", // Deep blue
secondary: "2F9477", // Teal
accent: "F56D40", // Orange
text: "2C3E50", // Dark gray
white: "FFFFFF"
};
// Helper function to create icons
async function createIcon(IconComponent, color, size = 100) {
const svgString = renderToStaticMarkup(
React.createElement(IconComponent, {
size, color: `#${color}`, strokeWidth: 2
})
);
const buffer = await sharp(Buffer.from(svgString)).png().toBuffer();
return `data:image/png;base64,${buffer.toString('base64')}`;
}
// Create slides
async function createPresentation() {
const icons = await createAllIcons();
// Slide 1: Title Slide
let slide1 = pres.addSlide();
slide1.background = { color: colors.primary };
slide1.addText("Document Processing Pipelines", {
x: 0.5, y: 1.5, w: 9, h: 1,
fontSize: 48, bold: true, color: colors.white,
fontFace: "Arial", align: "center"
});
// Add more slides with content, charts, and icons...
// Save presentation
await pres.writeFile({
fileName: "/mnt/user-data/outputs/document_processing_pipelines.pptx"
});
}
createPresentation().catch(console.error);Run the generated script to build the presentation
cd /home/claude && node create_presentation.js
# Output: Presentation created successfully!Confirm successful file creation and validate output
ls -lh /mnt/user-data/outputs/document_processing_pipelines.pptx
# Output: -rw-r--r-- 1 999 root 174K document_processing_pipelines.pptxProfessional presentation ready for delivery: document_processing_pipelines.pptx
Key Workflow Benefits
- ā¢Automated Discovery: Claude automatically finds and loads relevant skills
- ā¢Documentation-Driven: Skills include comprehensive guides for proper API usage
- ā¢Code Generation: Creates production-ready scripts with proper error handling
- ā¢Quality Assurance: Validates output and confirms successful creation
API Integration
Skills can be used with the Claude Messages API through the code execution tool. For detailed implementation guidance, see the Skills API Guide.
Quick Start Example:
import anthropic
client = anthropic.Anthropic(api_key="your-api-key")
response = client.messages.create(
model="claude-sonnet-4-5-20250929",
max_tokens=4096,
betas=["code-execution-2025-08-25", "skills-2025-10-02"],
container={
"skills": [
{"type": "anthropic", "skill_id": "xlsx", "version": "latest"},
{"type": "anthropic", "skill_id": "pptx", "version": "latest"}
]
},
messages=[
{"role": "user", "content": "Create a financial spreadsheet with charts"}
],
tools=[{"type": "code_execution_20250825", "name": "code_execution"}]
)Key Points:
- ā¢Skills available:
xlsx,docx,pptx,pdf(use"version": "latest"or specific dates like"20251013") - ā¢Up to 8 skills per request: Mix and match skills as needed
- ā¢Required beta headers:
code-execution-2025-08-25,skills-2025-10-02 - ā¢Custom skills: Upload your own skills (max 8MB) using the Skills API
- ā¢No network access: Skills run in a sandboxed environment
Creating Custom Skills:
from anthropic.lib import files_from_dir
skill = client.beta.skills.create(
display_title="Financial Analysis",
files=files_from_dir("/path/to/skill"),
betas=["skills-2025-10-02"]
)
# Use custom skill with its generated ID
response = client.messages.create(
model="claude-sonnet-4-5-20250929",
max_tokens=4096,
betas=["code-execution-2025-08-25", "skills-2025-10-02"],
container={
"skills": [
{"type": "custom", "skill_id": skill.id}
]
},
messages=[{"role": "user", "content": "Analyze quarterly financials"}],
tools=[{"type": "code_execution_20250825", "name": "code_execution"}]
)Document Suite (Public)
Production-ready skills for Microsoft Office documents and PDFs. These provide comprehensive Python and JavaScript/TypeScript toolkits for creating, editing, and analyzing professional documents.
Features
š Excel (.xlsx)
- ā¢Create spreadsheets with formulas and formatting
- ā¢Preserve existing templates and styles
- ā¢Automatic formula recalculation via LibreOffice
- ā¢Financial modeling with industry-standard color coding
- ā¢Data analysis with pandas integration
š Word (.docx)
- ā¢Create professional documents with formatting
- ā¢Edit existing documents preserving structure
- ā¢Support for tracked changes and comments
- ā¢Text extraction with pandoc
- ā¢OOXML manipulation for advanced editing
šÆ PowerPoint (.pptx)
- ā¢Create presentations from scratch with PptxGenJS
- ā¢Template-based presentation generation
- ā¢Slide rearrangement and duplication
- ā¢Text replacement while preserving formatting
- ā¢Thumbnail grid generation for visual analysis
- ā¢OOXML editing for advanced modifications
š PDF
- ā¢Fill fillable PDF forms programmatically
- ā¢Add text annotations to non-fillable PDFs
- ā¢Extract tables and text content
- ā¢Merge, split, and rotate PDFs
- ā¢OCR support for scanned documents
- ā¢Convert PDFs to images
Installation (Core Skills)
System Requirements
# Linux/Ubuntu
sudo apt-get install libreoffice poppler-utils pandoc
# macOS
brew install libreoffice poppler pandocPython Dependencies
pip install openpyxl pandas pypdf pdfplumber reportlab pytesseract pdf2image markitdownJavaScript Dependencies
npm install -g pptxgenjs docx-jsQuick Start
Excel - Create a Financial Model
from openpyxl import Workbook
from openpyxl.styles import Font
wb = Workbook()
sheet = wb.active
# Add headers
sheet['A1'] = 'Revenue'
sheet['A1'].font = Font(bold=True)
# Add data with formulas
sheet['B1'] = 2024
sheet['C1'] = 2025
sheet['B2'] = 1000000
sheet['C2'] = '=B2*1.1' # 10% growth formula
wb.save('financial_model.xlsx')
# Recalculate formulas
# python xlsx/recalc.py financial_model.xlsxPowerPoint - Create from Template
# 1. Analyze template
python pptx/scripts/thumbnail.py template.pptx
# 2. Rearrange slides (0-indexed)
python pptx/scripts/rearrange.py template.pptx working.pptx 0,5,5,12
# 3. Extract text inventory
python pptx/scripts/inventory.py working.pptx inventory.json
# 4. Replace text (create replacement.json first)
python pptx/scripts/replace.py working.pptx replacement.json final.pptxPDF - Fill a Form
# 1. Check if form is fillable
python pdf/scripts/check_fillable_fields.py form.pdf
# 2. Extract field information
python pdf/scripts/extract_form_field_info.py form.pdf fields.json
# 3. Edit fields.json with your data
# 4. Fill the form
python pdf/scripts/fill_fillable_fields.py form.pdf fields.json filled.pdfWord - Extract Content
# Extract text with tracked changes
pandoc --track-changes=all document.docx -o content.md
# For XML manipulation
python pptx/ooxml/scripts/unpack.py document.docx unpacked/
# Edit XML files
python pptx/ooxml/scripts/validate.py unpacked/ --original document.docx
python pptx/ooxml/scripts/pack.py unpacked/ modified.docxProject Structure
āāā xlsx/ # Excel tools
ā āāā recalc.py # Formula recalculation
ā āāā SKILL.md # Excel documentation
ā
āāā docx/ # Word tools
ā āāā ooxml.md # OOXML documentation
ā āāā SKILL.md # Word documentation
ā
āāā pptx/ # PowerPoint tools
ā āāā scripts/ # PowerPoint utilities
ā ā āāā thumbnail.py # Create slide thumbnails
ā ā āāā rearrange.py # Reorder slides
ā ā āāā inventory.py # Extract text inventory
ā ā āāā replace.py # Replace text content
ā āāā ooxml/ # OOXML utilities
ā ā āāā scripts/
ā ā āāā unpack.py # Unpack Office files
ā ā āāā validate.py # Validate XML
ā ā āāā pack.py # Pack to Office format
ā āāā pptxgenjs.md # PptxGenJS documentation
ā āāā SKILL.md # PowerPoint documentation
ā
āāā pdf/ # PDF tools
āāā scripts/ # PDF utilities
ā āāā check_fillable_fields.py
ā āāā extract_form_field_info.py
ā āāā fill_fillable_fields.py
ā āāā convert_pdf_to_images.py
āāā FORMS.md # PDF forms documentation
āāā SKILL.md # PDF documentationAdvanced Usage
Excel Formula Best Practices
Always use formulas instead of hardcoded values:
# ā Wrong - Hardcoded calculation
total = sum([100, 200, 300])
sheet['A4'] = total # Hardcodes 600
# ā
Correct - Excel formula
sheet['A4'] = '=SUM(A1:A3)' # Dynamic formulaAfter adding formulas, always recalculate:
python xlsx/recalc.py spreadsheet.xlsxPowerPoint Template Workflow
- Visual Analysis: Create thumbnail grid to understand layout
- Structure Planning: Map content to appropriate slide templates
- Slide Selection: Use rearrange.py to duplicate and order slides
- Content Replacement: Use inventory.py and replace.py for text updates
PDF Form Types
- ā¢Fillable Forms: Use
fill_fillable_fields.pyfor forms with interactive fields - ā¢Visual Forms: Use
fill_pdf_form_with_annotations.pyfor static forms requiring text overlay
OOXML Editing
For advanced document manipulation:
- Unpack the Office file to access XML
- Edit XML carefully (maintain schema compliance)
- Validate changes before repacking
- Pack back to Office format
Common Tasks
Merge PDFs
from pypdf import PdfWriter, PdfReader
writer = PdfWriter()
for pdf_file in ["doc1.pdf", "doc2.pdf"]:
reader = PdfReader(pdf_file)
for page in reader.pages:
writer.add_page(page)
with open("merged.pdf", "wb") as output:
writer.write(output)Extract Tables from PDF
import pdfplumber
import pandas as pd
with pdfplumber.open("document.pdf") as pdf:
tables = []
for page in pdf.pages:
for table in page.extract_tables():
if table:
df = pd.DataFrame(table[1:], columns=table[0])
tables.append(df)
if tables:
combined = pd.concat(tables, ignore_index=True)
combined.to_excel("extracted_tables.xlsx", index=False)Create PowerPoint with JavaScript
import pptxgen from "pptxgenjs";
let pres = new pptxgen();
let slide = pres.addSlide();
slide.addText("Hello World", {
x: 1,
y: 1,
w: 8,
h: 2,
fontSize: 44,
bold: true,
color: "363636"
});
pres.writeFile({ fileName: "presentation.pptx" });Troubleshooting
Excel Formula Errors
If recalc.py reports errors:
- ā¢
#REF!: Check cell references - ā¢
#DIV/0!: Add zero checks - ā¢
#VALUE!: Verify data types - ā¢
#NAME?: Check formula syntax
PowerPoint XML Validation
Always validate after XML edits:
python pptx/ooxml/scripts/validate.py edited/ --original template.pptxPDF Coordinate Systems
Remember coordinate transformation:
- ā¢Image coordinates: origin at top-left
- ā¢PDF coordinates: origin at bottom-left
Specialized Skills (Examples)
Domain-specific example skills bundled with this repo.
šµ Media & Communication
code-to-music
- ā¢Convert code structures to musical compositions
- ā¢Algorithm sonification
- ā¢Pattern-based music generation
music-generation
- ā¢Procedural music composition
- ā¢MIDI generation and manipulation
- ā¢Audio synthesis workflows
š§ Skill Architecture
All skills follow a standardized structure:
skill-name/
āāā SKILL.md # Primary documentation and instructions
āāā examples/ # Usage examples and templates
āāā utils/ # Helper functions and utilities
āāā tests/ # Validation and test casesSKILL.md Format
Every skill includes comprehensive documentation:
- Overview - Purpose and capabilities
- Prerequisites - Required tools and dependencies
- Usage Instructions - Step-by-step workflows
- Best Practices - Optimization tips and patterns
- Examples - Real-world use cases
- Troubleshooting - Common issues and solutions
š” Design Philosophy
Modularity
Each skill is self-contained and focused on a specific domain, enabling composition and reuse.
Best Practices First
Skills encode proven workflows developed through extensive testing and iteration.
Quality Over Speed
Prioritize professional-quality outputs over quick-and-dirty solutions.
Progressive Enhancement
Start with simple use cases and progressively handle complex scenarios.
š References & Resources
Documentation
- ā¢Agent Skills Documentation - Official Anthropic documentation
- ā¢Skills API Guide - API integration guide
- ā¢Agent Skills Blog Post - Equipping agents for the real world
- ā¢Claude Cookbooks - Skills - Examples and tutorials
Source Files
- ā¢
Process Flow.md- Detailed workflow example for PowerPoint generation - ā¢
example-skils-flow-diagram.html- Visual flow diagram for skill execution - ā¢
CLAUDE.md- Development guidance for this repository
Core Skill Documentation
Each skill includes comprehensive documentation in its SKILL.md file:
- ā¢
/mnt/skills/public/xlsx/SKILL.md- Excel spreadsheet creation - ā¢
/mnt/skills/public/docx/SKILL.md- Word document processing - ā¢
/mnt/skills/public/pptx/SKILL.md- PowerPoint presentation creation - ā¢
/mnt/skills/public/pdf/SKILL.md- PDF manipulation
Additional Resources
- ā¢Office Open XML: Format specifications in
/mnt/skills/public/*/ooxml/ - ā¢Reference Guides: Format-specific guides (FORMS.md, REFERENCE.md, html2pptx.md, etc.)
- ā¢Example Skills: 15+ specialized skills in
/mnt/skills/examples/
Install & Usage
mkdir -p .claude/skillsmkdir -p .claude/skills && curl -o .claude/skills/document-skills.md https://raw.githubusercontent.com/Cam10001110101/claude-skills-base/main/SKILL.md/document-skillsUse Cases
Usage Examples
/document-skills Create a Word document from the following data: ...
/document-skills Generate an Excel spreadsheet with sales data and a pie chart.
/document-skills Convert this HTML into a PowerPoint presentation with slide breaks.
Security Audits
Frequently Asked Questions
What is document-skills?
This skill provides a comprehensive suite for creating, editing, and manipulating documents in Word, Excel, PowerPoint, and PDF formats directly within Claude Code. It includes detailed guides, API references, and helper scripts to streamline document processing tasks, making it essential for developers who need to automate or generate office documents programmatically.
How to install document-skills?
To install document-skills: create the skills directory (mkdir -p .claude/skills), then run: mkdir -p .claude/skills && curl -o .claude/skills/document-skills.md https://raw.githubusercontent.com/Cam10001110101/claude-skills-base/main/SKILL.md. Finally, /document-skills in Claude Code.
What is document-skills best for?
document-skills is a skill categorized under Documentation. It is designed for: documentation. Created by Cameron Rohn.
What can I use document-skills for?
document-skills is useful for: Generate a Word document with formatted text, tables, and images from structured data.; Create an Excel spreadsheet with formulas, charts, and conditional formatting for reporting.; Build a PowerPoint presentation with slides, bullet points, and custom styling from HTML content.; Fill and extract data from PDF forms programmatically.; Convert HTML content into a PowerPoint presentation with CSS-based styling.; Manipulate OOXML files directly for low-level document customization..