From ff7dc3cf3fecc3d03d3648679510979533d1aa30 Mon Sep 17 00:00:00 2001 From: rafapolo Date: Thu, 1 Oct 2026 09:06:11 +0200 Subject: [PATCH] docs: tarefas abertas reunidas em tasks/tasks.md --- README.md | 19 +++------- tasks/PLANO.md | 3 +- tasks/TODO.md | 19 ++-------- tasks/tasks.md | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 103 insertions(+), 32 deletions(-) create mode 100644 tasks/tasks.md diff --git a/README.md b/README.md index f5a65ff..9a3e249 100644 --- a/README.md +++ b/README.md @@ -244,7 +244,8 @@ brasiliano/ README.md este arquivo tasks/ retomada de sessão e plano de trabalho PLANO.md estado atual, achados, runbook (comece por aqui) - TODO.md lista de trabalho da sessão corrente + tasks.md todas as tarefas abertas, numa lista só + TODO.md notas técnicas para retomar o trabalho PROMPT_TERMINAL.md runbook original (parcialmente superado, ver PLANO.md) pipeline/ scripts ativos + estado em disco (catálogo, .sqlite, .log, .tmp/, credenciais) coletor.js Fase 1 — metadados, console do navegador @@ -293,19 +294,9 @@ brasiliano/ ## Pendências -Lista completa e com contexto em [`tasks/TODO.md`](tasks/TODO.md). As principais: - -1. **69 itens sem preservação** ([`errors.md`](errors.md)) — depende da origem - voltar a servir esses bitstreams; retomar com `FALTA3.retomar()` na aba. -2. **30 bitstreams `extra_seqN`** apagados pelo `subidor.py` antigo (que - confundia TIFF com texto de licença) precisam ser enumerados item a item - com `reparo-multibitstream.js` antes de rebaixar. -3. **30 objetos `(N)` com tamanho diferente do gêmeo** — não são duplicata, - são versões distintas; precisam de conferência individual. -4. **Reconciliar 13.058 × 13.060** — o MANIFEST fala em 13.058 itens reais e o - catálogo tem 13.060 handles distintos; a diferença nunca foi explicada. -5. **PDFs de álbum** no objdigital são objetos distintos e precisam de decisão - própria — o de 71,9 MB do item 14582 provavelmente não é caso isolado. +Todas as tarefas abertas, organizadas por área (descrição NOBRADE, mural, +acervo no bucket) e por quem destrava cada uma, estão em +[`tasks/tasks.md`](tasks/tasks.md). ## Direitos diff --git a/tasks/PLANO.md b/tasks/PLANO.md index f1da495..1f9501e 100644 --- a/tasks/PLANO.md +++ b/tasks/PLANO.md @@ -397,7 +397,8 @@ Sem os dois é pasta de imagens, não arquivo. finalizado e reenviado em 2026-09-30. 6. Os 69 itens sem preservação dependem da origem voltar a servir o bitstream (`errors.md`). Não há ação possível do nosso lado. -7. O que falta da descrição e do mural está em §9 (0.2, 7.3, 7.4). +7. O que falta da descrição e do mural está em §9 (0.2, 7.4). Lista única de + tarefas abertas: [`tasks.md`](tasks.md). ## 8. Direitos diff --git a/tasks/TODO.md b/tasks/TODO.md index 069ae80..2996b22 100644 --- a/tasks/TODO.md +++ b/tasks/TODO.md @@ -1,4 +1,4 @@ -# TODO — Brasiliana → S3 +# TODO — notas técnicas (Brasiliana → S3) > Só o que está **aberto**. O que foi concluído, com os achados e o histórico > das sessões, está em [`tasks/done/`](done/); a última versão completa deste @@ -8,22 +8,7 @@ ## Pendente -### Acervo no bucket -- [ ] **Rebaixar os 69 itens sem preservação** (achados 2.25–2.27): a origem responde HTTP 500 ao bitstream; todos têm miniatura. Quando a origem se recuperar, basta um `FALTA3.retomar()`/`F5.iniciar()` na aba do navegador (o que já baixou fica marcado em `bras_faltantes_v3`). Lista em `errors.md`. -- [ ] **30 arquivos `extra_seqN` apagados pelo `subidor.py` antigo** (achado 2.19): os 8 itens principais já têm preservação de novo, mas estes 30 extras (vários TIFF) não aparecem no ledger. Lista com URL em `pipeline/apagados-pelo-subidor-antigo.jsonl`. Precisa da aba do navegador. -- [ ] **`subidor.py` antigo: aposentar ou corrigir a regra de assinatura** antes de qualquer uso futuro — do jeito que está, apaga TIFF. O que roda hoje é o `subidor-paralelo.py`. -- [ ] **30 objetos `(N)` com tamanho diferente do gêmeo** (achado 2.20) — conferência individual, não dá pra automatizar com segurança. -- [ ] **43 objetos `(N)` que são o único arquivo do item** (achado 2.20) — renomear tirando o sufixo, pra o nome não mentir sobre haver um original ao lado. -- [ ] **Baixar os 348 legados recuperáveis pelo endereço novo** (achado 2.28) — atualizar antes o `baixador.py` para `https://objdigital.bn.br/objdigital2/acervo_digital/`. -- [ ] **Decidir o que fazer com as 66 páginas HTML de visualizador** (25 já em `legado/` + 41 no endereço novo; achado 2.28): apagar do bucket e do ledger (não são imagem), ou montar a imagem a partir dos tiles Deep Zoom quando o objdigital voltar. Todos os 25 itens já têm preservação. -- [ ] **Confirmar no bucket que a contagem de itens/checksums bate** com os itens reais esperados. -- [ ] **Reconciliar 13.058 vs 13.060** — o MANIFEST fala em 13.058 itens reais, o `catalogo.jsonl` tem 13.060 handles distintos. Diferença de 2 nunca explicada. -- [ ] **Crawl da Fase 1 pode ter mais buracos** (achado 2.10 do PLANO.md): 2 itens reais (`1799`, `4798`) só foram achados porque o WordPress os citava. Não existe verificação exaustiva de que `browse?type=title` pegou 100% de cada comunidade. -- [ ] **`dc.rights` ausente em 5.833 itens (44,7%)** — característica real da fonte, não bug. Só precisa ficar documentado no MANIFEST final. - -### Mural -- [ ] **`.git` do `rafapolo/xyz` está em 2,5 GB** e cada publicação do atlas `.webp` soma ~51 MB permanentes (binário não faz delta). Se o atlas for republicado com frequência, tirar os `.webp` do git — LFS, ou servir do próprio bucket. (Publicar só `index.html` + `atlas-map.json`, como em 30/09, não pesa.) -- [ ] **Encolher o `atlas-map.json` com dicionário** (achado 3.2) — hoje 10,4 MB com os campos NOBRADE. Só vale se o `JSON.parse` no celular virar problema medido. +Movido para [`tasks.md`](tasks.md), a lista única de tarefas abertas do projeto. ## Notas técnicas úteis pra retomar diff --git a/tasks/tasks.md b/tasks/tasks.md new file mode 100644 index 0000000..df362a3 --- /dev/null +++ b/tasks/tasks.md @@ -0,0 +1,94 @@ +# Tarefas abertas + +Lista única do que falta fazer no projeto, atualizada em 2026-10-01. O que +está concluído fica no histórico: [`PLANO.md`](PLANO.md) (estado e §9 da +descrição NOBRADE), [`done/`](done/) (sessões anteriores, com os achados +citados abaixo) e [`../CONARQ.md`](../CONARQ.md) (decisões da norma). + +Legenda de quem destrava cada uma: **você** = decisão ou ação do usuário · +**aba** = precisa do Chrome com sessão real na Brasiliana · **servidor** = +roda no `finland` · **local** = roda nesta máquina. + +## 1. Descrição arquivística (NOBRADE) + +- [ ] **Enviar o pedido de código de entidade ao CONARQ** — *você*. + Rascunho com os 17 campos do formulário CODEARQ em + [`descricao/pedido-codigo-conarq.md`](../descricao/pedido-codigo-conarq.md); + os dados do requerente estão em `[[…]]`. Um acervo só de cópias pode não se + enquadrar no cadastro (ressalva anotada no rascunho). +- [ ] **Trocar o código provisório quando o CONARQ responder** — *local*. + `ENTIDADE` (`RJXYZ`) e `ENTIDADE_NOME` em `pipeline/nobrade/config.py`; depois + `cd pipeline && python3 -m nobrade && python3 -m nobrade.mural`, subir + `descricao/` de novo e republicar o mural (ver §2). +- [ ] **Revisar as 813 datas atribuídas pelo arquivista** — *você*. + `descricao/revisao/datas.tsv`, qualidade "atribuída pelo arquivista". A + maioria vem do período de atividade do autor ou do miolo das datas da série. +- [ ] **Revisar as 115 séries** — *você*. `descricao/revisao/series.tsv`. + Correções vão em `pipeline/nobrade/ajustes/series.tsv` (colunas + `instituicao`, `dc_source`, `titulo`) e prevalecem na próxima geração. + Atenção ao Museu Aeroespacial: 1.050 dos 1.143 itens caíram em Avulsos, + porque o `dc.source` dele só traz caixa/negativo. +- [ ] **Controlar o vocabulário dos assuntos** (8.1) — *você + local*. Hoje + segue o da origem; a norma pede vocabulário controlado com fonte validadora + (ex.: termos da Biblioteca Nacional). Baixa prioridade. + +> **Regra:** toda vez que `python -m nobrade` rodar, `descricao/` precisa +> subir de novo para `s3://brasiliana/descricao/` (com `manifest-sha256.txt`), +> senão o bucket deixa de bater com o repositório. + +## 2. Mural (`web/wall.html`) + +- [ ] **Gerar `derivados/grande/` para o zoom do visor** — *você* autoriza, + depois *servidor*. Hoje o visor mostra a cópia `medio/` de **640 px**, que + já aparece ampliada numa tela comum. Pelo CONARQ (Res. 31/2010, + *Recomendações para digitalização*) isto é uma **Derivada de Acesso** (JPEG + ou PNG, formato aberto, "em variados tamanhos de acordo com a banda"); a + `thumb256/` é a **Derivada de Navegação** e a preservação faz o papel de + **Matriz**. A norma não fixa pixels: os 2.560 px são escolha nossa, pela tela. Plano: no `finland`, para cada + `itens/*/preservacao/*`, `vipsthumbnail --size 2560` em WebP e subir em + `derivados/grande/` (~13 mil arquivos, ~5 GB, algumas horas, tráfego + intra-Hetzner). Ao terminar, pôr `"grande": true` no `atlas-map.json` e + republicar; o visor já troca a imagem sem pulo. +- [ ] **Decidir se regera `medio/` com 1.024 px** na mesma passada — *você*. + Melhora a primeira impressão mesmo sem zoom, com uns 30% a mais de peso. +- [ ] **`.git` do `rafapolo/xyz` em 2,5 GB** — *você*. Cada republicação dos + `.webp` do atlas soma ~51 MB permanentes. Se o atlas for regerado com + frequência, tirar os `.webp` do git (LFS ou servir do bucket). Publicar só + `index.html` + `atlas-map.json` não pesa. +- [ ] **Encolher o `atlas-map.json` com dicionário** (achado 3.2) — *local*. + Hoje 10,4 MB com os campos NOBRADE. Só vale se o `JSON.parse` no celular + virar problema medido. +- [ ] **Integrar o branch `feat/nobrade` ao `main`** — *você*. O mural + publicado já é o deste branch. + +## 3. Acervo no bucket + +- [ ] **Rebaixar os 69 itens sem preservação** — *aba*, quando a origem + voltar. A origem responde HTTP 500 ao bitstream (achados 2.25–2.27); todos + têm miniatura. `FALTA3.retomar()`/`F5.iniciar()` na aba basta; o progresso + fica em `bras_faltantes_v3`. Lista em [`../errors.md`](../errors.md). +- [ ] **30 arquivos `extra_seqN` apagados pelo `subidor.py` antigo** + (achado 2.19) — *aba*. Os 8 itens principais já têm preservação de novo; + estes extras (vários TIFF) não estão no ledger. Lista com URL em + `pipeline/apagados-pelo-subidor-antigo.jsonl`; enumerar item a item com + `reparo-multibitstream.js` antes de rebaixar. +- [ ] **Baixar os 348 legados recuperáveis pelo endereço novo** (achado + 2.28) — *local*. Antes, apontar o `baixador.py` para + `https://objdigital.bn.br/objdigital2/acervo_digital/`. +- [ ] **Decidir o destino das 66 páginas HTML de visualizador** (achado 2.28) + — *você*. 25 já estão em `legado/` e 41 no endereço novo. Apagar do bucket e + do ledger (não são imagem), ou montar a imagem a partir dos tiles Deep Zoom + quando o objdigital voltar. Os 25 itens já têm preservação. +- [ ] **30 objetos `(N)` com tamanho diferente do gêmeo** (achado 2.20) — + *você*. São versões distintas, não duplicatas; conferência individual. +- [ ] **43 objetos `(N)` que são o único arquivo do item** (achado 2.20) — + *local*. Renomear tirando o sufixo, para o nome não sugerir um original ao + lado. +- [ ] **Conferir os checksums do bucket** — *servidor*. As contagens e os + tamanhos já batem com o ledger (2026-09-30); falta recalcular o SHA-256 de + uma amostra (ou de tudo, no `finland`) contra os `manifest-sha256.txt`. +- [ ] **Aposentar ou corrigir o `subidor.py` antigo** — *local*. A regra de + assinatura dele apaga TIFF; o que roda hoje é o `subidor-paralelo.py`. +- [ ] **Auditar se o crawl da Fase 1 deixou buracos** (achado 2.10) — sem + método barato ainda. Dois itens (`1799`, `4798`) só apareceram porque o blog + os citava.