# Contributing to Bascule ## Development Setup ```bash git clone https://github.com/your-org/bascule.git cd bascule cargo build --all cargo test --all ``` ## Architecture Bascule is a Rust workspace: | Crate | Purpose | |-------|---------| | `bascule-core` | Library — SSH server, auth, PTY, proxy, container, hooks | | `bascule-server` | Binary — CLI, config, telemetry | | `bascule-auth-agent-id` | Optional — Entra Agent ID auth | | `bascule-shell` | Binary — Identity-aware login shell | ## Testing ```bash cargo test --all ``` ## Code Style - `cargo fmt` before committing - `cargo clippy` must pass - No `unwrap()` in production code - All public items need doc comments ## Pull Request Process 1. Create a feature branch 2. Ensure `make ci` passes 3. Update docs if adding features 4. Submit PR against `main` ## Commit Messages Format: `type: description` Types: feat, fix, docs, chore, refactor, test ## License By contributing, you agree your contributions are licensed under Apache 2.0.