From 30124db224432afae0c9ae19c1383add219659d8 Mon Sep 17 00:00:00 2001 From: Francisco Solla Date: Thu, 17 Sep 2026 17:44:18 -0300 Subject: [PATCH] =?UTF-8?q?docs(C187,C188):=20planos=20+=20designs=20hi-fi?= =?UTF-8?q?=20(dossi=C3=AA=20institui=C3=A7=C3=A3o;=20sem=20truncamento)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...e-solla-instituicao-boletim-ui-design.html | 577 ++++++ .../dossie-solla-instituicao-ui-design.html | 1728 +++++++++++++++++ docs/plans/dossie-solla-instituicao.md | 132 ++ docs/plans/relatorios-sem-truncamento.md | 118 ++ 4 files changed, 2555 insertions(+) create mode 100644 docs/plans/dossie-solla-instituicao-boletim-ui-design.html create mode 100644 docs/plans/dossie-solla-instituicao-ui-design.html create mode 100644 docs/plans/dossie-solla-instituicao.md create mode 100644 docs/plans/relatorios-sem-truncamento.md diff --git a/docs/plans/dossie-solla-instituicao-boletim-ui-design.html b/docs/plans/dossie-solla-instituicao-boletim-ui-design.html new file mode 100644 index 00000000..a4b8a096 --- /dev/null +++ b/docs/plans/dossie-solla-instituicao-boletim-ui-design.html @@ -0,0 +1,577 @@ + + + + + + + Design — Boletim modelo do dossiê Solla por instituição + + + +
+

+ Gate visual · Impeccable C +

+

+ Boletim modelo por instituição — uma página A4 +

+

+ Duas variações da mesma folha: composição completa e estado honesto com poucos fatos + documentados. Cada quadro abaixo é uma alternativa imprimível de uma página, não uma sequência. +

+
+ A4 · 210 × 297 mm + até 6 destaques + até 14 itens em “E mais” + sem fontes · sem CTA + fase por valor + setor/rede não somam + sem % estadual absoluto +
+
+ +
+ +
+

+ Cena 01 · Boletim completo · densidade máxima permitida +

+
+
+
+

Boletim informativo · atuação pública

+

Instituição Exemplo

+
+ Universidade + Federal + Abrangência BA +
+
+ Modelo — insumo interno +
+ +
+ DEFESO 2026 · material em preparação · não publicar sem revisão editorial e jurídica + sem CTA · sem propaganda +
+ +
+
+ +

+ O que Jorge Solla fez pela e na + Instituição Exemplo +

+

+ Ações, recursos e articulações explicados de forma direta — somente o que já foi + documentado no dossiê institucional. +

+
+
+ +

NEEDS ASSET · foto real

+

Solla na instituição ou na ação citada
origem, autoria e licença

+
+
+ +
+
+
+ +

Resultados em leitura rápida

+
+

cada número mantém sua fase e seu alcance

+
+
+
+

Educação · instituição

+

R$ 0,0 mi

+

para fortalecer a estrutura

+

Fase: empenhado. Não apresentar como valor pago.

+
+
+

Atuação · instituição

+

00 ações

+

com resultado documentado

+

Substituir pela contagem e pelo resultado confirmados.

+
+
+

Formação · setor

+

00 pessoas

+

alcançadas pela iniciativa

+

O setor aparece separado da instituição.

+
+
+

Direitos · rede

+

00 iniciativas

+

em defesa da rede relacionada

+

Não atribuir o alcance compartilhado só à instituição.

+
+
+

Pesquisa · instituição

+

00 projetos

+

apoiados com papel comprovado

+

Dizer o que foi feito, sem ampliar autoria ou efeito.

+
+
+

Reconhecimento · rede

+

AAAA

+

registro de reconhecimento

+

Usar o ano e o nome oficial somente após conferência.

+
+
+
+ +
+
+

Uma trajetória de compromisso com o serviço público

+

quatro momentos · linguagem direta

+
+
+
+

1999–2002

+

Gestão municipal da saúde

+
+
+

2003–2005

+

Atenção à saúde no governo federal

+
+
+

2007–2014

+

Secretaria da Saúde da Bahia

+
+
+

2015–2027

+

Atuação na Câmara Federal

+
+
+
+ +
+
+
+
+ +

Outras ações confirmadas

+
+

até 14 · sem completar por inferência

+
+
+

Estrutura: melhoria documentada na instituição.

+

Ensino: apoio comprovado a uma atividade.

+

Pesquisa: projeto e papel exercido.

+

Extensão: público diretamente alcançado.

+

Direitos: ação institucional registrada.

+

Orçamento: valor com fase identificada.

+

Audiência: pauta e encaminhamento concreto.

+

Parceria: objeto e resultado da cooperação.

+

Setor: alcance compartilhado, sem somar.

+

Rede: entidades envolvidas e resultado.

+

Proposição: papel parlamentar comprovado.

+

Relatoria: etapa e efeito documentados.

+

Homenagem: nome oficial e ano.

+

Articulação: entrega distinta do anúncio.

+
+
+ +
+ +
+
+
+

Conteúdo selecionado do dossiê institucional.

+

Controle editorial: fase acompanha cada valor · instituição, setor e rede não são somados · sem percentual estadual absoluto.

+
+

MODELO · INSUMO INTERNO
A4 · página 1/1

+
+
+
+
+ + +
+

+ Cena 02 · Variação de lacuna · poucos fatos documentados +

+
+
+
+

Boletim informativo · atuação pública

+

Instituição Exemplo

+
+ Entidade de classe + Não governamental + Abrangência nacional +
+
+ Modelo — insumo interno +
+ +
+ DEFESO 2026 · material em preparação · não publicar sem revisão editorial e jurídica + sem CTA · sem propaganda +
+ +
+
+ +

O que Jorge Solla fez pela e na Instituição Exemplo

+

Esta versão tem poucos registros confirmados. Em vez de preencher espaço, mostra só os fatos que o dossiê sustenta.

+
+
+ +

NEEDS ASSET · foto ou clipping

+

somente registro relacionado ao fato
origem, autoria e licença

+
+
+ +
+
+
+ +

Dois fatos, sem enchimento

+
+

não criar cards vazios para chegar a seis

+
+
+
+

Atuação · instituição

+

00 ações

+

com resultado documentado

+

Substituir pela contagem confirmada e explicar o resultado em uma frase.

+
+
+

Direitos · setor

+

AAAA

+

ano de uma ação confirmada

+

O alcance setorial permanece separado da instituição.

+
+
+
+ +
+
+

Uma trajetória de compromisso com o serviço público

+

contexto de carreira · não substitui fato institucional

+
+
+

1999–2002

Gestão municipal da saúde

+

2003–2005

Atenção à saúde no governo federal

+

2007–2014

Secretaria da Saúde da Bahia

+

2015–2027

Atuação na Câmara Federal

+
+
+ +
+
+ +

Outros registros confirmados

+
+

Audiência: pauta e encaminhamento documentados.

+

Articulação: participantes e resultado confirmado.

+

Setor: alcance compartilhado, sem somar.

+

Registro: nome oficial e ano conferidos.

+
+
+ +
+ +
+
+ +

Se novos fatos forem documentados, eles entram por relevância — até seis destaques e até quatorze itens. A ausência nunca vira número zero, percentual ou afirmação genérica.

+
+
+

NEEDS ASSET · selo
marca autorizada da instituição
arquivo vetorial

+
+
+ +
+
+
+

Conteúdo selecionado do dossiê institucional.

+

Controle editorial: fase acompanha cada valor · instituição, setor e rede não são somados · sem percentual estadual absoluto.

+
+

