Skip to content

jespimentel/extrator-teses

Repository files navigation

Extrator de Teses

Automação que lê peças processuais (sentenças, razões de apelação, contrarrazões, pareceres etc.), extrai as teses jurídicas reaproveitáveis nelas contidas e as generaliza, preservando os fundamentos jurídicos e a jurisprudência citada, mas removendo qualquer vínculo com o caso concreto. O resultado é uma base de conhecimento em arquivos Markdown estruturados, pensada para ser consultada por um agente no futuro, como insumo para a elaboração de novas peças.

Finalidade didática do projeto

Este repositório também serve como exemplo de um fluxo de trabalho completo com o Claude, do planejamento até a automação, e vale registrar as etapas percorridas:

  1. Planejamento em chat. Tudo começou numa conversa com o Claude, sem nenhuma linha de código. Ali amadurecemos a ideia, discutimos alternativas e chegamos a um desenho de solução: uma automação que extrai teses de peças processuais e as generaliza, preservando argumentos jurídicos e jurisprudência, para compor uma base de conhecimento em Markdown. Essa é a fase mais importante — é nela que se define o fluxo de trabalho, o tipo de peça a ser analisada, o formato de saída esperado e como os scripts de apoio devem se encaixar no processo.

  2. Prompt de scaffold. Ao final da conversa, pedimos ao Claude um prompt que organizasse a pasta de trabalho, criasse o ambiente virtual Python, instalasse as bibliotecas necessárias, gerasse os scripts de automação e estabelecesse o roteiro de extração no formato de Skill do Claude Code. Esse processo de gerar toda a estrutura inicial (pastas, ambiente, arquivos) a partir de uma especificação é chamado de scaffold do projeto.

  3. Execução no VS Code. Abrimos o VS Code, executamos o Claude Code dentro dele e fornecemos o prompt de scaffold obtido no passo anterior. A partir daí, a estrutura de pastas, o ambiente virtual e os scripts (scripts/preparar_entrada.py e scripts/validar_gravar.py) foram criados automaticamente, e o arquivo .claude/skills/extrair-teses/SKILL.md foi gravado na pasta correta. Conferimos objetivamente se o resultado correspondia ao que havia sido planejado no chat.

  4. Processamento das peças. Com a estrutura pronta, as peças processuais passaram a ser depositadas na pasta entrada/. No chat do Claude Code, solicitamos o processamento explicitamente ou invocamos a Skill diretamente (/extrair-teses). Se tudo correu como planejado, as teses aparecem generalizadas — sem nomes, datas, valores ou referências de autos do caso concreto — mas com a jurisprudência e a legislação citadas na peça original preservadas, prontas para reaproveitamento futuro, por exemplo, por uma outra skill dedicada à elaboração de contrarrazões.

Claude Code executando a skill extrair-teses no VS Code, processando as peças pendentes e gravando as teses em teses/

Estrutura do projeto

entrada/                  peças .docx a processar (entrada bruta)
entrada/_texto_extraido/  texto das peças já extraído (cache por hash)
teses/_bruto/             saída bruta da Skill, um arquivo por peça (por hash)
teses/                    teses validadas e gravadas, uma por arquivo
teses/_revisar/           teses muito similares a alguma já existente
teses/_index.json         índice de todas as teses gravadas
processados.json          controle de idempotência (hash -> status)
scripts/preparar_entrada.py   extrai texto dos .docx e lista peças pendentes
scripts/validar_gravar.py     valida a saída da Skill e grava as teses finais
.claude/skills/extrair-teses/SKILL.md   prompt/roteiro da Skill de extração

Fluxo de uso

  1. Coloque as peças processuais (.docx) na pasta entrada/.
  2. Rode uv run python scripts/preparar_entrada.py para extrair o texto de cada peça nova (por hash, evitando reprocessar peças já tratadas) e listar o que está pendente.
  3. No Claude Code, peça para aplicar a skill extrair-teses a cada texto pendente. A saída deve ser salva em teses/_bruto/<hash>.md.
  4. Rode uv run python scripts/validar_gravar.py <hash> para cada peça processada. O script valida o formato (frontmatter YAML + schema), verifica duplicidade por similaridade e grava a tese em teses/ (ou em teses/_revisar/, se muito parecida com uma já existente) — atualizando teses/_index.json e processados.json.

Formato de cada tese

Cada arquivo em teses/ é um Markdown com frontmatter YAML (titulo, area_direito, tema, tags, tipo_peca_origem, jurisprudencia, legislacao, id, data_extracao) seguido do texto sanitizado da tese, pronto para reaproveitamento em novas peças.

About

Extrator e generalizador de teses jurídicas com Claude Code no VS Code

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages