Chassi v 0.1.0
Capítulo I — Catálogo regulatório, versionado, consumível

Chassi de riscos combinado ao arcabouço regulatório, de forma executável.

Toda instituição financeira convive com a mesma planilha esquecida — a lista das normas que se aplicam a ela. Nós a escrevemos uma vez. Versionamos. Mantemos. Você consome.

BACEN · CMN · CVM · SUSEP · CNSP · COAF · ANPD · ANBIMA · B3 OpenAPI 3.1 / REST versionamento SemVer snapshot offline JSON · SQLite

O mapeamento de processos em uma instituição financeira é um meio para encontrar os riscos e pontos de controle necessário para mitigar esses riscos. De uma forma geral, os processos são próprios da IF. Entretanto, os riscos podem ser categorizados em temas de um chassi mais estável, baseado nos princípios e normas regulatórias e prudenciais. Então, o objetivo principal desse chassi padrão é oferecer um meio padronizado de apresentação do ambiente de controles para os riscos a partir de uma ferramenta que deveria se conectar a qualquer realidade local, de forma que o "para" seja atingido a partir de qualquer "de" em linguagem de padronização e descrição de processos.

A regulação financeira brasileira é bem robusta. CMN, BCB, CVM, SUSEP, COAF, ANPD, B3, BSM, ANBIMA — cada um com seu próprio instrumento, sua própria periodicidade, sua própria forma de revogar e alterar normas e complementar. Essas alterações normalmente ampliam a cobertura de riscos e, em alguns casos, alteram as métricas de gestão de riscos vigentes.

O Chassi de Controles Internos existe para resolver isso de uma única vez, em aberto. Um catálogo curado, versionado, expondo normas, processos, riscos e seus vínculos qualificados — o tipo de ativo que uma indústria inteira precisa, mas que ninguém consegue justificar manter sozinho. Esse chassi tem o objetivo de ser agnóstico em relação à realidade local de cada instituição financeira, permitindo uma visualização padronizada do ambiente de controles para os principais temas de riscos inerentes que qualquer IF tem apenas pelo exercício de sua atividade fim.

Não é um SaaS de controles internos. Não armazenamos CNPJ, estrutura, posições, estratégia. Recebemos atributos. Devolvemos a fatia aplicável. Nada mais transita. Por design — e por licença.

O valor está no catálogo, não no código. Código é simples — público, sob MIT. Catálogo é trabalho de curadoria contínua, e é exatamente por isso que a curadoria é colaborativa: ninguém deveria manter isso sozinho, e ninguém deveria pagar pelo que pode ser coletivo.

§ II — Três modalidades

Um catálogo, três jeitos de consumir.

I.

Snapshot baixável

O catálogo inteiro como arquivo único — JSON ou SQLite — autocontido, indexado, consultável offline. Para quem prefere zero dependência operacional de terceiros.

● disponível agora
II.

API REST

Endpoints idempotentes, cacheáveis, documentados em OpenAPI 3.1. Passe a descrição da entidade — tipo, segmento, atividades — e receba a fatia aplicável.

● em produção
III.

SDK (npm · pip)

Pacote oficial que embute o snapshot e a engine de filtragem. Atualizações via gerenciador de pacotes. Para integração nativa em aplicações e pipelines de dados.

○ Q3 — em desenvolvimento

A versão atual do chassi contém:

28
Normas vigentes
Leis, CMN, BCB, CVM, SUSEP, ANBIMA — com aplicabilidade declarada por tipo, segmento e atividade.
245
Processos
Hierarquia P0→P4, sete núcleos: universal, bancário, mercado de capitais, seguros, previdência, capitalização e conglomerado.
90
Riscos catalogados
R0→R4 paralelos à hierarquia de processos. Controles alocam em R3/R4 e agregam para cima.
97
Vínculos norma vs processo
Qualificados em três tipos: primária, secundária, informativa — distinguindo cobertura nominal de cobertura efetiva.
§ IV — Em prática