MODELO · INSUMO INTERNO
A4 · página 1/1

+
+
+
+
+
+ + diff --git a/docs/plans/dossie-solla-instituicao-ui-design.html b/docs/plans/dossie-solla-instituicao-ui-design.html new file mode 100644 index 00000000..f26ac426 --- /dev/null +++ b/docs/plans/dossie-solla-instituicao-ui-design.html @@ -0,0 +1,1728 @@ + + + + + + + Design — Dossiê Solla por instituição + + + +
+

+ Gate visual · Impeccable C +

+

+ Dossiê Solla por instituição — relatório A4 +

+

+ Documento interno para preparar agendas institucionais com lastro. Oito páginas-base e uma + variante de lacuna explícita; conteúdo e valores são placeholders deliberados. +

+
+ A4 · 210 × 297 mm + corpo 10,5 pt + instituição ≠ setor ≠ rede + fontes item a item + sem CTA de campanha +
+
+ +
+ +
+

+ Cena 01 · Capa / identificação institucional +

+
+
+
+
+

Núcleo de comunicação · pesquisa documental

+

+ Série institucional · agenda com lastro +

+
+
+ INSUMO INTERNO — defeso 2026
Não circular · não publicar +
+
+ +
+

Dossiê de atuação pública

+

+ Dossiê Solla —
Instituição Exemplo +

+

+ O que Jorge Solla fez por, na e com a instituição ao longo da carreira +

+
+ +
+
Identificação
+
+ Universidade + Federal BA +
+
Data de geração
+
DD de mês de AAAA · HHhMM
+
Escopo e versão
+
+ Eras A / B / C · instituição, setor e rede separados · versão 01 +
+
+ +
+
+

+ Como usar +

+

+ Localize o vínculo ou a entrega, confira fonte, data, fase e abrangência. Transforme + toda lacuna em tarefa de apuração. Este arquivo não é fala pronta nem peça pública. +

+
+
+ NEEDS ASSET
selo da instituição
uso autorizado e origem +
+
+ +
+
+
+

+ Escopo: carreira técnica e gestão pública até 2006 · SESAB 2007–2014 · Câmara dos + Deputados 2015–2027. Sem fonte, não entra como entrega. +

+

+ Documento de trabalho
versão 01 +

+
+
+
+
+ + +
+

+ Cena 02 · Página 1 — resumo de uma olhada +

+
+
+
+

Dossiê institucional · Instituição Exemplo

+

+ Resumo de uma olhada +

+

+ Universidade · Federal · BA · informação datada e conferível +

+
+
+

INSUMO INTERNO — defeso 2026

+

Gerado em DD/MM/AAAA

+

pág. 1/7

+
+
+ +
+
+

Identificação

+
+
Nome
+
Instituição Exemplo
+
Tipo
+
Universidade
+
Esfera
+
Federal
+
Alcance
+
BA
+
Alias
+
Sigla Exemplo
+
+
+
+

01 · vínculo com a instituição

+

Linha do tempo documentada

+
+
+

AAAA–AAAA

+

+ Vínculo acadêmico de exemplo +

+

Fonte oficial · data

+
+
+

AAAA

+

Articulação registrada

+

Documento · data

+
+
+

AAAA

+

+ Reconhecimento institucional +

+

Ato primário · data

+
+
+
+
+ +
+
+
+

02 · destaques com lastro

+

+ Principais entregas localizadas +

+
+

+ Valores ilustram o formato · não são fatos +

+
+
+
+
+ instituição +

Era C · AAAA

+
+
+

Objeto documentado da Instituição Exemplo

+

+ Finalidade e autoria só entram após conferência da fonte primária. +

+
+
+

R$ 0,0 mi

+ empenhado + +
+
+
+
+ setor +

Era B · AAAA

+
+
+

Ação de exemplo no setor relacionado

+

+ Alcance documentado, sem atribuição exclusiva à instituição. +

+
+
+

R$ 0,0 mi

+ liquidado + +
+
+
+
+ rede +

Era A · AAAA

+
+
+

Articulação de exemplo com rede correlata

+

+ A instituição aparece no contexto, não como beneficiária única. +

+
+
+

R$ 0,0 mi

+ pago + +
+
+
+

+ Guarda de leitura: autorizado ≠ empenhado ≠ liquidado ≠ pago. Restos a pagar também + aparecem como fase própria. +

+
+ +
+
+

Gancho para a agenda

+

+ Ponto de conversa: vínculo institucional documentado + entrega com + estágio confirmado. Abrir a fonte antes de adaptar para fala. +

+
+
+

O que falta

+
    +
  • Confirmar fase atual do valor.
  • +
  • Recuperar ato primário do vínculo.
  • +
  • Delimitar alcance do item de rede.
  • +
+

+ Ausência é resultado: não completar por inferência. +

+
+
+ +
+ Dossiê Solla por instituição · Instituição Exemplo · INSUMO INTERNO — defeso + 2026pág. 1/7 +
+
+
+ + +
+

+ Cena 03 · Era A — vínculo técnico e formação +

+
+
+
+

Dossiê institucional · Instituição Exemplo

+

+ Era A · Formação e gestão pública +

+

+ Até 2006 · vínculos, pesquisa, gestão municipal e federal +

+
+
+

INSUMO INTERNO — defeso 2026

+

Gerado em DD/MM/AAAA

+

pág. 2/7

+
+
+
+
+

Recorte e método

+

+ Registros anteriores a 2007 que citem nominalmente a instituição ou comprovem + vínculo. Cargo geral não prova ação institucional. +

+
+ +
+
+
+
+

Entregas localizadas

+

Objeto, valor, fase e alcance

+
+

Placeholders de estrutura

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Entregas da Era A +
ObjetoValorAnoFaseAbrangênciaFonte
Objeto documentado de exemploR$ 0,0 miAAAAautorizadoinstituição + + fonte · DD/MM +
Ação técnica com setor relacionadoR$ —AAAAnão informadosetor + + fonte · DD/MM +
+

+ Sem ato contemporâneo, registrar como lacuna — nunca atribuir pela plausibilidade do + cargo. +

+
+
+

Atuação / vínculo registrado

+

Papéis com evidência visível

+
+
+
+ instituiçãoAAAA–AAAA +
+

+ Professor ou pesquisador — exemplo de preenchimento +

+

+ Descrever unidade, papel e período apenas como constam no registro. +

+ + fonte · data +
+
+
+ redeAAAA +
+

+ Participação em rede acadêmica — exemplo +

+

+ Nomear a rede e explicar por que ela não equivale à instituição. +

+ + fonte · data +
+
+
+ +
+ Dossiê institucional · Era A · INSUMO INTERNO — defeso 2026pág. 2/7 +
+
+
+ +
+

+ Cena 04 · Era B — gestão estadual +

+
+
+
+

Dossiê institucional · Instituição Exemplo

+

+ Era B · Secretaria da Saúde da Bahia +

+

+ 2007–2014 · parceria, gestão e articulação institucional +

+
+
+

INSUMO INTERNO — defeso 2026

+

Gerado em DD/MM/AAAA

+

pág. 3/7

+
+
+
+
+

Recorte e método

+

+ Ações da gestão estadual com menção nominal à instituição, ao setor ou à rede. + Diferenciar decisão, parceria anunciada e entrega executada. +

+
+ +
+
+

Entregas localizadas

+

Objetos da era com fase explícita

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Entregas da Era B +
ObjetoValorAnoFaseAbrangênciaFonte
Parceria institucional de exemploR$ 0,0 miAAAAliquidadoinstituição + + fonte · DD/MM +
Programa setorial de exemploR$ 0,0 miAAAApagosetor + + fonte · DD/MM +
Cooperação em rede de exemploR$ —AAAAnão informadorede + + fonte · DD/MM +
+

