Contributing
Development Setup
git clone https://github.com/codeilus/codeilus.git
cd codeilus
cargo build
cargo test
cargo clippy # must be zero warnings
Project Structure
codeilus/
+-- Cargo.toml # workspace root
+-- crates/ # 16 Rust crates
+-- frontend/ # SvelteKit 5 + TailwindCSS 4
+-- export-template/ # Vanilla HTML/JS for static export
+-- migrations/ # SQLite schema files
+-- site/ # This documentation (mkdocs-material)
Code Style
- Zero
cargo clippy warnings, zero compiler warnings
thiserror for error types, tracing for logging
- Async with
tokio, CPU-parallel with rayon
- All DB operations through repository structs
- Events flow through
EventBus (tokio broadcast)
- Tests use in-memory SQLite (
DbPool::in_memory())
Architecture Rules
codeilus-core is read-only — never modify after Sprint 0
- No cross-dependencies between sibling crates
- All shared types go through
core
- IDs are i64 newtype wrappers (never raw i64 or UUID)
Running Tests
# All tests
cargo test
# Single crate
cargo test -p codeilus-parse
# With logging
RUST_LOG=debug cargo test
Documentation Site
cd site
uv run mkdocs serve
# Open http://localhost:8000
Pull Requests
- Keep PRs focused on a single change
- Ensure
cargo clippy and cargo test pass
- Update documentation if adding new features