Quatro linhas para a fatia aplicável.

# Banco múltiplo S2 com câmbio comercial e crédito PJ
curl -X POST https://chassiro-api.fly.dev/v1/instancia \
  -H "Content-Type: application/json" \
  -d '{
    "tipo_entidade": "ENT_BANCO_MULTIPLO",
    "segmento": "S2",
    "atividades": ["ATV_CAMBIO_COMERCIAL", "ATV_CREDITO_PJ"]
  }'
import requests

resp = requests.post(
    "https://chassiro-api.fly.dev/v1/instancia",
    json={
        "tipo_entidade": "ENT_BANCO_MULTIPLO",
        "segmento": "S2",
        "atividades": ["ATV_CAMBIO_COMERCIAL", "ATV_CREDITO_PJ"],
    },
)
fatia = resp.json()

print(fatia["contagens"])
# → {"normas": 18, "processos": 52, "riscos": 14}
const resp = await fetch(
  "https://chassiro-api.fly.dev/v1/instancia",
  {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      tipo_entidade: "ENT_BANCO_MULTIPLO",
      segmento:      "S2",
      atividades:    ["ATV_CAMBIO_COMERCIAL", "ATV_CREDITO_PJ"],
    }),
  }
);
const fatia = await resp.json();

console.log(fatia.contagens);
// → {normas: 18, processos: 52, riscos: 14}
-- consulta direta no snapshot SQLite
SELECT n.id, n.tipo, n.numero, n.ano, n.ementa
FROM   normas n
WHERE  n.status = 'vigente'
  AND (
    NOT EXISTS (SELECT 1 FROM norma_aplicabilidade_tipo_entidade
                WHERE norma_id = n.id)
    OR EXISTS  (SELECT 1 FROM norma_aplicabilidade_tipo_entidade
                WHERE norma_id = n.id AND tipo_entidade_id = 'ENT_BANCO_MULTIPLO')
  )
  AND (
    NOT EXISTS (SELECT 1 FROM norma_aplicabilidade_segmento
                WHERE norma_id = n.id)
    OR EXISTS  (SELECT 1 FROM norma_aplicabilidade_segmento
                WHERE norma_id = n.id AND segmento_id = 'S2')
  );
§ V — Operação

Onde o chassi se encaixa na IF.

O catálogo é o núcleo estável.

O conteúdo regulatório é relativamente estável. Normas são publicadas, alteradas ou revogadas, mas a topologia do que existe — quem regula o quê, qual processo é dono, qual risco é endereçado — é estrutura.

Os sistemas e processos da IF mudam.

Cada IF já tem RCSA em planilha ou ferramenta proprietária, BIA na área de continuidade, sistemas de RH (PeopleSoft por exemplo), sistema de custos, plano de auditoria, áreas de resultado. Cada um criou o próprio mapa de processos, a própria taxonomia de riscos, o próprio glossário e isso não deveria ser um problema pois cada área entende sua forma de atuação da maneira mais eficiente com base na sua proposta de mapeamento, cobertura, análise e compreensão do arcabouço regulatório.

A IA é o tradutor.

Uma camada de IA recebe a saída heterogênea desses sistemas e a encaixa no vocabulário canônico do chassi. Uma matriz exportada do PeopleSoft, uma planilha de BIA, um plano de auditoria — tudo é normalizado contra os mesmos processo_id e risco_id do catálogo.

O resultado: ambiente de controles coerente.

Indicadores agregáveis pela hierarquia N0 → N4, apontamentos rastreáveis até a norma de origem, cobertura mensurável distinguindo nominal de efetiva via vínculos qualificados. Em outras palavras, o que toda área de controles internos quer ter, sem abrir mão das bases internas das áreas.

§ VI — Anatomia

Hierarquia paralela — P × R.

Processos e riscos andam lado a lado.

