Claude-skill-registry document-processor
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/document-processor" ~/.claude/skills/majiayu000-claude-skill-registry-document-processor && rm -rf "$T"
manifest:
skills/data/document-processor/SKILL.mdsource content
Document Processor Skill
Proposito
Processa documentos empresariais com qualidade production-grade:
- PDF: Extracao de texto/tabelas, OCR para escaneados, merge, split
- XLSX: Leitura de dados, validacao de formulas, criacao de relatorios
- DOCX: Extracao de texto, tracked changes, criacao profissional
Principios de Design
1. Validation-First
Sempre validar ANTES de processar. Coletar TODOS os erros antes de reportar.
2. Multi-Tool Strategy
- Extracao: Python (pdfplumber, openpyxl, python-docx)
- Validacao: CLI (LibreOffice headless, pdftotext)
- OCR: tesseract-ocr
3. Zero-Error Policy
Planilhas e documentos criados devem ter ZERO erros de formula ou formatacao.
Comandos
/doc-extract {arquivo}
Extrai texto e dados de um documento.
/doc-extract requirements.pdf /doc-extract financials.xlsx /doc-extract spec.docx
Output: Texto estruturado, tabelas em formato markdown, metadados.
/doc-validate {arquivo}
Valida integridade do documento.
/doc-validate report.xlsx # Verifica formulas /doc-validate contract.docx # Verifica formatacao
Output: JSON com status e erros encontrados.
/doc-create {tipo} {nome}
Cria documento profissional a partir de template.
/doc-create xlsx requirement-matrix /doc-create docx technical-spec
Tipos suportados:
: Planilha com formatacao profissionalxlsx
: Documento Word com estilos padraodocx
Workflow de Extracao
# 1. Detectar tipo (texto vs escaneado) # 2. Extrair com pdfplumber (texto) ou OCR (escaneado) # 3. Preservar layout e tabelas # 4. Retornar estruturado python scripts/extract_pdf.py input.pdf --output json
XLSX
# 1. Abrir com openpyxl # 2. Iterar sheets e celulas # 3. Preservar formulas como metadata # 4. Validar com LibreOffice headless python scripts/process_xlsx.py input.xlsx --mode extract python scripts/process_xlsx.py input.xlsx --mode validate
DOCX
# 1. Abrir com python-docx # 2. Extrair paragrafos, tabelas, headers # 3. Detectar tracked changes (OOXML) # 4. Preservar estrutura python scripts/process_docx.py input.docx --mode extract
Validacao de Planilhas
Tipos de Erros Detectados
| Codigo | Descricao | Exemplo |
|---|---|---|
| Tipo incompativel | onde B1 e texto |
| Referencia invalida | Celula deletada referenciada |
| Divisao por zero | |
| Nome desconhecido | Funcao inexistente |
| Valor nao disponivel | VLOOKUP sem match |
| Numero invalido | |
| Intersecao nula | Range invalido |
Output de Validacao
{ "status": "errors_found", "total_errors": 3, "errors": [ {"cell": "B5", "type": "#REF!", "formula": "=A1+Sheet2!Z99"}, {"cell": "C10", "type": "#DIV/0!", "formula": "=A10/B10"}, {"cell": "D15", "type": "#VALUE!", "formula": "=SUM(D1:D14)"} ], "suggestions": [ "B5: Verifique se Sheet2!Z99 existe", "C10: B10 esta vazio ou zero", "D15: Range contem valores nao-numericos" ] }
Tracked Changes (DOCX)
Detectar Alteracoes
# Tracked changes estao em tags OOXML: # <w:ins> = insercao # <w:del> = delecao # <w:rPrChange> = mudanca de formatacao python scripts/process_docx.py contract.docx --mode changes
Output
{ "has_tracked_changes": true, "changes": [ { "type": "insertion", "author": "John Doe", "date": "2026-01-10T14:30:00Z", "text": "novo texto inserido" }, { "type": "deletion", "author": "Jane Smith", "date": "2026-01-11T09:15:00Z", "text": "texto removido" } ] }
Dependencias
Obrigatorias (Python)
pip install pdfplumber openpyxl python-docx pandas
Opcionais (Sistema)
# PDF avancado apt install poppler-utils # OCR para PDFs escaneados apt install tesseract-ocr # Validacao de formulas XLSX apt install libreoffice
Verificar Instalacao
python scripts/validate.py --check-deps
Integracao com SDLC
| Fase | Uso |
|---|---|
| Phase 1 (Discovery) | Extrair requisitos de PDFs de stakeholders |
| Phase 2 (Requirements) | Processar matrizes de requisitos (XLSX) |
| Phase 3 (Architecture) | Ler especificacoes tecnicas (DOCX) |
| Phase 7 (Release) | Gerar release notes (DOCX), reports (XLSX) |
Boas Praticas
- Sempre validar antes de processar - Use
primeiro/doc-validate - Preferir extracao estruturada - Tabelas como arrays, nao texto
- Preservar metadados - Autor, data, versao
- Reportar todos os erros - Nao falhar no primeiro erro
- Usar templates padronizados - Para documentos criados
Troubleshooting
PDF nao extrai texto
# Verificar se e escaneado pdftotext input.pdf - | head -20 # Se vazio, usar OCR python scripts/extract_pdf.py input.pdf --ocr
XLSX com formulas quebradas
# Validar formulas python scripts/process_xlsx.py input.xlsx --mode validate # Listar todas as formulas python scripts/process_xlsx.py input.xlsx --mode formulas
DOCX corrompido
# Tentar reparar via LibreOffice libreoffice --headless --convert-to docx input.docx