+ Não converter anúncio, convênio ou liquidação em pagamento sem evidência da fase + correspondente. +

+
+
+

Atuação / vínculo registrado

+

Articulação e parceria documentadas

+
+
+
+ instituiçãoAAAA +
+

+ Articulação institucional de exemplo +

+

+ Registrar participantes, objeto e resultado sem inferir causalidade. +

+ + fonte · data +
+
+
+ setorAAAA +
+

Ação para o setor de exemplo

+

+ Explicar o alcance e por que não constitui entrega exclusiva à instituição. +

+ + fonte · data +
+
+
+ +
+ Dossiê institucional · Era B · INSUMO INTERNO — defeso 2026pág. 3/7 +
+
+
+ +
+

+ Cena 05 · Era C — mandato federal +

+
+
+
+

Dossiê institucional · Instituição Exemplo

+

+ Era C · Deputado Federal +

+

+ 2015–2027 · recursos, proposições, relatorias e articulação +

+
+
+

INSUMO INTERNO — defeso 2026

+

Gerado em DD/MM/AAAA

+

pág. 4/7

+
+
+
+
+

Recorte e método

+

+ Itens ligados nominalmente à instituição e registros temáticos cuja abrangência + esteja comprovada. Autoria de emenda e relatoria sempre checadas. +

+
+ +
+
+

Entregas localizadas

+

Recursos e ações quantificáveis

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Entregas da Era C +
ObjetoValorAnoFaseAbrangênciaFonte
Recurso institucional de exemploR$ 0,0 miAAAAempenhadoinstituição + + fonte · DD/MM +
Ação parlamentar setorialR$ 0,0 miAAAArestossetor + + fonte · DD/MM +
Projeto em rede de exemploR$ —AAAAnão informadorede + + fonte · DD/MM +
+

+ Autorizado, empenhado, liquidado, pago e restos não formam um total único. +

+
+
+

Atuação / vínculo registrado

+

Mandato, relatoria e articulação

+
+
+
+ instituiçãoCâmara · AAAA +
+

+ Relatoria ou proposição de exemplo +

+

+ A tramitação prova o papel exercido; não converter proposição em entrega + concluída. +

+ + fonte · data +
+
+
+ redeAgenda · AAAA +
+

+ Audiência ou articulação de exemplo +

+

+ Registrar pauta e participantes; resultado material fica separado. +

+ + fonte · data +
+
+
+ +
+ Dossiê institucional · Era C · INSUMO INTERNO — defeso 2026pág. 4/7 +
+
+
+ + +
+

+ Cena 06 · Abrangência — instituição × setor × rede +

+
+
+
+

Dossiê institucional · Instituição Exemplo

+

+ Abrangência: instituição × setor × rede +

+

+ Três recortes, três leituras, nenhuma soma combinada +

+
+
+

INSUMO INTERNO — defeso 2026

+

Gerado em DD/MM/AAAA

+

pág. 5/7

+
+
+
+
+ + + + +
+

+ Setor/rede não é a instituição. Não some os recortes. +

+

+ Uma política para uma categoria ou uma articulação com entidades correlatas pode + alcançar a instituição sem constituir entrega exclusiva para ela. +

+
+
+
+
+

Leitura lado a lado

+

O alcance acompanha cada evidência

+
+
+
+ instituiçãoDIRETO +
+

R$ 0,0 mi

+

exemplo · fase identificada

+
    +
  • + Objeto nomeia a Instituição Exemplo. + fonte +
  • +
  • + Vínculo registrado em unidade identificada. + fonte +
  • +
+
+
+
+ setorNÃO SOMAR +
+

R$ 0,0 mi

+

exemplo · alcance compartilhado

+
    +
  • + Ação para a área profissional relacionada. + fonte +
  • +
  • + Evidência cita o setor, não a entidade. + fonte +
  • +
+
+
+
+ redeNÃO SOMAR +
+

R$ 0,0 mi

+

exemplo · entidades correlatas

+
    +
  • + Rede parceira com vínculo documentado. + fonte +
  • +
  • + Instituição integra o contexto, não o total. + fonte +
  • +
+
+
+
+
+
+
+

Evidência de alcance

+

Por que cada item está neste recorte

+
+

Sem evidência, vira lacuna

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Itens de setor e rede com evidência de alcance +
ItemAbrangênciaEvidência de alcanceFonte
Ação setorial de exemplosetorDocumento nomeia a área, mas não individualiza a instituição.fonte · data
Articulação em rederedeA instituição consta como integrante entre outras entidades.fonte · data
Entrega institucionalinstituiçãoObjeto e destinatário aparecem nominalmente no ato.fonte · data
+
+
+
+

Gancho possível

+

+ Ângulo: partir do vínculo direto e explicar, em separado, como + setor e rede ampliam o contexto da agenda. +

+
+
+

Lacuna prioritária

+

+ Obter documento que individualize a Instituição Exemplo. Até lá, manter o item + apenas em setor/rede. +

+
+
+
+ Dossiê institucional · Abrangência · INSUMO INTERNO — defeso 2026pág. 5/7 +
+
+
+ + +
+

+ Cena 07 · Títulos, honrarias e vínculos +

+
+
+
+

Dossiê institucional · Instituição Exemplo

+

+ Títulos, honrarias e vínculos +

+

+ Reconhecimento não substitui entrega; vínculo não prova resultado +

+
+
+

INSUMO INTERNO — defeso 2026

+

Gerado em DD/MM/AAAA

+

pág. 6/7

+
+
+
+

Registros confirmados

+

Data, natureza e fonte primária

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Títulos, honrarias e vínculos por data e fonte +
DataNaturezaRegistroFonte
DD/MM/AAAAvínculo + Papel institucional de exemplo
Unidade e período conforme ato. +
+ Ato institucional · URL
consulta DD/MM/AAAA +
DD/MM/AAAAhonraria + Título honorífico de exemplo
Nome oficial, órgão concedente e motivação. +
+ Resolução ou diploma · URL
consulta DD/MM/AAAA +
DD/MM/AAAApesquisa + Atividade acadêmica de exemplo
Papel exato sem ampliar autoria ou duração. +
+ Repositório institucional · URL
consulta DD/MM/AAAA +
DD/MM/AAAAhomenagem + Homenagem registrada em sessão
Evento, papel e contexto documentados. +
+ Ata ou notícia oficial · URL
consulta DD/MM/AAAA +
+
+
+
+

Como ler

+
+
+

Vínculo documentado

+

+ Informa papel, unidade e período. Não autoriza atribuir toda ação posterior da + instituição. +

+
+
+

Honraria documentada

+

+ Registra reconhecimento e órgão concedente. Não vira prova de recurso ou + entrega. +

+
+
+
+
+ NEEDS ASSET
reprodução do ato,
diploma ou clipping
origem, autoria e licença +
+
+
+
+

Gancho para a agenda

+

+ Mencionar um vínculo só na formulação que a fonte sustenta e conectá-lo a uma + entrega comprovada, se houver. +

+
+
+

Pendência documental

+

+ Clipping cita uma homenagem, mas ato ou diploma não foi localizado. Manter fora da + fala até confirmação. +

+
+
+
+ Dossiê institucional · Títulos e vínculos · INSUMO INTERNO — defeso 2026pág. 6/7 +
+
+
+ + +
+

+ Cena 08 · Fontes, limites e defeso +

+
+
+
+

Dossiê institucional · Instituição Exemplo

+

+ Fontes e limites +

+

+ O que foi buscado, o que não foi achado e o que não se pode afirmar +

+
+
+

