Office Document Assistant
by @windrunner20
Read, extract, summarize, and compare office documents including PDF, Word, Excel, and PowerPoint. Use when a user provides .pdf/.doc/.docx/.xls/.xlsx/.ppt/....
clawhub install office-document-assistantπ About This Skill
name: office-document-assistant description: Read, extract, summarize, and compare office documents including PDF, Word, Excel, and PowerPoint. Use when a user provides .pdf/.doc/.docx/.xls/.xlsx/.ppt/.pptx files and asks for summaries, key point extraction, page-by-page outlines, field extraction, table explanation, or multi-document comparison. Prefer the bundled extraction script for deterministic text extraction; for PDFs, fall back to OCR when embedded text is missing.
Office Document Assistant
Read, extract, summarize, and compare common office documents:
.docx, .doc).xlsx, .xls).pptx, .ppt)Use this skill when the user wants the contents of a document explained, summarized, searched, or extracted into a simpler structure.
When to Use
Use this skill when the user:
.pdf / .doc / .docx / .xls / .xlsx / .ppt / .pptxWhen Not to Use
Do not position this skill as a high-fidelity layout or visual analysis system.
It is not ideal for:
Core Workflow
1. Confirm the document path.
2. Run the bundled script:
- python3 {skill_dir}/scripts/extract_office_text.py
3. Inspect the JSON fields:
- type
- extraction
- warning
- truncated
- text
4. Separate clearly in your response:
- directly extracted content
- your summary / inference based on that content
5. If extraction is empty or weak:
- for PDF, check OCR availability first
- for legacy Office formats, check conversion tools
6. If the user asks for a summary, default to:
- one-sentence overview
- 3β8 key points
- extra sections only when clearly present (dates, people, risks, data, conclusions, contacts)
7. If the user asks for extraction, prefer structured fields over long prose.
Supported Formats and Strategy
pypdf.chi_sim+eng, then chi_sim, then eng.pdftoppm and tesseract.Word
.docx: extract paragraphs and tables directly..doc: try antiword, then catdoc, then LibreOffice conversion to .docx.Excel
PowerPoint
Tools and Dependencies
Document clearly what is required versus optional.
Required runtime
python3Required Python packages
pypdf β embedded text extraction from PDFspython-docx β .docx extractionopenpyxl β .xlsx extractionpython-pptx β .pptx extractionOptional but strongly recommended system tools
poppler-utils β provides pdftoppm for PDF β image conversion before OCRtesseract-ocr β OCR enginetesseract-ocr-chi-sim β Simplified Chinese OCR language packlibreoffice β conversion fallback for legacy .doc, .xls, .pptantiword β direct .doc extraction fallbackcatdoc β additional .doc extraction fallbackWhat each tool is used for
pypdf: try text-layer extraction from PDFs firstpdftoppm: rasterize PDF pages when OCR is neededtesseract: recover text from scanned/image PDFspython-docx: read paragraphs and tables from .docxopenpyxl: read sheets and rows from .xlsxpython-pptx: read slide text and notes from .pptxlibreoffice: convert older Office formats into newer parseable formatsantiword / catdoc: lightweight extraction options for .docMinimum useful setup
If only modern documents matter, the minimum practical setup is:python3pypdf, python-docx, openpyxl, python-pptxRecommended full setup
For the most robust behavior across real-world files, install:python3pypdf, python-docx, openpyxl, python-pptxpoppler-utils, tesseract-ocr, tesseract-ocr-chi-sim, libreoffice, antiword, catdocDependency check
Use the bundled checker to quickly see what is missing in the current environment:python3 {skill_dir}/scripts/check_deps.py
Common Commands
python3 {skill_dir}/scripts/extract_office_text.py "/path/to/file.pdf" --json
python3 {skill_dir}/scripts/extract_office_text.py "/path/to/file.docx" --json
python3 {skill_dir}/scripts/extract_office_text.py "/path/to/file.xlsx" --json
python3 {skill_dir}/scripts/extract_office_text.py "/path/to/file.pptx" --json
Useful flags:
# limit PDF pages scanned/extracted
python3 {skill_dir}/scripts/extract_office_text.py "/path/to/file.pdf" --page-limit 10 --jsonlimit rows per sheet when probing spreadsheets
python3 {skill_dir}/scripts/extract_office_text.py "/path/to/file.xlsx" --row-limit 30 --jsoncap output text size
python3 {skill_dir}/scripts/extract_office_text.py "/path/to/file.pdf" --max-chars 30000 --json
Output Style
Default to a compact answer:
Failure Handling
tesseract-ocr-chi-sim is installed..doc / .xls / .ppt extraction fails, check libreoffice, antiword, and catdoc.References
Read these only when needed:
references/capabilities.md β capability boundaries and what each format can/can't do wellreferences/troubleshooting.md β dependency checks and common failure modes