Qualidade e Integração Contínua (CI/CD)
As métricas de qualidade do PAEBIRU blindam a branch main através de gates rígidos implementados no GitHub Workflows e gerenciados pelo Makefile. Conforme definido na RFC 050, todo código deve obedecer aos quatro dogmas inquebráveis do ecossistema.
1. Os Quatro Dogmas do Código
Para garantir a modularidade e a escalabilidade do microcontrolador ao mainframe, todo código submetido deve seguir:
- Isolamento Absoluto (Arquitetura Hexagonal): Separação estrita entre regras de domínio e infraestrutura. O núcleo matemático é agnóstico a rede ou disco, utilizando Traits (Ports) para inversão de dependência.
- Paradigma GALS e Atores (Sem Condições de Corrida): O estado interno nunca é compartilhado via bloqueios globais. A comunicação entre componentes (Kernel, Biologia, Economia, C.A.P.I.B.A.) é exclusivamente via troca de mensagens baseada em eventos.
- Pragmatismo de Hardware (
no_stdFirst): O núcleo do domínio deve ser compilável sem a biblioteca padrão (no_std), permitindo execução em dispositivos de energy harvesting. - Interoperabilidade Blindada (Opaque Handles): O FFI para as 13 linguagens suportadas deve exportar apenas ponteiros opacos (Opaque Handles), garantindo a segurança de memória.
2. Esteiras de Validação (CI)
A “Muralha de Qualidade” consiste em gates rígidos que impedem regressões:
- Esteira de Conformidade:
- Lints (
rtk make lint). - Formatação (
rtk make fmt). - Auditoria de Segurança (
cargo audit).
- Lints (
- Esteira GALS & Domínio:
- Execução de testes unitários isolados (
rtk make test). - Validação de dependências cruzadas entre Bounded Contexts.
- Execução de testes unitários isolados (
- Esteira de Verificação Formal:
- Aciona TLA+ e Lean 4 para funções puras do Kernel e
paebiru-math.
- Aciona TLA+ e Lean 4 para funções puras do Kernel e
- Esteira Embarcada (
no_std):- Compila o Kernel e Math para targets embarcados (ex:
thumbv7em-none-eabihf), atestando que a lógica roda em Energy Harvesting.
- Compila o Kernel e Math para targets embarcados (ex:
Nenhuma regressão deve ser mesclada na main. A “entropia termodinâmica” do código (complexidade) deve ser minimizada em cada revisão. A execução de rtk make pre-commit é mandatória antes de finalizar qualquer tarefa.