Contribute
Contributing to SSH-Frontière
Contributions are welcome, including contributions assisted or generated by artificial intelligence. SSH-Frontière is itself developed with Claude Code agents.
Before you start
Open an issue to discuss the proposed change. This avoids unnecessary work and validates the approach.
- Bug: describe the observed vs expected behavior, version, OS
- Feature: describe the use case and the planned approach
- Architectural change: an ADR will be needed (see
docs/decisions/)
Process
1. Issue → discuss the change
2. Fork → git checkout -b feature/my-contribution
3. TDD → RED (failing test) → GREEN (minimal code) → refactor
4. Verify → make lint && make test && make audit
5. Pull request → describe, reference the issue, green CI
Quality requirements
SSH-Frontière is a security component. Requirements are strict:
| Rule | Detail |
|---|---|
| Test coverage | 90% minimum for added code |
No unwrap() | Use expect() with // INVARIANT: or ? / map_err() |
No unsafe | Forbidden by #[deny(unsafe_code)] |
| 800 lines max | Per source file |
| 60 lines max | Per function |
| Formatting | cargo fmt mandatory |
| Lints | cargo clippy -- -D warnings (pedantic) |
Dependencies
Zero non-essential dependencies. Before proposing a new dependency:
- Check that the Rust stdlib doesn't cover the need
- Evaluate with the dependency matrix (minimum score 3.5/5)
- Document the evaluation in
docs/searches/
Currently authorized dependencies: serde, serde_json, toml.
Commit conventions
Messages in English, format type(scope): description:
feat(protocol): add TLS supportfix(dispatch): handle empty argumentstest(integration): add session timeout scenariosdocs(references): update configuration guide
Types: feat, fix, refactor, test, docs.
AI contributions
Contributions generated by AI are accepted under the same conditions as human contributions:
- The human contributor remains responsible for the code quality
- Same test and lint requirements
- Indicate in the PR if AI code was used (transparency)
Security
Reporting a vulnerability
Do not report vulnerabilities via public issues. Contact the maintainer directly for responsible disclosure.
Reinforced review
PRs touching these files undergo a reinforced security review:
protocol.rs,crypto.rs— authenticationdispatch.rs,chain_parser.rs,chain_exec.rs— command parsing and executionconfig.rs— configuration management
Good first contributions
- Improve documentation
- Add tests for edge cases
- Fix clippy warnings
- Improve error messages
License
SSH-Frontière is distributed under EUPL-1.2. By submitting a pull request, you agree that your contribution will be distributed under the terms of this license.
For full details, see the CONTRIBUTING.md file in the repository.