AetherML
AetherML RMGV • 5 Dias ML
TDD & Monorepo docs/08-guia-desenvolvimento-tdd.md

AetherML — 08 Guia do Desenvolvedor e Fluxo TDD

O desenvolvimento do AetherML adota o padrão rigoroso de Test-Driven Development (TDD: Red-Green-Refactor) e regras estritas de preservação de contexto e otimização de tokens para engenharia assistida por IA.


1. Estrutura do Monorepo pnpm

AetherML/
├── apps/
│   └── web/                # Astro + Svelte 5 + UnoCSS (PWA Cloudflare Pages)
├── packages/
│   ├── core-iqar/          # Cálculo CONAMA 491 puro (zero I/O)
│   ├── geo/                # Haversine geodésico e estações RAMQAr
│   └── inference-client/   # Wrapper do Web Worker e DB-First Quota Guard
├── ml/
│   ├── training/           # Pipeline LightGBM, ONNX e Saabas XAI
│   └── evaluation/         # Auditoria semanal e drift
├── db/
│   ├── schema.sql          # DDL canônico D1 (7 tabelas)
│   ├── seed.sql            # 9 estações RAMQAr
│   └── schema.ts           # Drizzle ORM
├── docs/                   # Documentação técnica e guias regulatórios
└── public/models/          # Artefatos .onnx e topology.json ativos

2. Comandos Essenciais de Desenvolvimento

# Instalação de todas as dependências do monorepo
pnpm install

Iniciar o servidor de desenvolvimento local da interface web

pnpm dev

Executar a suíte de testes de todos os pacotes

pnpm -r test

Compilar todos os pacotes e a aplicação estática

pnpm -r build

Formatação e verificação estrita de linter (TypeScript / Svelte)

pnpm lint

Aplicar migrações no banco local Cloudflare D1

pnpm db:migrate

Executar o pipeline de Machine Learning (treino, ONNX e Saabas)

python -m ml.training.pipeline v2026.38.1

3. Ciclo TDD Red-Green-Refactor (Obrigatório)

Qualquer nova funcionalidade ou alteração de algoritmo no AetherML deve seguir o fluxo:

1. Red: Criar o teste unitário falhando primeiro (test/*/.test.ts ou tests/test_*.py). 2. Green: Implementar a menor quantidade necessária de código para o teste passar. 3. Refactor: Otimizar a arquitetura preservando a integridade dos testes e rodando biome check --write e ruff check --fix.