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.
- Bug: descreva o comportamento observado vs esperado, a versão, o OS
- Feature: descreva o caso de uso e a abordagem prevista
- Alteração arquitetural: será necessária uma ADR (ver
docs/decisions/)
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:
| Regra | Detalhe |
|---|---|
| Cobertura de testes | 90% mÃnimo para o código adicionado |
Sem unwrap() | Usar expect() com // INVARIANT: ou ? / map_err() |
Sem unsafe | Proibido por #[deny(unsafe_code)] |
| 800 linhas máx. | Por ficheiro fonte |
| 60 linhas máx. | Por função |
| Formatação | cargo fmt obrigatório |
| Lints | cargo clippy -- -D warnings (pedantic) |
Dependências
Zero dependências não vitais. Antes de propor uma nova dependência:
- Verifique que a stdlib Rust não cobre a necessidade
- Avalie com a matriz de dependências (pontuação mÃnima 3.5/5)
- 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:
feat(protocol): add TLS supportfix(dispatch): handle empty argumentstest(integration): add session timeout scenariosdocs(references): update configuration guide
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:
- O contribuidor humano permanece responsável pela qualidade do código
- Mesmos requisitos de testes e lints
- Indique no PR se foi utilizado código IA (transparência)
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:
protocol.rs,crypto.rs— autenticaçãodispatch.rs,chain_parser.rs,chain_exec.rs— parsing e execução dos comandosconfig.rs— gestão da configuração
Boas primeiras contribuições
- Melhorar a documentação
- Adicionar testes para casos limite
- Corrigir warnings clippy
- Melhorar as mensagens de erro
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.