# document-processing

A skill for office files: covers PDF, XLSX, DOCX and PPTX, picks the right tool per format and flags the rules that matter.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 1300 installs · ★ 7
- Author: eyadsibai
- License: not stated · policy=link-only · description only; the file stays with the author
- Source: https://github.com/eyadsibai/ltk/tree/HEAD/plugins/ltk-product/skills/document-processing/SKILL.md
- Updated: 2026-01-15
- HTML: https://affpapa.org/en/nevibecode/skills/document-processing

## What it does

The skill kicks in when a task touches PDF, Excel, Word or PowerPoint, along with XLSX, DOCX, PPTX, spreadsheets and presentations. It maps each job to a tool: `pypdf`, `pdfplumber`, `reportlab`, `pytesseract` with `pdf2image`, plus the `qpdf` and `pdftotext` command line utilities for PDF; `pandas` and `openpyxl` for spreadsheets; `pandoc` and `python-docx` for Word; `markitdown`, `python-pptx` and `pptxgenjs` for slides.

Excel gets its own section. The skill is blunt about it: computing a number in Python and writing the result into a cell is wrong, because the value goes stale the moment the data changes. Write the formula instead. It also lists financial-model conventions — blue text for hardcoded inputs, black for formulas, green for links to other sheets, yellow fill for cells that need attention.

Word and PowerPoint come with their file layouts. XLSX, DOCX and PPTX are ZIP archives holding XML, so you can edit the raw parts. For contracts and legal documents the skill recommends tracked changes via the `<w:ins>` and `<w:del>` tags rather than overwriting text. Format conversion runs through `pandoc` and headless LibreOffice. Worth knowing before you install: each task needs its own libraries and utilities, and scenarios that lean on `pandoc` or LibreOffice will not run without them.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add eyadsibai/ltk --skill document-processing -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/document-processing/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/document-processing/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add eyadsibai/ltk --skill document-processing -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/document-processing/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add eyadsibai/ltk --skill document-processing -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/document-processing/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install eyadsibai/ltk document-processing
```

2. **Manually: put the files in place**
- File: `.github/skills/document-processing/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add eyadsibai/ltk --skill document-processing -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/eyadsibai/ltk --path plugins/ltk-product/skills/document-processing
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/document-processing/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add eyadsibai/ltk --skill document-processing -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/eyadsibai/ltk/tree/HEAD/plugins/ltk-product/skills/document-processing/SKILL.md

## When to use it
- pull text and tables out of a PDF report
- merge several files into one PDF
- write an Excel formula instead of a static number
- redline a contract with tracked changes
- convert a DOCX to markdown for analysis

## Example prompts
- Parse this PDF and extract every table into a DataFrame
- Put a formula in the xlsx instead of a fixed value so it recalculates
- Edit the docx using tracked changes

## Similar
- [game-design-document](https://affpapa.org/en/nevibecode/skills/game-design-document.md) — skill · 1100 installs
- [word-document-processor](https://affpapa.org/en/nevibecode/skills/word-document-processor.md) — skill · 3600 installs
- [nutrient-document-processing](https://affpapa.org/en/nevibecode/skills/nutrient-document-processing.md) — skill · 4500 installs
- [translate-book](https://affpapa.org/en/nevibecode/skills/translate-book.md) — skill · 1800 installs
- [latex-document-skill](https://affpapa.org/en/nevibecode/skills/latex-document-skill.md) — skill · 561 installs
- [doc-to-markdown](https://affpapa.org/en/nevibecode/skills/doc-to-markdown.md) — skill · 872 installs

From the same set: [eyadsibai/ltk](https://affpapa.org/en/nevibecode/by/eyadsibai/ltk.md) — 2 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