INSUMO INTERNO — defeso 2026

+

Gerado em DD/MM/AAAA

+

pág. 7/7

+
+
+
+
+
+

Lacunas explícitas

+

O que não foi encontrado

+
+

+ Não completar por memória ou inferência +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Lacunas e próximos passos +
LacunaOnde foi buscadoLimite editorialPróximo passo
Fase do valorPortal oficial e documento financeiro · DD/MM/AAAA.Não usar “pago” nem “entregue”.Reconsultar execução.
Ato do vínculoSite institucional, diário e repositório.Não afirmar período completo.Solicitar acervo físico.
Alcance da redeAtas, notícias e documentos correlatos.Não atribuir à instituição.Obter lista oficial.
+
+
+

Lista clicável

+

Notícias e documentos consultados

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Fontes consultadas com larguras fixas +
DataVeículo / acervoTítuloLink
DD/MM/AAAAFonte oficialDocumento de exemplo sobre a Instituição ExemploURL da fonte
DD/MM/AAAAAcervo institucionalAto de exemplo — título a confirmarURL da fonte
DD/MM/AAAADados públicosConsulta de execução do objeto de exemploURL da fonte
DD/MM/AAAAAcervo read-onlyRegistro temático insuficiente para atribuição diretaReferência interna
+
+
+
+

Limites de cobertura

+
    +
  • + O acervo interno cobre 2011+; períodos anteriores dependem de fontes externas. +
  • +
  • Resultado de busca não prova ausência histórica.
  • +
  • Fonte temática não individualiza automaticamente a instituição.
  • +
  • Autoria de emenda e relatoria exige confirmação própria.
  • +
+
+
+

Regras para uso editorial

+
    +
  • Sem fonte, não publica.
  • +
  • URL e data acompanham afirmações não triviais.
  • +
  • Instituição, setor e rede permanecem separados.
  • +
  • Todo valor informa sua fase de execução.
  • +
  • PII mínima; nada de contato pessoal no dossiê.
  • +
+
+
+ +
+ Dossiê institucional · Fontes e limites · INSUMO INTERNO — defeso 2026pág. 7/7 +
+
+
+ + +
+

+ Cena 09 · Estado crítico — era sem fonte / sem pesquisa concluída +

+
+
+
+

Dossiê institucional · Instituição Exemplo

+

+ Era A · Pesquisa sem evidência suficiente +

+

+ Variante que substitui a página da era — nunca esconder a ausência +

+
+
+

INSUMO INTERNO — defeso 2026

+

Gerado em DD/MM/AAAA

+

estado de lacuna

+
+
+
+
+

Recorte previsto

+

+ Até 2006 · formação, vínculos técnicos e registros institucionais nominalmente + ligados à Instituição Exemplo. +

+
+ +
+
+ +

Lacuna explícita · não é “zero”

+

+ Nenhuma fonte suficiente foi localizada para esta era. +

+

+ A pesquisa não encontrou documento que sustente uma afirmação institucional. Isso não + prova que não houve vínculo ou atuação; prova apenas que o dossiê ainda não pode + afirmá-los. +

+
+
+
+

O que foi feito

+
    +
  • Busca nominal por instituição e aliases.
  • +
  • Consulta a fontes oficiais e acervos datados.
  • +
  • Triagem de resultados por vínculo e abrangência.
  • +
  • Descarte de menções sem lastro suficiente.
  • +
+
+
+

O que falta fazer

+
    +
  • Solicitar consulta ao arquivo físico.
  • +
  • Validar nome histórico e unidade da instituição.
  • +
  • Recuperar ato, ata ou documento contemporâneo.
  • +
  • Repetir busca com alias confirmado.
  • +
+
+
+
+

Regra editorial

+

+ Não preencher a seção por memória, cargo provável ou texto de outra era. + Na síntese, registrar “Era A: evidência institucional não localizada nas fontes + consultadas até DD/MM/AAAA”. +

