# Preparar e importar revisões no SuperAnki

O padrão obrigatório para novas importações de revisões/resumos é [PROMPT_CARDS_V3.md](PROMPT_CARDS_V3.md). O agente que recebe o pedido deve executar extração, autoria, supervisão e importação local como partes do mesmo trabalho. Não é necessário o usuário repetir o prompt a cada caderno.

O Python realiza extração, verificações estruturais e geração dos arquivos. A leitura dos prints, a elaboração e a supervisão semântica são feitas pelo agente durante o pedido. O script e o botão Importar do navegador não chamam um modelo automaticamente. O registro editorial não é uma validação semântica feita pelo programa.

Para refazer apenas perguntas existentes, use [EXECUTAR_REPROCESSAMENTO_V3.md](EXECUTAR_REPROCESSAMENTO_V3.md). Esse modo preserva os dados e edita somente `q`, sem reimportar PDFs.

## 1. Delimitar fontes, destino e checkpoint

Use o PDF publicado da revisão e identifique coleção, cargo, matéria e caderno pelos arquivos e pelo pedido. Distinga B02/TI e A01. Organize o menu com Português, Matemática, Legislação Institucional e depois blocos específicos em ordem numérica, sem criar cadernos inexistentes.

Confira o Git e preserve o estado anterior em `checkpoint/antes-<lote>`. Trabalhe em `checkpoint/<lote>` com nomes únicos. Preserve alterações e dados de usuário existentes. A importação autorizada continua até a validação local, sem uma nova confirmação genérica por caderno. Um pedido apenas de amostra ou comparação mantém esse limite.

Crie uma pasta `relatorios/importacoes/<data-hora>-<lote>/` para manifesto, extração, pareceres V3 e conferência final. Registre PDF, hash e destino. Em uma reedição de conteúdo, compare os IDs existentes com os extraídos antes de importar: mudanças de paginação podem mudar as chaves. Resolva a associação dos itens antes de substituir um caderno com progresso.

## 2. Extrair os trechos

No manifesto JSON, indique o PDF, a chave de matéria em `bloco` e o nome apresentado no menu em `rotulo`. Exemplo de estrutura, com caminhos que devem ser substituídos por fontes reais:

```json
[{"pdf": "/caminho/ENG-05_REVISAO_LITE.pdf", "bloco": "engenharia", "rotulo": "Bloco 01 — Engenharia de Software"}]
```

Com Python, PyMuPDF e Pillow instalados, execute a partir da raiz do projeto:

```sh
python3 scripts/importar_revisoes.py manifesto.json --extrair trechos.json
```

O dossiê traz as chaves, o texto e a localização dos trechos. Ele não substitui a leitura visual nem garante a extração das etiquetas de Bloom. Abra a página e o recorte, confira figuras, tabelas e continuações. Consulte as questões e resoluções relacionadas no PDF e os mapas da mesma edição quando disponíveis.

## 3. Aplicar o prompt V3 e supervisionar

Leia integralmente `PROMPT_CARDS_V3.md`. Para cada trecho:

- Identifique o conhecimento central e as distinções necessárias às questões vinculadas.
- Confira Bloom do trecho e das questões separadamente, com a operação concreta e o limite do cargo.
- Elabore a pergunta curta e aberta, com contexto suficiente, sem entregar a resposta. Preserve a resposta em print.
- Faça a segunda passagem de supervisão de fidelidade, cobertura, operação, clareza e ausência de pistas indevidas.
- Salve o registro editorial por ID/chave, com fontes, decisão e pendências. Consulte os exemplos de calibração antes de resolver casos ambíguos.

Revisar todo o lote é diferente de conferir uma amostra. Um trecho sem etiqueta Bloom pode ser registrado como ausente e ter uma pergunta aprovada. Resposta cortada, referência inconsistente ou conhecimento essencial ausente exigem correção antes de aprovar o par. Se não for possível resolver um caderno, mantenha-o pendente e continue os cadernos independentes, sem publicar um inventário parcial como completo.

## 4. Montar o manifesto e importar

Preencha `perguntas` com um objeto que liga cada `key` real do dossiê à pergunta aprovada. O registro editorial V3 fica em arquivo separado. O script consome as perguntas finais, não os pareceres.

```json
{
  "pdf": "/caminho/ENG-05_REVISAO_LITE.pdf",
  "bloco": "engenharia",
  "rotulo": "Bloco 01 — Engenharia de Software",
  "perguntas": {"CHAVE_REAL_DO_DOSSIE": "Pergunta aberta revisada?"}
}
```

Inclua esse objeto na lista do manifesto. Use todas as chaves extraídas, sem marcadores ilustrativos. O importador verifica completude, texto mínimo, presença de interrogação e duplicatas. Uma pergunta pode terminar com uma instrução curta, como “Justifique sua escolha.” A correspondência semântica com o print é responsabilidade da supervisão V3.

```sh
python3 scripts/importar_revisoes.py manifesto.json
```

Preserve textos-base, figuras, alternativas, gabaritos e comentários do PDF. Confira todas as partes na ordem quando o enunciado ou comentário ocupa mais de um recorte. Uma lista de referências sem enunciado e gabarito permanece na revisão, sem gerar questões inventadas. As questões de prova são importadas separadamente dos flashcards, com os IDs de origem.

## 5. Conferir e concluir

Confira o inventário antes/depois, a existência dos recortes e a correspondência entre chaves e perguntas aprovadas. Recarregue a cópia local e verifique Cards, Revisões e Questões, os filtros e a hierarquia do caderno. Preserve os IDs de itens existentes e as marcações do usuário. Não use limpeza do armazenamento do navegador como etapa de importação.

Revise o diff, salve o checkpoint concluído e informe cadernos/cards/questões incorporados, pendências, branch, commit, rollback e URL para teste. O destino padrão desta cópia é local. A publicação online depende do destino e da autorização definidos pelo usuário.

## Manutenção de metadados

Os links internos e externos entram na revisão junto com as páginas. Para atualizar apenas links de revisões já renderizadas:

```sh
python3 scripts/importar_revisoes.py manifesto.json --atualizar-links
```

O ano de prova vem da linha de origem da questão. Para atualizar apenas os anos:

```sh
python3 scripts/importar_revisoes.py manifesto.json --atualizar-anos
```

Essas duas operações não reescrevem perguntas e não exigem nova autoria V3 se o conteúdo do card não mudou.
