New files: CONTRIBUTING.md — dev setup, code style, PR process CLAUDE.md — workspace context for Claude Code Makefile — build, test, lint, fmt, docker, helm-lint, dev, ci .editorconfig — consistent formatting rustfmt.toml — Rust formatting config docs/kubernetes.md — Helm install, values, architecture docs/bascule-shell.md — client shell install, config, TPM charts/bascule/README.md — Helm quick start Updated: README.md — accurate feature matrix, clear shipped vs planned config/bascule.example.toml — full reference (72 lines, all fields) All 15 README links verified valid. Helm lint clean. Build passes. 0 substrate deps. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1.3 KiB
1.3 KiB
CLAUDE.md — Context for Claude Code
What is this?
Bascule is an identity-aware SSH proxy. It authenticates operators via SSH keys or AI agent tokens, then connects them to a shell, remote host, or ephemeral container.
Workspace
crates/bascule-core/— Library: SSH server, auth, session backends, hookscrates/bascule-server/— Binary: CLI wrapper, config loading, telemetry setupcrates/bascule-auth-agent-id/— Optional: Entra Agent ID auth providercrates/bascule-shell/— Binary: Identity-aware login shell with TPM attestationcharts/bascule/— Helm chart for K8s deploymentimages/— Curated container images for operator environments
Key traits
AuthProvider(auth.rs) — implement to add auth methodsSessionHandler(hooks.rs) — implement to add session policy
Commands
cargo build --all # Build everything
cargo test --all # Run tests
cargo clippy --all-targets # Lint
make ci # Full CI check
make dev # Run locally in dev mode
Feature flags (bascule-server)
agent-id— Entra Agent ID auth
Rules
- Zero substrate/chronicle/gsap dependencies
- No unwrap() in production code
- cargo fmt + cargo clippy must pass