41 lines
2.3 KiB
Markdown
41 lines
2.3 KiB
Markdown
# 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
|
|
|
|
1. Bibliotecas locais por formato, com uma etapa posterior e determinística que só aceita `[campo]`.
|
|
2. Conversão por processo externo (por exemplo LibreOffice) para um formato intermediário, seguida da mesma detecção determinística.
|
|
3. Serviço externo de extração de documento, seguido da mesma detecção determinística.
|
|
4. 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.
|