# Pacote de documentação para o time (2026-07-10, fechado em 2026-07-11)

Este é o índice do pacote de documentação gerado no mandato de 2026-07-10: mapear todo o ecossistema Monetarie (arquitetura, integração, rede, dados, serviços, testes, simuladores) para o time assumir o desenvolvimento, e preparar o desacoplamento do monorepo.

**Atualização de fechamento (2026-07-11):** as descobertas críticas do mapeamento foram RESOLVIDAS na mesma frente de trabalho (detalhe na seção seguinte). Os simuladores PIX e SPB foram completados e são agora a bancada oficial do time: os relatórios de fidelidade (itens 8 abaixo) contêm as matrizes de cobertura finais e o passo a passo de uso. O plano de desacoplamento (item 9) fica com o time.

## Como ler este pacote

Ordem sugerida para quem está chegando agora:

1. **Integração do ecossistema** (a visão de cima): `2026-07-10-integracao-ecossistema.md`
2. **Arquitetura de cada sistema**: `2026-07-10-arquitetura-core.md`, `2026-07-10-arquitetura-pix.md`, `2026-07-10-arquitetura-spb.md`, `2026-07-10-arquitetura-satelites.md`
3. **Topologia de rede** (HML 10.45 e PROD 10.50, RSFN, HSM, MQ): `2026-07-10-topologia-rede.md`
4. **Dicionários de dados** (todas as tabelas e colunas): `2026-07-10-dicionario-dados-core.md`, `2026-07-10-dicionario-dados-pix.md`, `2026-07-10-dicionario-dados-spb.md`
5. **Serviços e executáveis** (nomenclatura, portas, como sobe cada um): `2026-07-10-inventario-servicos-executaveis.md`
6. **Ambiente local sem Docker**: `scripts/dev_up_all.sh` e `scripts/dev_down_all.sh` (documentados no inventário de serviços)
7. **Testes** (o que existe, o que roda, o que falta): `../reports/2026-07-10-inventario-testes.md`
8. **Fidelidade dos simuladores vs BACEN real**: `../reports/2026-07-10-simulador-pix-fidelidade-bacen.md` e `../reports/2026-07-10-simulador-spb-fidelidade-bacen.md`
9. **Plano de desacoplamento do monorepo**: `../plans/2026-07-10-desacoplamento-monorepo.md`

## Descobertas críticas deste mapeamento e seus desfechos (ler primeiro)

1. **TED-in com lançamento COSIF duplicado: VERIFICADO E CORRIGIDO (2026-07-10 noite).** A prova E2E em HML mostrou que o dinheiro do cliente creditava exatamente 1 vez (pela ponte `credits.inbound`), mas o hook legado criava um lançamento COSIF órfão no balancete para cada TED-in. Fix `4f4ac7f0` (settled de entrada virou espelho de status sem ação de ledger), deployado em HML `core-api:113` (revalidado vivo) e PROD `core-api:19`. Relato completo com a prova: `../reports/2026-07-10-ted-in-duplo-credito-verificacao.md`.
2. **Simulador SPB: COMPLETO (commits `019d8465` + `95c48a1e`).** TED-in simulada credita o cliente no Core pelo pipeline real inteiro; respostas catalog-driven para as 587 mensagens usando os builders reais da cabine; 34 tipos de mensagens de entrada por família, com LPI integral. Matrizes de cobertura e passo a passo: `../reports/2026-07-10-simulador-spb-fidelidade-bacen.md`.
3. **Simulador PIX: COMPLETO (commits `3b9f12d0` + `632f236a`).** Two-phase neutralizado (comportamento que não existe no BACEN), crédito só pelo caminho real, XMLs XSD-válidos contra o catálogo v5.12.1, DICT v2.11.0 completo, claims com prazos reais, MED 2.0 nos dois sentidos, CID com verificador real, CobV/QR. Matriz: `../reports/2026-07-10-simulador-pix-fidelidade-bacen.md`.
4. **Não existe CI** (segue aberto, decisão de fazer no split): nenhum workflow no GitHub; deploy é script manual. O plano de desacoplamento usa o split como momento de criar CI por repositório.
5. **Testes: furos corrigidos (commit `46932253`).** IB 168/168 verde (os 4 de Idempotency-Key eram testes desatualizados; o fluxo real envia o header, e ganhou hardening), bug real do formatDate (extrato com dia anterior) corrigido e deployado (banking-ui PROD `:3`), shared 92/92, bacen_gateway com banco de teste dedicado `mon_spb_test`. Detalhe: `../reports/2026-07-10-inventario-testes.md`.
6. **Defeitos de produção achados pela frente dos simuladores e corrigidos (commit `d0e79635`, PROD `pix-api:26`)**: a primeira pacs.004 orgânica crasharia o worker em loop (campo exigido que o fio real não traz); QR Code acima do teto EMV saía corrompido em silêncio (agora fail-fast); chave AES do ambiente de teste com tamanho inválido.

## Fatos que o time precisa saber antes de tudo

- Produção está VIVA e conectada ao BACEN real (cluster `monetarie-greenfield-prod`, VPC 10.50), trafegando dinheiro real. Em produção não existe teste: validação é com transação real acompanhada (regra do dono, runbook em `docs/operator/2026-07-09-runbook-primeiro-pix-real-prod.md`).
- O caminho canônico do crédito PIX-in: o BACEN liquida ANTES de entregar a pacs.008, o recebedor NÃO recebe pacs.002; o Core credita no evento `transaction.created` com direction INBOUND. A flag `TWO_PHASE_PIX_IN` é PROIBIDA (o gatilho settled só existe no simulador).
- TigerBeetle trabalha em SUBCENTAVO; o Postgres do Core em centavo. Essa diferença de escala já causou bug 100x duas vezes. Toda conversão de valor entre TB e PG precisa de atenção redobrada.
- Core nunca assina mensagem BACEN. Assinatura (HSM RTM) e mTLS são exclusivos das cabines PIX e SPB.
- Segredos só existem no AWS Secrets Manager `monetarie/{env}/*`. Nunca em código, Markdown ou .env.
- AWS: conta `990933657879`, região `sa-east-1`, profile `vulcimonetarie` (o profile default do Mac aponta para OUTRA conta).