+
+
+ Dossiê institucional · Lacuna explícita · INSUMO INTERNO — defeso 2026variante de página de era +
+
+
+
+ + diff --git a/docs/plans/dossie-solla-instituicao.md b/docs/plans/dossie-solla-instituicao.md new file mode 100644 index 00000000..1b388a90 --- /dev/null +++ b/docs/plans/dossie-solla-instituicao.md @@ -0,0 +1,132 @@ +# Dossiê Solla por instituição + Boletim modelo (skill → dossiê + boletim) + +Status: rascunho +Atualizado em: 2026-09-17 +Issue: #1135 +Priority: P2 +Impeccable: C — fluxo novo (dossiê institucional + Boletim modelo; mesma família visual do C186) +Design UI: docs/plans/dossie-solla-instituicao-ui-design.html + docs/plans/dossie-solla-instituicao-boletim-ui-design.html +Appetite: ~3–4 dias eng; um outcome verificável — rodar `/dossie-solla-instituicao UFBA` e obter PDF A4 + companion `.md` (seções por era, números com fonte, lacunas) **e** o PDF do Boletim modelo (1 página A4, público eleitor) +Responsável: — + +## Intenção + +A equipe de comunicação/mandato precisa preparar **agendas institucionais** (visita, audiência, homenagem, articulação) com lastro — e hoje só existe o recorte por município (`/dossie-solla-cidade`, C186). Para uma universidade, uma empresa pública, uma autarquia, um conselho/entidade de classe ou uma categoria profissional, não há de onde partir: a pessoa garimpa memória, WhatsApp e notícia solta. Este item cria uma skill **irmã** da C186 — mesmo pipeline, mesmo rigor de fonte — cujo recorte é a **instituição** em vez do município. Primeiro uso: **UFBA**; reutilizável para **Correios**, **Enfermagem** e demais instituições, em lote de 1 ou N. Além do dossiê, entrega o **Boletim Informativo modelo**: **1 página A4** com a síntese, em linguagem de **público eleitor**, do que Solla fez pela instituição — o pessoal de comunicação parte do dossiê + desse modelo para produzir a peça final. O `/relatorio-cidade` e o `/dossie-solla-cidade` inspiram o fluxo (skill + command + subagente, sub-agentes por era, extração read-only, build local de PDF), mas o conteúdo e o recorte são outros. + +## Persona e fluxo + +- **Persona / contexto:** equipe de comunicação/mandato de Solla, na mesa, preparando material para uma agenda institucional; sem tempo de garimpo e obrigada a não afirmar sem lastro. +- **Job principal:** numa invocação, obter (1) um **dossiê datado e com fonte** de tudo o que Solla fez por/na/com aquela instituição ao longo da carreira — com números sempre que existirem e lacunas explícitas — e (2) um **boletim modelo de 1 página**, em linguagem de eleitor, sintetizando essas entregas. +- **Fluxo desejado:** pede `/dossie-solla-instituicao UFBA` (ou lote) → o orquestrador resolve o token no catálogo de instituições, dispara pesquisadores (um por era da carreira) em paralelo, roda a extração read-only do acervo e monta os PDFs (+ `.md`) nos layouts desenhados pelo `designer` → a comunicação lê a linha do tempo, escolhe o que entra na fala/o que vira boletim, confere as fontes; lacunas ficam explícitas; falha de uma instituição não cancela o lote. +- **Anti-goals de produto:** virar recorte territorial (reintroduzir município); inventar fato/slug sem fonte; publicar/veicular peça pelo próprio pipeline (defeso 2026); tratar empenho como recurso entregue; persistir dado novo na base (segundo cadastro); segundo pipeline irmão em vez de estender o dono C186; somar setor/rede como se fosse a instituição; o boletim introduzir fato que o dossiê não tem com fonte. + +### Esboço de fluxo (C) + +```text +[pede: /dossie-solla-instituicao UFBA, Correios] → [orquestrador resolve o catálogo] +→ token desconhecido → fail-closed (alias/entrada ou --slug/--name one-off) +→ [1 researcher por era (A/B/C) por instituição, em paralelo] ─┐ +→ [extração read-only do acervo (serializada, 1 instituição)] ─┼→ [build local: HTML do designer → PDF dossiê + .md] +→ [summary: ok|failed + recibo curto por instituição/era] ─────┘ +→ [comunicação escolhe o que entra na fala, confere fonte; lacunas explícitas] +``` + +### Design UI (C) + +- Design UI (gate) — dossiê: `docs/plans/dossie-solla-instituicao-ui-design.html` (+ assets em `docs/plans/dossie-solla-instituicao-ui-design-assets/` se houver SVG próprio) — layout do **dossiê A4 institucional** (página 1 "resumo de uma olhada" + seções por era, tabelas de números/fontes, tabela de lacunas, nota de defeso), produzido pelo `designer` **antes** do build e portado pela implementação. Mesma família visual do dossiê C186; seções próprias de instituição. +- Design UI (gate) — boletim modelo: `docs/plans/dossie-solla-instituicao-boletim-ui-design.html` (+ assets) — layout do **Boletim Informativo modelo (1 página A4, público eleitor)**, também produzido pelo `designer` antes do build e portado pela implementação. + +## Objetivo e aceite + +- Com uma instituição, sai um par **PDF A4 datado + companion `.md`** com: identificação da instituição (nome, tipo, esfera, abrangência); vínculo histórico de Solla com ela por **era A** (até 2006 — formação/SESAB/Conquista/SAS-MS), **B** (SESAB 2007–2014) e **C** (deputado federal 2015–2027); resumo de uma olhada; o que Solla fez pela/na instituição (emendas e recursos, proposições/relatorias, projetos, articulação/audiências, cargos/parcerias/homenagens) em tabelas **Objeto/Valor/Ano/Fase/Fonte**; abrangência (instituição × setor × rede); fontes e limites; nota de defeso. +- Com a mesma instituição, sai também o **Boletim Informativo modelo**: **1 página A4**, em linguagem de público eleitor, denso e direto (mais entregas por página, frases curtas), com os números em destaque e o rótulo de **insumo interno/modelo** (não é a peça final publicável). **Sem declaração de fontes** — as fontes vivem só no dossiê — e **sem CTA/propaganda**. Herda **apenas fatos já com fonte** do dossiê. +- **Toda afirmação não trivial tem fonte visível** (URL + data); o que não foi achado vira **lacuna explícita** — nunca inferência. **Números sempre que a fonte informar**, sempre com a fase. +- Lote de 1+N instituições funciona; **falha de uma não cancela as demais** (sucesso parcial explícito). +- Token fora do catálogo **falha fechado** com mensagem acionável (adicionar alias/entrada, ou escape `--slug`/`--name`), nunca slug inventado. +- Pesquisa roda em **sub-agente por era, por instituição, em paralelo**; o orquestrador agrega **apenas recibos curtos** (nunca o corpo dos JSONs) e serializa a extração read-only. +- O layout vem do artefato hi-fi do `designer` (fonte de verdade do port), não inventado na implementação. +- **Nenhum texto some por não caber:** nada de corte mecânico com "…" e nada de item descartado em silêncio — quando não couber, o texto é **reformulado para caber** (campo `summary` do researcher) ou o **campo/orçamento é ampliado** enquanto a guarda de fit permitir; lista truncada sempre declara o resto ("e mais N"). O dono dessa regra é o C188 (ver Dependências) — o C187 nasce já sob ela. +- Guardrails de produto: "sem fonte, não publica"; **empenho ≠ pagamento** (autorizado/empenhado/liquidado/pago/restos); **abrangência explícita** (`instituicao`/`setor`/`rede` — nunca somar); leitura relativa (nunca % estadual absoluto); atribuição de emenda só com autoria checada; PII mínima; artefato **gitignored** (repo público); falha isolada no lote. + +## Dados (intenção) + +- **Vou apresentar dados?** Sim, superfície neste item — o dossiê é documento de dados (números com fonte, séries por era e tabela de lacunas). +- **Decisões desbloqueadas:** a comunicação escolhe **o que entra na fala/agenda** com a instituição; **qual vínculo/entrega** priorizar; onde há **entrega documentada × só intenção**; **qual lacuna** buscar antes do encontro. +- **Forma:** _adiada ao plano de implementação_ — aqui só restrições de produto: fase rotulada por valor; abrangência rotulada em cada linha; empenho nunca tratado como pago; sem % estadual absoluto; lacuna explícita em vez de silêncio; ruído eleitoral fora. + +## Dados da decisão (literais) + +**Nome e artefatos (verbatim):** skill `.agents/skills/dossie-solla-instituicao/SKILL.md`; command `.opencode/commands/dossie-solla-instituicao.md`; subagente `.opencode/agent/dossie-solla-instituicao.md`; build entry + libs reusando o dono C186 (`scripts/build-dossie-solla-cidade.mjs`, `scripts/lib/dossie*.mjs`, `scripts/lib/reportText.mjs`). + +**Definição de "instituição" (ampla):** universidade, instituto, empresa pública, autarquia, órgão público, conselho/entidade de classe, **categoria profissional**, movimento, rede. + +**Eras (verbatim, reusar as do C186 — não criar eras novas):** **A** até 2006 (formação/residência/SESAB/consultoria MS/Secretaria Municipal de Saúde de Vitória da Conquista 1999–2002/SAS-MS 2003–2005); **B** 2007–2014 (Secretário Estadual de Saúde da Bahia, 01/01/2007–18/01/2014); **C** 2015–2027 (deputado federal). Carreira literal de apoio: 1985–1987 residência Medicina Social (UFBA/INAMPS); 1989/90–1998 SESAB; 1995–1999 consultor MS; 1998 professor Escola Bahiana de Medicina + pesquisador ISC/UFBA; 2006–2009 doutorado UFRJ; nascimento 11/04/1961; Comenda Dois de Julho (ALBA, 2013); **nunca** foi deputado estadual. + +**Catálogo de instituições (v1):** arquivo novo (local exato decidido na implementação); entrada com `slug`, `name`, `aliases`, `kind` (`universidade | instituto_federal | empresa_publica | autarquia | orgao_publico | conselho_classe | entidade_classe | categoria_profissional | movimento | rede | outro`), `sphere` (`federal | estadual | municipal | nao_governamental`), `scope` (`nacional | BA`). Seed mínimo: **UFBA** (universidade/federal/BA), **Correios** (empresa_publica/federal/nacional), **Enfermagem** (categoria_profissional; âncoras ABEn-BA/COFEN/Coren-BA; federal/nacional). Token desconhecido → **fail-closed** acionável; escape `--slug= --name=""` para one-off; dedup após resolução; falha isolada. + +**Abrangência/esfera (literais):** `instituicao` (a entidade como um todo) | `setor` (categoria/área; ex.: Enfermagem dentro da Saúde) | `rede` (entidades correlatas/colegiadas). **Nunca somar** setor/rede como se fosse a instituição (mesmo guardrail C163/C186). + +**Fases de valor (verbatim):** `autorizado | empenhado | liquidado | pago | restos` (default `nao_informado`). + +**Boletim modelo (literais de produto):** **1 página A4**; público-alvo **eleitores** (linguagem simples, sem jargão orçamentário); síntese **densa e direta** com **números destacados** quando houver; **≤6 destaques** + **≤14 itens** em "E mais" (todo item herdado carrega fonte no dossiê); timeline da trajetória; **sem declaração de fontes** (as fontes ficam exclusivamente no dossiê); rótulo **"Modelo — insumo interno"** + nota de defeso; **sem CTA/propaganda**; `NEEDS ASSET` para foto/selo/clipping. Herda **apenas** fatos já com fonte do dossiê (ledger), nunca introduz fato novo. + +**Fontes de dados (verbatim):** +- Câmara dados abertos v2 (sem auth) `https://dadosabertos.camara.leg.br/api/v2`; deputy id **178857**; `/deputados/178857/discursos?dataInicio=&dataFim=` (**default 7 dias — sempre passar janela**); `/proposicoes?idDeputadoAutor=178857`; relatorias saem de `/proposicoes/{id}/tramitacoes`. +- Portal da Transparência CGU `https://api.portaldatransparencia.gov.br/api-de-dados`, header `chave-api-dados`, env `PORTAL_TRANSPARENCIA_API_KEY`; `/emendas` (**não filtra por município/instituição**; sem atribuição → **lacuna**, nunca zero silencioso); anos do mandato **2015–2026**. Complemento: Siga Brasil (Senado) e TCU – Painel de Execução de Emendas. +- Acervo interno Teqo **read-only** (homeserver): `Speech`/`SpeechSegment`/`SpeechCut`; facetas `src/lib/speechFacets.ts` (18 temas). **Mapa instituição→tema(s)** é fonte-chave do recorte institucional (ex.: Enfermagem→Saúde; UFBA→Educação/Ciência e Tecnologia); extração serializada com guard de confirmação (como C163/C186). +- IBGE/SIDRA/DATASUS só quando a instituição tiver recorte territorial (não obrigatório). +- Busca web datada: `"Jorge Solla" ` + ``; `site:` por fontes institucionais/oficiais (ufba.br, correios.com.br, cofen.gov.br, camara.leg.br, ptbahia.org.br, jorgesolla.com.br); excluir ruído de campanha 2026 (`-eleição -candidato -voto -coligação -pesquisa`); preferir verbos de entrega (emenda, recurso, convênio, parceria, projeto, relatoria, audiência, homenagem, repassado). + +**Guarda de concorrência:** `MAX_RESEARCHERS_IN_FLIGHT` (referência C186) + extração read-only serializada 1 instituição por vez. + +## Direção no codebase (hipótese) + +- **Áreas prováveis:** skill `.agents/skills/dossie-solla-instituicao/`, command `.opencode/commands/`, subagente `.opencode/agent/`; catálogo de instituições novo (local a decidir); build entry reusando/generalizando `scripts/build-dossie-solla-cidade.mjs` + `scripts/lib/dossie*.mjs` (`reportText.mjs`, `dossieCareer`, `dossieCamara`, infra Chromium/`page.pdf`). +- **Precedente a olhar:** `.agents/skills/dossie-solla-cidade/SKILL.md` (lote, eras, recibo, guardrails), `.agents/skills/relatorio-cidade/SKILL.md`, `.opencode/agent/dossie-solla-cidade.md`, `scripts/lib/reportText.mjs`. +- **Risco de acoplamento:** **"edite o dono, não gema um irmão"** — estender o pipeline C186 para uma "unidade" plugável (município | instituição) em vez de fork paralelo; extração read-only à produção (guard + `default_transaction_read_only=on`); acervo cobre só 2011+ (pré-2011 = lacuna); PII mínima; defeso; registrar o command em `tests/unit/opencodeCommands.unit.spec.ts` e o mapa em `scripts/lib/test-affected-core.mjs`. + +## Dependências + +- **Hard:** nenhuma — pipeline C186, `reportText.mjs` e infra Chromium/PDF já existem; o `designer` produz o layout. +- **Soft:** **C188 (`relatorios-sem-truncamento`)** — o dossiê institucional deve nascer sem corte mecânico/sem descarte silencioso; o C188 conserta o dono que o C187 reusa (`docs/plans/relatorios-sem-truncamento.md`). +- **Soft:** `PORTAL_TRANSPARENCIA_API_KEY` (sem chave → emendas viram lacuna); acesso read-only ao acervo Teqo (guard de confirmação); catálogo de instituições (novo, seed mínimo). + +## Fora de escopo + +- Redigir/aprovar/veicular a **peça final** do boletim — a skill entrega o dossiê + o **boletim modelo** (1 página); a versão final, aprovada e veiculada, é da comunicação/campanha. +- Persistir dado novo na base, schema ou migration; segundo cadastro. +- Publicar/veicular a peça; qualquer peça de campanha/propaganda (defeso). +- Alterar `/dossie-solla-cidade` ou `/relatorio-cidade`; UI in-app de campanha; índice/PDF agregado de lote. +- Reconstruir a carreira pré-2011 fora do acervo (surge como lacuna, não invenção). + +## Rabbit holes de produto + +- **"Cobrir a instituição inteira vira escopo infinito."** Se alguém "só completar": instituição difusa (Correios no país todo) sem recorte. **Corte neste item:** eras fixas A/B/C + foco por fonte verificável + teto por seção. +- **"Categoria profissional vira a entidade."** Se alguém "só completar": somar ABEn/COFEN/Coren como se fossem a mesma coisa que "Enfermagem". **Corte neste item:** `kind`/abrangência explícitos (`instituicao`/`setor`/`rede`), nunca somados. +- **"IA plausível sem fonte."** **Corte neste item:** sem fonte não publica; lacuna explícita; número só com URL+data e fase. +- **"Vira recorte territorial."** **Corte neste item:** remover catálogo de municípios, IBGE por `ibgeCode` e esfera `municipio|regiao|polo` do caminho institucional. +- **"Empenho = entregue à instituição."** **Corte neste item:** fase por valor; empenho nunca tratado como pago. +- **"Fan-out infinito."** **Corte neste item:** 1 researcher por era por instituição + guarda de concorrência; extração serializada. + +## Questões em aberto (produto) + +- **Nome/slug?** **Opções:** A) `dossie-solla-instituicao` | B) `dossie-solla-orgao` | C) `dossie-solla-entidade`. **Recomendação:** A — casa com o escopo amplo (inclui categoria/rede). _(assumido — validar com a comunicação)_ +- **Boletim no v1?** **Opções:** A) incluir | B) deixar de fora. **Recomendação:** A — _decidido pelo humano (2026-09-17): incluir o Boletim modelo no v1, com paridade com o C186._ Classe C, com hi-fi próprio. +- **Catálogo fail-closed ou livre?** **Opções:** A) fail-closed + escape one-off | B) livre. **Recomendação:** A — evita slug inventado/duplicado e mantém o catálogo como fonte de verdade. _(assumido)_ +- **Taxonomia de "instituição"?** **Opções:** A) ampla, incl. categoria profissional | B) só entes formais. **Recomendação:** A — cobre "Enfermagem", caso de uso real declarado. _(assumido)_ +- **Abrangência `instituicao|setor|rede`?** **Opções:** A) adotar os três | B) só `instituicao`. **Recomendação:** A — preserva o guardrail de não somar. _(assumido)_ +- **Novo hi-fi ou reuso do layout C186?** **Opções:** A) novo, mesma família visual | B) reusar o HTML C186 direto. **Recomendação:** A — seções próprias de instituição exigem port novo; manter família. _(assumido)_ +- **Destino do artefato?** **Opções:** A) gitignored (`docs/research/…` + `data/…`) | B) commitado. **Recomendação:** A — dado interno/defeso em repo público; só skill/scripts/testes/changelog entram no git. _(assumido)_ + +## Referências + +- GitHub Issue # (após `pnpm agent:register`) +- Débito/regra de texto: `docs/plans/relatorios-sem-truncamento.md` (C188) — sem "…" e sem descarte silencioso +- Skill-modelo (C186, #1132): `.agents/skills/dossie-solla-cidade/SKILL.md`; `docs/plans/dossie-solla-cidade.md` + `-impl.md`; `docs/changelog/2026-09-17-c186.md` +- `.opencode/commands/dossie-solla-cidade.md`, `.opencode/agent/dossie-solla-cidade.md`; padrão de lote OPS118: `docs/plans/ops118-relatorio-cidade-lote-municipios-sub-agentes.md` +- Builder: `scripts/build-dossie-solla-cidade.mjs`, `scripts/lib/dossie{Research,Blocks,Render,Bulletin,BulletinRender,Camara,Career,HealthData}.mjs`, `scripts/lib/reportText.mjs` +- Testes a espelhar: `tests/unit/dossie*.unit.spec.ts`, `tests/unit/dossieBatchSkill.unit.spec.ts`, `tests/unit/opencodeCommands.unit.spec.ts`; mapa `scripts/lib/test-affected-core.mjs` +- Design UI (gate) — dossiê: `docs/plans/dossie-solla-instituicao-ui-design.html` (+ `docs/plans/dossie-solla-instituicao-ui-design-assets/`) +- Design UI (gate) — boletim modelo: `docs/plans/dossie-solla-instituicao-boletim-ui-design.html` (+ assets); precedente `docs/plans/dossie-solla-cidade-boletim-ui-design.html` +- `src/lib/speechFacets.ts`; `src/collections/Organization.ts` (CRM operacional — **não** é acervo do dossiê) +- `AGENTS.md` — defeso, PII mínima, artefato gitignored e "edite o dono, não gema um irmão" diff --git a/docs/plans/relatorios-sem-truncamento.md b/docs/plans/relatorios-sem-truncamento.md new file mode 100644 index 00000000..206b1208 --- /dev/null +++ b/docs/plans/relatorios-sem-truncamento.md @@ -0,0 +1,118 @@ +# Relatórios e dossiês sem truncamento mecânico — reformular para caber ou ampliar o campo + +Status: rascunho +Atualizado em: 2026-09-17 +Issue: #1136 +Priority: P2 +Impeccable: B — encaixe nas superfícies já desenhadas (relatório C163, dossiê/boletim C186); sem redesenho +Design UI: N/A — superfície inalterada; alvo é o hi-fi já aprovado do C186 (e o do C163) +Appetite: ~1–2 dias eng; um outcome verificável — gerar relatório/dossiê com texto longo e não ver nenhum "…", nenhum item sumido sem aviso, com o integral preservado no aprofundamento e a guarda de fit verde +Responsável: — + +## Intenção + +Ao gerar um relatório de cidade (C163) ou um dossiê/boletim (C186), informação se perde na última milha: ou o texto é **cortado mecanicamente no meio da frase com "…"** (C163, via `excerpt()`), ou **itens inteiros somem em silêncio** (C186, listas com `slice` e sem contador). Não é falta de espaço editorial — é o orçamento da superfície aplicado como corte cego. Regra do produto: **se uma informação não cabe, o texto deve ser reformulado para caber perdendo o mínimo de informação, ou o campo/orçamento deve ser ampliado** — nunca corte mecânico no meio, nunca item sumindo sem aviso. O pesquisador levanta o dado; o artefato não pode descartá-lo. + +## Persona e fluxo + +- **Persona / contexto:** o gabinete/assessoria prepara material pré-viagem; o researcher (humano ou skill) entrega respostas longas e ricas; o builder compõe a página 1/resumo (C163), o dossiê e o boletim (C186). +- **Job principal:** ao abrir o PDF, ler a informação completa e confiável — e, se algo não coube no resumo, **saber que existe e onde achá-lo**, nunca descobrir depois que um trecho foi cortado no meio. +- **Fluxo desejado:** researcher entrega o integral (`answer`/`details`) + um `summary` curto, completo e auto-contido quando a superfície de resumo exigir → o builder usa `summary`; sem ele, prefere `answer` e **amplia o campo/orçamento enquanto a guarda de fit permitir** → se ainda não couber, a linha aponta o aprofundamento **sem reticências** → toda lista truncada exibe contador ("e mais N"/"Mostrando X de Y") → o integral segue no aprofundamento → a guarda de fit mede `scrollHeight` e **aborta** se estourar. +- **Anti-goals de produto:** corte mecânico com "…" em superfície de resumo; item sumindo em silêncio; espremer o layout para caber (a guarda continua fail-closed); redesenhar as superfícies; o builder reescrever conteúdo editorial (quem redige o `summary` é o researcher); varrer todo `slice` do repo além da família C163/C186. + +### Esboço de fluxo (B) + +```text +pesquisa (answer/details integral) + ├── summary? ──sim──> superfície de resumo (pg1/cartões) + └── não ─> prefere answer ─┤ + ▼ + cabe no orçamento? ──sim──> renderiza + └── não ─> amplia orçamento (guarda permite?) ──> renderiza + └── não ─> linha aponta o aprofundamento SEM "…" + +integral sempre preservado no aprofundamento (seção Fontes / páginas extras) +listas: slice → SEMPRE com contador "e mais N" / "Mostrando X de Y" +guarda de fit: scrollHeight > orçamento (+tolerância) → ABORTA (fail-closed) +``` + +### Design UI (B) + +- Design UI: **N/A** — as superfícies têm design aprovado (relatório C163; dossiê e boletim C186). Este item não redesenha: ajusta **conteúdo/orçamento** dentro do hi-fi existente, sem componente/estado/layout novo. Se a execução exigir mudança material de layout, o `designer` entra e a mudança volta ao humano no PR. + +## Objetivo e aceite + +- Gerar relatório/dossiê/boletim com textos longos e **não ver nenhum "…"** em superfície de resumo. +- **Nenhuma lista truncada sem contador** de itens restantes. +- Texto **integral sempre disponível** no aprofundamento. +- **Guarda de fit verde** (fail-closed preservado; nunca espremer). +- Contrato `summary` documentado nos dois arquivos de pesquisa e instruído nas skills `relatorio-cidade` e `dossie-solla-cidade`. +- Guardrails de produto: sem fonte não publica; empenho ≠ pagamento; esfera/abrangência nunca somadas; PII mínima; artefato gitignored; defeso. + +## Dados (intenção) + +- **Vou apresentar dados?** Sim, superfície neste item — o item decide como o dado já pesquisado é **renderizado** (orçamento de texto e contadores), nas superfícies impressas C163/C186. +- **Decisões desbloqueadas:** o leitor decide **com base no texto completo** (não num fragmento cortado); o gabinete sabe **o que ficou de fora** do resumo (contador) e **onde** está o integral; o researcher sabe **para qual orçamento** redigir o `summary`. +- **Forma:** _adiada ao plano de implementação_ — aqui só restrições de produto: proibido "…" na superfície de resumo; contador em toda lista truncada; integral no aprofundamento; guarda de fit fail-closed; sem redesenho. + +## Dados da decisão (literais) + +**Corte mecânico com "…" — dono único no C163.** `excerpt()` em `scripts/lib/cityReportBlocks.mjs:91-94` (`slice(0,max).trimEnd()+'…'`). Caps: `PAGE_ONE_ANSWER_MAX=90`, `PAGE_ONE_WHO_MAX=26`, `PAGE_ONE_RISK_MAX=70`, `PAGE_ONE_NAMES_MAX=20`, `PAGE_ONE_INDICATOR_DETAIL_MAX=70` (`:64-79`); `SIGNAL_EXCERPT_MAX=180`, `SPEECH_SUMMARY_MAX=220`, `SPEECH_MENTION_MAX=220` (`:53-55`). Call-sites impressos na página 1: `:154-161`→`:232,236,255,288,292,310,350,382`; `joinLimited` `:100-105`→`:198,248,322`; `excerpt(indicator.purpose, 70)` `:368`. Integral preservado em `buildResearchAnswersTable` `:1362-1383`. + +**Descarte silencioso no C186.** `limit = list.slice(0,max)` `scripts/lib/dossieBlocks.mjs:96` (sem flag de resto) em `:181-186` (`MAX_ERA_NUMBERS=12`), `:190` (`MAX_ERA_ACTIONS=4`), `:202-224` (`MAX_DELIVERIES_PAGE_ONE=3`), `:226-233` (`MAX_HOOKS_PAGE_ONE=2`), `:241-244` (`MAX_PENDING_PAGE_ONE=4`), `:247-255` (`MAX_REGION_ITEMS=4`); único com contador: `:333/:338` (`MAX_SCOPE_LIST=5`, guarda `.total`). Boletim: `scripts/lib/dossieBulletin.mjs:44` (6) + `:51` (14) = teto 20, sem contador (`dossieBulletinRender.mjs:171-175`). + +**Corte silencioso de caractere sem "…":** `scripts/lib/dossieCamara.mjs:46` `(sumario ?? transcricao).slice(0,280)`, `ITEMS_PER_LIST=20` `:16,128`; `cityReportBlocks.mjs:870` `row.body.slice(0,180)`; `:1113` `row.summary.slice(0,220)`; `:1097` `mentionExcerpt.slice(0,220)`. + +**Guarda de fit (não corta — aborta):** C163 `build-city-report.mjs:155-165` (`PAGE_ONE_BUDGET_PX`, −8px; aprofundamento não é medido); C186 dossiê `build-dossie-solla-cidade.mjs:196-227` e boletim `:241-249` (+10px). `.sheet { height:297mm; overflow:hidden }` (`dossieRender.mjs:477-488`, `dossieBulletinRender.mjs:31-43`). + +**Contrato do resumo (nova regra, literal):** cada item de pesquisa passa a aceitar **`summary`** — curto, **completo e auto-contido**, redigido para caber no orçamento da superfície de resumo. Superfícies de resumo usam `summary`; aprofundamento continua com o integral (`answer`/`details`). Sem `summary`, prefere `answer` e **amplia o orçamento** enquanto a guarda permitir — **"…" proibido**; no limite, a linha aponta o aprofundamento sem reticências. **Nenhum item some em silêncio** (contador sempre). Guarda de fit **fail-closed**. + +**Contratos hoje:** `cityReportResearch.mjs:129-138,186` e `dossieResearch.mjs:211-224,263` aceitam `answer`/`details`; `news[].summary` é validado e **nunca renderizado**; não há `summary` em `items[]`. + +**Testes a atualizar:** `tests/unit/cityReportBlocks.unit.spec.ts:702,752,780`; `tests/unit/cityReportRender.unit.spec.ts:127,166`; `tests/unit/dossieBlocks.unit.spec.ts:155`; `tests/unit/dossieBulletin.unit.spec.ts:27,60`. + +## Direção no codebase (hipótese) + +- **Dono único** de orçamento/composição de texto substitui o `excerpt()` do C163, reusado por C163 + C186 (não gemar caminho paralelo). +- Contrato `summary` nos dois arquivos de pesquisa (`cityReportResearch.mjs`, `dossieResearch.mjs`). +- Renderers C163/C186 preferem `summary`; integral permanece no aprofundamento. +- Contadores "e mais N"/"Mostrando X de Y" em todas as listas hoje silenciosas (dossiê/boletim; `dossieCamara.mjs`). +- Testes unit dos caps revisados e do novo contrato; skills `relatorio-cidade` e `dossie-solla-cidade` instruem o researcher a redigir `summary`. + +## Dependências + +- **Soft com C187** (dossiê por instituição) — o novo item deve nascer sem truncamento; este item conserta o dono que o C187 reusa. Sem bloqueio. +- **Nenhuma dura.** + +## Fora de escopo + +- Redesenhar as superfícies (o design aprovado do C186/C163 permanece). +- Persistir dado novo, schema ou migration; alterar contratos públicos/URL. +- Mudar o conteúdo editorial além do que cabe — o `summary` é redigido pelo researcher. +- `build-solla-ceuci-salvador-report.mjs` (C157): só se for trivial e no mesmo dono; senão, item sucessor. + +## Rabbit holes de produto + +- **"Fazer caber" reescrevendo no builder.** Se alguém "só completar": o builder vira redator. **Corte neste item:** o builder não redige; sem `summary`, aponta o aprofundamento. +- **Um `summary` global em vez de por item.** **Corte neste item:** `summary` por item, auto-contido por superfície. +- **Ampliação de orçamento vira licença para a página crescer.** **Corte neste item:** a guarda de fit fail-closed é o teto. +- **Varrer todo `slice` silencioso do repo.** **Corte neste item:** só a família C163/C186 (C157 como sucessor, se não for trivial). +- **Confundir "e mais N" (lista) com "…" (frase).** **Corte neste item:** são dois defeitos distintos, com remediações distintas — tratar ambos, sem trocar um pelo outro. + +## Questões em aberto (produto) + +- **Campo `summary` vs só ampliar orçamento?** **Opções:** A) `summary` por item + ampliação como fallback | B) só ampliar orçamento. **Recomendação:** A — resolve na origem e dá ao researcher controle editorial. _(assumido — validar)_ +- **"…" sempre proibido ou só no aprofundamento?** **Opções:** A) proibir nas superfícies de resumo, manter no aprofundamento | B) proibir em tudo. **Recomendação:** A — o aprofundamento já carrega o integral. _(assumido)_ +- **Cobrir C157 agora ou sucessor?** **Opções:** A) incluir | B) sucessor. **Recomendação:** B — C157 não compartilha o dono reusado por C163/C186. _(assumido)_ +- **Prioridade P1 vs P2?** **Opções:** A) P1 (perda de informação visível) | B) P2. **Recomendação:** B — reavaliar para P1 se o C187 entrar em produção imediatamente. _(assumido)_ + +## Referências + +- GitHub Issue # (após `pnpm agent:register`) +- `scripts/lib/cityReportBlocks.mjs:53-55,64-79,91-94,100-105,154-161,163-177,359-378,870,1097,1113,1362-1383` +- `scripts/lib/cityReportRender.mjs:243-244,470,531,631,872,901,1185`; `scripts/lib/cityReportResearch.mjs:129-138,186` +- `scripts/lib/dossieBlocks.mjs:96,181-186,190,202-233,241-255,333,338`; `scripts/lib/dossieBulletin.mjs:44,47-48,51`; `scripts/lib/dossieBulletinRender.mjs:171-175` +- `scripts/lib/dossieCamara.mjs:16,46,128`; `scripts/lib/dossieRender.mjs:477-488`; `scripts/lib/dossieResearch.mjs:211-224,263` +- `scripts/build-city-report.mjs:155-165`; `scripts/build-dossie-solla-cidade.mjs:196-227,241-249` +- Testes: `tests/unit/cityReportBlocks.unit.spec.ts:702,752,780`; `tests/unit/cityReportRender.unit.spec.ts:127,166`; `tests/unit/dossieBlocks.unit.spec.ts:155`; `tests/unit/dossieBulletin.unit.spec.ts:27,60` +- Skills: `.agents/skills/relatorio-cidade/SKILL.md`, `.agents/skills/dossie-solla-cidade/SKILL.md`; `AGENTS.md` (edite o dono, não gema um irmão)