O chassi mantém duas hierarquias paralelas: P0 → P4 de processos e R0 → R4 de riscos. Controles alocam no nível mais granular do risco e agregam para cima através de ambas as hierarquias simultaneamente.

Cada nó tem um nucleo — universal, bancário, mercado de capitais, seguros, previdência, capitalização ou conglomerado — que governa a quem aquele nó se aplica.

Vínculos qualificados.

Norma e processo não se relacionam de forma binária. Três níveis distinguem cobertura efetiva de cobertura nominal: primária (o processo é a materialização do cumprimento), secundária (contribui), informativa (princípios apenas).

Aplicabilidade declarativa.

Cada norma carrega listas explícitas de tipos_entidade, segmentos e atividades aos quais se aplica. Vazio significa sem restrição. Um banco S2 com câmbio recebe uma fatia diferente de uma DTVM, sem ambiguidade.

Processos Riscos P0 · Crédito P1 · Originação P1 · Análise P1 · Cobrança P2 · Underwriting P3 · Modelo PD R0 · Crédito R1 · Inadimplência R1 · Migração R1 · Concentração R2 · Modelo R3 · Especificação Materialidade m ≤ 3 m ≥ 4 FIG. 1 — VÍNCULO P × R, MATERIALIDADE DEFAULT 1–5
§ VII — Pipeline analítico

Do catálogo ao parecer, em uma execução.

Ferramenta em Python que lê CSVs internos da casa (apontamentos, KRIs, autoavaliação, BIA), combina com seis fontes externas públicas (BACEN, CVM SAS, ANBIMA, Procon, mídia, Reclame Aqui) e gera, em uma única execução, um parecer estruturado, um nine-box impacto × controles × cobertura e uma tabela consolidada. Roda local, em modo offline, sem dependência externa.

Manual

Passo a passo

Manual completo de uso em PDF: instalação, primeira execução, plugar dados reais, leitura do nine-box e do parecer.

PDF
9 páginas · 200 KB
  • Pré-requisitos e instalação
  • Primeira execução com dados sintéticos
  • 6 etapas para plugar seus dados reais
  • Leitura do nine-box e do parecer
Baixar manual →
Código

Repositório

Código-fonte aberto na pasta tools/ do repositório. MIT no código, CC BY 4.0 nos dados sintéticos. Issues e PRs bem-vindos.

aberto
github.com/walterCNeto/ChassiRO
  • Python 3.10+, sem framework
  • Apenas requests como dependência
  • ~1.800 linhas, comentado em pt-BR
  • Pesos das fontes ajustáveis
Ver no GitHub →
Quickstart
# 1. clonar e entrar no diretório do pipeline
git clone https://github.com/walterCNeto/ChassiRO.git
cd ChassiRO/tools

# 2. rodar com os dados sintéticos do Banco Modelo S.A.
python analisar.py --offline

# 3. abrir os outputs gerados em output/
output/nine_box.html          # visualização interativa
output/parecer.md             # parecer estruturado
output/resultado_consolidado.csv # tabela detalhada
§ VIII — Como contribuir

Catálogo é trabalho. Coletivo, melhor.

Modo I

Use

Não precisa pedir permissão. Baixe, leia, instancie no seu ambiente, integre nas ferramentas que você já tem.

livre
MIT (código) · CC BY 4.0 (catálogo)
  • Snapshot JSON ou SQLite — autocontido, offline
  • Schema Postgres replicável em sua infra
  • Sem cadastro, sem rate limit, sem dependência
  • Atribuição obrigatória ao redistribuir
Ver no GitHub →
Modo III

Mantenha

Participantes recorrentes são convidados a se tornar co-mantenedores. O modelo é informal e cresce conforme a necessidade.

por convite
após contribuições consistentes
  • Direito a aprovar PRs de outras pessoas
  • Voz na direção do roadmap
  • Co-autoria nos releases
  • Sem obrigação de tempo mínimo
