From tecjustica
Generates executive procedural reports in DOCX/PDF with top-tier investment bank styling (navy+ocre palette, EB Garamond typography, institutional covers) for Brazilian legal contexts using python-docx and LibreOffice headless.
npx claudepluginhub marcosmarf27/tecjustica --plugin tecjusticaThis skill uses the workspace's default tool permissions.
Gerador de relatórios processuais executivos com padrão visual de bancas de investimento e consultorias top-tier (Goldman, JP Morgan, McKinsey, BCG), adaptado ao contexto judicial brasileiro. Produz DOCX com python-docx e converte para PDF via LibreOffice headless.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Explores codebases via GitNexus: discover repos, query execution flows, trace processes, inspect symbol callers/callees, and review architecture.
Share bugs, ideas, or general feedback.
Gerador de relatórios processuais executivos com padrão visual de bancas de investimento e consultorias top-tier (Goldman, JP Morgan, McKinsey, BCG), adaptado ao contexto judicial brasileiro. Produz DOCX com python-docx e converte para PDF via LibreOffice headless.
Transforma dados estruturados (JSON) em relatórios executivos com identidade visual "Sobriedade Institucional":
python3 com python-docx instaladolibreoffice headless para conversão DOCX → PDFfonts-ebgaramond · EB Garamond (display + body)fonts-ibm-plex · IBM Plex Sans + IBM Plex Mono (labels + numerais)Instalação completa no Ubuntu/WSL:
pip install --user python-docx
sudo apt install -y libreoffice-core libreoffice-writer --no-install-recommends
sudo apt install -y fonts-ebgaramond fonts-ebgaramond-extra fonts-ibm-plex fonts-inconsolata fonts-crosextra-caladea fonts-crosextra-carlito
Todas essas dependências são instaladas automaticamente pelo install.sh do repositório.
Sem as fontes editoriais, o LibreOffice substitui por fallbacks genéricos (Liberation Serif / DejaVu Sans) e o relatório perde sua identidade visual. É essencial instalar as fontes antes de usar a skill.
Monte o conteúdo do relatório em um arquivo JSON e rode:
python3 ${CLAUDE_SKILL_DIR}/scripts/gerar_relatorio.py entrada.json saida.docx --pdf
O flag --pdf converte automaticamente para PDF no mesmo diretório.
Para salvar o PDF em outro caminho:
python3 ${CLAUDE_SKILL_DIR}/scripts/gerar_relatorio.py entrada.json saida.docx --pdf --pdf-path /tmp/saida.pdf
bash ${CLAUDE_SKILL_DIR}/scripts/docx_para_pdf.sh entrada.docx saida.pdf
Para montar relatórios programaticamente (sem passar por JSON):
import sys
sys.path.insert(0, "${CLAUDE_SKILL_DIR}/scripts")
from docx_builder import Report
r = Report(
titulo="Relatório de Análise Processual",
subtitulo="Parecer técnico sobre cumprimento de sentença",
eyebrow="RELATÓRIO PROCESSUAL · VOL. I",
classificacao="DOCUMENTO RESERVADO",
numero_documento="TJ-CE / 2026 / 024",
autor="TecJustica · Assessoria Judicial",
metadata=[
("Autos", "0001234-56.2024.8.06.0001"),
("Classe", "Cumprimento de sentença"),
("Órgão julgador", "4ª Vara Cível · Fortaleza/CE"),
("Relator(a)", "Juiz(a) de Direito"),
("Valor da causa", "R$ 125.430,00"),
("Data de emissão", "14 · Abril · 2026"),
],
)
r.add_cover()
r.add_toc()
r.add_heading("Sumário executivo", level=1, numeral="01")
r.add_lead("Parecer técnico elaborado a partir dos autos extraídos via OCR...")
r.add_paragraph("Trata-se de ação de cobrança em fase de cumprimento...")
r.add_kpi([
("Prazo restante", "15 dias", "úteis até penhora online"),
("Valor atualizado", "R$ 125.430", "sem multa"),
("Risco processual", "Baixo", "sentença transitada em julgado"),
])
r.add_heading("Linha do tempo", level=1, numeral="02")
r.add_timeline([
("15/03/2024", "Distribuição da ação"),
("30/05/2024", "Contestação"),
])
r.add_quote(
"A prescrição intercorrente começa a correr a partir da ciência inequívoca...",
"STJ · REsp 1.340.553/RS · Rel. Min. Mauro Campbell",
)
r.add_callout("Prazo de 15 dias úteis em curso.", kind="warn")
r.add_signature("Magistrado(a) de Direito", "4ª Vara Cível · Fortaleza", "Fortaleza, 14/04/2026")
docx = r.save("/tmp/relatorio.docx")
r.export_pdf(docx, "/tmp/relatorio.pdf")
{
"meta": {
"titulo": "Relatório de Análise Processual",
"subtitulo": "Parecer técnico sobre cumprimento de sentença",
"eyebrow": "RELATÓRIO PROCESSUAL · VOL. I",
"classificacao": "DOCUMENTO RESERVADO",
"numero_documento": "TJ-CE / 2026 / 024",
"autor": "TecJustica · Assessoria Judicial",
"metadata": [
["Autos", "0001234-56.2024.8.06.0001"],
["Classe", "Cumprimento de sentença"],
["Órgão julgador", "4ª Vara Cível · Fortaleza/CE"],
["Relator(a)", "Juiz(a) de Direito"],
["Valor da causa", "R$ 125.430,00"],
["Data de emissão", "14 · Abril · 2026"]
]
},
"cover": true,
"toc": true,
"sections": [
{"type": "heading", "level": 1, "numeral": "01", "text": "Sumário executivo"},
{"type": "lead", "text": "Parecer técnico elaborado..."},
{"type": "paragraph", "text": "Trata-se de ação..."},
{"type": "kpi", "items": [["Prazo", "15 dias", "úteis"], ["Valor", "R$ 125.430", "sem multa"], ["Risco", "Baixo", "transitado"]]},
{"type": "data_cards", "columns": 3, "items": [["Distribuído", "15/03/2024"], ["Fase", "Cumprimento"]]},
{"type": "table", "headers": ["Col A", "Col B"], "rows": [["x", "y"]], "col_widths_cm": [6, 10]},
{"type": "timeline", "events": [["15/03/2024", "Distribuição"]]},
{"type": "quote", "text": "...", "author": "STJ · REsp ..."},
{"type": "callout", "kind": "warn", "text": "Atenção: prazo em curso"},
{"type": "bullets", "items": ["Item 1", "Item 2"]},
{"type": "code", "text": "/plugin install tecjustica@tecjustica-plugins"},
{"type": "signature", "name": "Juiz(a)", "role": "Vara Cível", "local_data": "Fortaleza, 14/04/2026"}
]
}
Tipos de seção suportados: heading, lead, paragraph, bullets, kpi, data_cards, table, timeline, quote, callout, code, signature.
Tipos de callout: info (navy), warn (ocre), ok (verde).
Ver references/tipos-de-secao.md para a referência completa de cada tipo.
Um template completo com todos os tipos de seção está em:
${CLAUDE_SKILL_DIR}/templates/relatorio-processual.json
Para gerar um relatório de demonstração:
python3 ${CLAUDE_SKILL_DIR}/scripts/gerar_relatorio.py \
${CLAUDE_SKILL_DIR}/templates/relatorio-processual.json \
/tmp/exemplo.docx --pdf
tecjustica-docx/
├── SKILL.md ← este arquivo
├── scripts/
│ ├── docx_builder.py ← biblioteca Report + componentes institucionais
│ ├── gerar_relatorio.py ← CLI JSON → DOCX/PDF
│ └── docx_para_pdf.sh ← conversor DOCX → PDF standalone
├── templates/
│ └── relatorio-processual.json ← exemplo completo
└── references/
├── paleta-tecjustica.md ← paleta + tipografia + justificativas de design
└── tipos-de-secao.md ← referência de cada tipo de seção do JSON
Esta skill costuma ser acionada após outras análises:
tecjustica-docx formaliza em relatório executivoFluxo completo ideal:
pje-download → tecjustica-parse → analise-processo-civil/penal → tecjustica-docx
install.sh do repositório para garantir que estão presentes."libreoffice: command not found"
Instale: sudo apt install -y libreoffice-core libreoffice-writer --no-install-recommends
"ModuleNotFoundError: No module named 'docx'"
Instale: pip install --user python-docx (no Ubuntu 24+, adicione --break-system-packages)
PDF fica com tipografia errada (serifa feia, letras diferentes do esperado) As fontes editoriais não estão instaladas. Execute:
sudo apt install -y fonts-ebgaramond fonts-ebgaramond-extra fonts-ibm-plex fonts-inconsolata fonts-crosextra-caladea fonts-crosextra-carlito
E regere o relatório.
TOC aparece com "clique para atualizar" Normal. Abra no LibreOffice Writer (ou Word) e o campo carrega. O PDF exportado já vem com o TOC renderizado.
Capa parece vazia ou mal alinhada
Verifique se a metadata no meta está preenchida com 3–6 itens. A capa é projetada para ser densa; sem metadata ela fica excessivamente minimalista.