2.3 KiB
ADR-002 — Motor de ingestão de PDF, PPTX e DOCX
- Status: Proposed
- Data: 2026-10-02
- Pendência: P-010
- Decisão: nenhuma
Contexto
Admin ou Gestor importa um modelo PDF, PPTX ou DOCX. O campo dinâmico nasce só de um marcador [campo] escrito no arquivo. O sistema não infere trecho variável. IA não substitui essa validação.
O motor que lê o arquivo e devolve texto ou estrutura ainda não foi escolhido. Sem essa escolha, não há parser real nesta fase.
Alternativas
- Bibliotecas locais por formato, com uma etapa posterior e determinística que só aceita
[campo]. - Conversão por processo externo (por exemplo LibreOffice) para um formato intermediário, seguida da mesma detecção determinística.
- Serviço externo de extração de documento, seguido da mesma detecção determinística.
- Modelo de linguagem lendo o arquivo para achar campos. Esta alternativa conflita com a regra de marcador explícito e com a proibição de a IA substituir a validação. Está listada para não reaparecer como atalho. Não é candidata aceitável para descobrir campos.
As alternativas 1, 2 e 3 continuam abertas. Nenhuma foi escolhida. Claude permanece na stack para capacidades de IA que venham a ser aprovadas; não é o motor de marcadores.
Critérios para sair de Proposed
- Fidelidade dos marcadores em PDF, PPTX e DOCX reais, inclusive repetidos e partidos por formatação.
- O que acontece com arquivo sem marcador, arquivo protegido e extração incompleta. O último ponto também depende de P-006.
- Isolamento do processo que abre o arquivo, tempo máximo e falha sem criar rascunho de modelo. O limite numérico continua em P-006 e P-012.
- O workspace só lê o próprio arquivo.
Impacto no código desta fase
TemplateIngestionService devolve blocked / P-006 enquanto a política de arquivo não existir, e blocked / P-010 mesmo que um teste marque a política como aprovada. Não há adapter que leia bytes.
Impacto no prompt 02
Pode existir coluna ou objeto para source_file_ref, normalized_template e analysis_json. O conteúdo desses JSON não fica preso a um motor. Não há worker de conversão nesta fase nem na migration.
O que este ADR não decide
Tamanho máximo, antivírus, sandbox e extração parcial continuam no ADR-004.