# sasecodingagent-project Workspace Rust initial pour **Sase Coding Agent**. ## Structure ```text sasecodingagent-project/ ├── Cargo.toml ├── README.md ├── TODOLIST.md ├── clippy.toml ├── rustfmt.toml ├── docs/ │ └── coding_rules.md ├── scripts/ │ ├── check_banned_crates.sh │ ├── check_no_question_mark.sh │ ├── check_no_unwrap_expect.sh │ ├── check_no_mod_rs.sh │ ├── check_public_api_exports.sh │ └── run_quality_checks.sh ├── sca-app/ ├── sca-core/ ├── sca-infra/ ├── sca-ia/ └── sca-tests/ ``` ## Crates - `sca-app` : binaire principal - `sca-core` : domaine métier - `sca-infra` : stockage, fs, process, git, audit - `sca-ia` : providers, thinking, context, routing, kb - `sca-tests` : support de tests / scénarios d'intégration ## État actuel Ce dépôt est un **squelette initial** avec : - workspace configuré - crates créées - fichiers `.rs` présents - arborescences internes préparées - `README.md` et `TODOLIST.md` Les fichiers Rust internes sont volontairement laissés vides, à l'exception de `sca-app/src/main.rs` qui contient un `fn main() {}` minimal pour fournir un point d'entrée valide. ## Coding Rules ### Hard Constraints (non-negotiable) - No `?` - No `unwrap` / `expect` - Explicit error handling only - Single error type or minimal error types - No `mod.rs` (Rust 2024) - `tracing` mandatory - `thiserror` and `anyhow` are banned - Public API exported only via `src/lib.rs` ## Quality Checks Des scripts simples sont fournis dans scripts/ pour contrôler les règles principales : - crates bannies - usage de `?` - usage de `unwrap` / `expect` - présence interdite de `mod.rs` - vérification basique de l’exposition API via `lib.rs` Exécution rapide : ```bash bash scripts/run_quality_checks.sh ``` ## Documentation complémentaire Règles détaillées : docs/coding_rules.md