eli is a multi-language AI project:
crates/nexil— provider-agnostic LLM toolkitcrates/eli— hook-first AI agent frameworksidecar/— TypeScript bridge and channel hosttests/— Python smoke and integration tests
Have these available locally:
- Rust toolchain
cargo- Python 3
pytest- Node.js and
npm
Start with:
just doctorjust check
just test-rust
just test-py
just test-sidecar
just test-all
just release-checkFor changes in crates/**:
- run
just check - add or update Rust tests where practical
- update docs if behavior changes
For changes in tests/**:
- run
just test-py - keep smoke paths cheap and deterministic where possible
For changes in sidecar/**:
- run
just test-sidecar - keep TypeScript style and Rust-side contracts aligned
For changes in README.md or docs/**:
- keep docs aligned with current code
- label historical documents clearly when they are not current guidance
- run the smallest meaningful validation for the surface you changed
- update tests if behavior changed
- update docs if user-facing or maintainer-facing behavior changed
- avoid unrelated cleanup in the same PR
Recommended commit prefixes:
feat:fix:docs:chore:
Call out contract changes clearly in the PR when touching:
- hook semantics or precedence
- session or turn pipeline behavior
- tool schemas or result conventions
- tape behavior
- sidecar contracts and envelope shape
For these changes, state:
- what changed
- what remains compatible
- what tests were added or updated
- what docs were updated
README.mddocs/index.mdAGENTS.mdCLAUDE.md