Issues abertas →
É um SaaS? Vocês vendem isso?
Não. O Chassi é um bem público colaborativo. Código sob MIT, conteúdo do catálogo sob CC BY 4.0. Catálogo regulatório é commons — ninguém deveria pagar por uma lista de normas. O que tem valor é a curadoria contínua, e curadoria distribuída é mais robusta que curadoria proprietária.
Posso usar comercialmente?
Sim. A licença CC BY 4.0 do conteúdo permite uso comercial, inclusive em produtos pagos. A única exigência é atribuição — referenciar este repositório quando você redistribui ou re-expõe os dados em derivados. O código (MIT) é igualmente livre para uso comercial.
Como contribuir com uma norma nova?
Abre uma Issue no GitHub usando o template "Adicionar uma norma nova", descrevendo a norma, sua aplicabilidade e os processos que ela toca. Depois um Pull Request adicionando os INSERTs nos seeds. O processo é leve — para correções pequenas, vai direto no PR. Veja o guia de contribuição.
É um SaaS de controles internos? RCSA?
Nenhum dos dois. O Chassi é um catálogo regulatório consumível — normas, processos, riscos e seus vínculos qualificados. O sistema de controles internos é o que sua instituição opera, seguindo a Res CMN 4.943; o RCSA (autoavaliação, art. 38 da 4.557) é uma das técnicas que você executa dentro dele. O chassi é a base que sustenta as duas coisas.
Quem revisa as contribuições?
Hoje, o mantenedor inicial (Walter C. Neto). Conforme contribuidores recorrentes apareçam, eles são convidados a se tornar co-mantenedores. Toda mudança no catálogo precisa de fonte oficial verificável — link para a norma no site do regulador, comunicado oficial, ou texto consolidado.
Vocês armazenam meus dados?
Não. A API é leve e idempotente: você passa atributos categóricos (tipo de entidade, segmento, atividades canônicas) e recebe a fatia. Não recebemos CNPJ, posição, estratégia ou controles — e se quisesse não receber nada, basta usar o snapshot offline. Telemetria operacional registra apenas volume de chamadas, nunca o conteúdo das queries.
Posso usar em ambiente corporativo regulado?
Sim, e a forma recomendada é usar o snapshot offline. Baixe chassi.json ou chassi.sqlite uma vez, versione junto com sua aplicação, e consuma localmente — equivalente a usar uma biblioteca instalada na sua infra. Zero comunicação externa, zero metadata vazando, zero dependência de disponibilidade de terceiros. Para protótipos e exploração, a API ao vivo em chassiro-api.fly.dev está disponível, mas em ambientes com governança rigorosa de fluxo de dados externos (bancos, asset managers, seguradoras), prefira o snapshot.

A API não recebe dados confidenciais por design: o payload aceito são atributos categóricos canônicos (ENT_BANCO_MULTIPLO, S2, ATV_CREDITO_PJ) — não há campo para CNPJ, nome de instituição, posições, estratégia ou controles. Não armazenamos nada entre chamadas, não temos autenticação, não temos persistência por usuário. O código é open source (MIT) e auditável. Mesmo assim, o caminho de menor atrito com áreas de SI é sempre o snapshot.
O snapshot tem o mesmo conteúdo da API?
Sim. Snapshot e API consomem o mesmo schema canônico — só mudam a modalidade de entrega. JSON e SQLite são gerados a partir do mesmo Postgres que serve a API, garantindo paridade.
O conteúdo da v0.1.0 é definitivo?
Não. A v0.1.0 cobre as normas estruturantes do SFN/SNSP — cerca de 30 normas. A v0.2 expande para top-150 normas BACEN incluindo cartas-circulares, e adiciona detalhe P3/P4 com controles-modelo. Numeração, datas e status devem ser revalidados contra a base oficial dos reguladores antes do uso operacional. Aliás, ajudar a auditar isso linha-a-linha é uma das contribuições mais valiosas que se pode fazer.