docs: tarefas abertas reunidas em tasks/tasks.md

This commit is contained in:
2026-10-01 09:06:11 +02:00
parent 2667af317b
commit ff7dc3cf3f
4 changed files with 103 additions and 32 deletions
+5 -14
View File
@@ -244,7 +244,8 @@ brasiliano/
README.md este arquivo README.md este arquivo
tasks/ retomada de sessão e plano de trabalho tasks/ retomada de sessão e plano de trabalho
PLANO.md estado atual, achados, runbook (comece por aqui) 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) PROMPT_TERMINAL.md runbook original (parcialmente superado, ver PLANO.md)
pipeline/ scripts ativos + estado em disco (catálogo, .sqlite, .log, .tmp/, credenciais) pipeline/ scripts ativos + estado em disco (catálogo, .sqlite, .log, .tmp/, credenciais)
coletor.js Fase 1 — metadados, console do navegador coletor.js Fase 1 — metadados, console do navegador
@@ -293,19 +294,9 @@ brasiliano/
## Pendências ## Pendências
Lista completa e com contexto em [`tasks/TODO.md`](tasks/TODO.md). As principais: Todas as tarefas abertas, organizadas por área (descrição NOBRADE, mural,
acervo no bucket) e por quem destrava cada uma, estão em
1. **69 itens sem preservação** ([`errors.md`](errors.md)) — depende da origem [`tasks/tasks.md`](tasks/tasks.md).
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.
## Direitos ## Direitos
+2 -1
View File
@@ -397,7 +397,8 @@ Sem os dois é pasta de imagens, não arquivo.
finalizado e reenviado em 2026-09-30. finalizado e reenviado em 2026-09-30.
6. Os 69 itens sem preservação dependem da origem voltar a servir o 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. 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 ## 8. Direitos
+2 -17
View File
@@ -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 > 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 > das sessões, está em [`tasks/done/`](done/); a última versão completa deste
@@ -8,22 +8,7 @@
## Pendente ## Pendente
### Acervo no bucket Movido para [`tasks.md`](tasks.md), a lista única de tarefas abertas do projeto.
- [ ] **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.
## Notas técnicas úteis pra retomar ## Notas técnicas úteis pra retomar
+94
View File
@@ -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.