# Contribuindo com o Acauã [English](CONTRIBUTING.md) · **Português** Obrigado por ajudar. O projeto é um motor de NDR construído em torno de evidência determinística. As contribuições mais úteis agora são testes, fixtures, documentação e correções arquiteturais pontuais. 1. **Apenas monitoramento autorizado.** O Acauã é software defensivo para redes próprias ou redes que você tem autorização expressa para observar. Não adicione mecanismos de coleta que ocultem escopo, retenção ou evidências. 2. **Evidência é parte do recurso.** Uma alteração de detecção deve declarar suas entradas, reduções em ordem fixa e valores intermediários. Não são aceitas pontuações sem registro reproduzível de evidência. 3. **Seja transparente sobre o que funciona.** Se um recurso for um stub, limitado a Linux ou restrito a um log Zeek específico, documente no README, na ajuda da CLI e nos testes. 4. **Base de código 100% em inglês.** Código-fonte, comentários, scripts, workflows e mensagens de commit são em inglês. O dashboard web permanece bilíngue (PT-BR e EN via `i18n-en.js`). ## Fluxo de trabalho ```bash scripts/install-hooks.sh scripts/fetch-libduckdb.sh ~/.cache/acaua/duckdb export DUCKDB_LIB_DIR=~/.cache/acaua/duckdb LD_LIBRARY_PATH=~/.cache/acaua/duckdb scripts/check.sh scripts/check.sh --full ``` `check.sh` executa formatação, clippy com warnings como erro, cobertura de tradução da UI, sintaxe de shell, YAML de workflows, consistência de SemVer, validação de pin da DuckDB e termos proibidos. `--full` inclui os testes do workspace e `cargo audit`. ## Pesquisa `research/` é um espaço Python isolado para validação científica. Pode utilizar astropy, scipy, networkx, pandas e notebooks. Nunca deve ser importado pelo runtime em Rust, copiado para uma release ou exigido para compilar o produto. ## Interface e tradução O texto original da interface é em português. O inglês vem de `apps/gui/ui/i18n-en.js`, aplicado em runtime por `i18n.js`. Ao adicionar texto visível, execute `node scripts/check-ui-i18n.mjs` e forneça o par correspondente em inglês. ## Documentação Mantenha os pares: todo arquivo `*.md` e `docs/*` possui uma versão em inglês e uma em português (`*.pt-BR.md`, `docs/pt-BR/`). Nomes de arquivo são traduzidos apenas quando a palavra de fato muda, como em `architecture.md` → `arquitetura.md`. ## Commits e releases Commits seguem Conventional Commits 1.0.0 em inglês (`feat:`, `fix:`, `chore:`, `ci:`, `docs:`, `refactor:`, `test:`, `perf:`, `build:`). Versões seguem SemVer 2.0.0. Releases são publicadas como imagens de container multi-arquitetura (`linux/amd64` e `linux/arm64`) no registry do Gitea. Enviar uma tag `v*` gera a release no Gitea a partir do `CHANGELOG.md` e re-aponta as tags da imagem do container existente. ## Licença Ao contribuir, você concorda em licenciar sob [MIT](LICENSE-MIT) **ou** [Apache-2.0](LICENSE-APACHE), em conformidade com o restante do projeto.