Contribuir

Contribuir para o SSH-Frontière

As contribuições são bem-vindas, incluindo contribuições assistidas ou geradas por inteligência artificial. SSH-Frontière é ele próprio desenvolvido com agentes Claude Code.

Antes de começar

Abra uma issue para discutir a alteração proposta. Isto evita trabalho desnecessário e permite validar a abordagem.

Processo

1. Issue       → discutir a alteração
2. Fork        → git checkout -b feature/minha-contribuicao
3. TDD         → RED (teste que falha) → GREEN (código mínimo) → refatorar
4. Verificar   → make lint && make test && make audit
5. Pull request → descrever, referenciar a issue, CI verde

Requisitos de qualidade

SSH-Frontière é um componente de segurança. Os requisitos são rigorosos:

RegraDetalhe
Cobertura de testes90% mínimo para o código adicionado
Sem unwrap()Usar expect() com // INVARIANT: ou ? / map_err()
Sem unsafeProibido por #[deny(unsafe_code)]
800 linhas máx.Por ficheiro fonte
60 linhas máx.Por função
Formataçãocargo fmt obrigatório
Lintscargo clippy -- -D warnings (pedantic)

Dependências

Zero dependências não vitais. Antes de propor uma nova dependência:

  1. Verifique que a stdlib Rust não cobre a necessidade
  2. Avalie com a matriz de dependências (pontuação mínima 3.5/5)
  3. Documente a avaliação em docs/searches/

Dependências autorizadas atualmente: serde, serde_json, toml.

Convenções de commit

Mensagens em inglês, formato type(scope): description:

Tipos: feat, fix, refactor, test, docs.

Contribuições IA

As contribuições geradas por IA são aceites nas mesmas condições que as contribuições humanas:

Segurança

Reportar uma vulnerabilidade

Não reporte vulnerabilidades através das issues públicas. Contacte diretamente o mantenedor para uma divulgação responsável.

Revisão reforçada

Os PRs que afetam estes ficheiros são sujeitos a uma revisão de segurança reforçada:

Boas primeiras contribuições

Licença

SSH-Frontière é distribuído sob EUPL-1.2. Ao submeter um pull request, aceita que a sua contribuição seja distribuída nos termos desta licença.

Para os detalhes completos, consulte o ficheiro CONTRIBUTING.md no repositório.