Project conventions for AI coding agents working on this codebase.
Universal: ~/dev/kanon/crates/basanos/standards/STANDARDS.md
Rust: ~/dev/kanon/crates/basanos/standards/RUST.md
Shell: ~/dev/kanon/crates/basanos/standards/SHELL.md
Writing: ~/dev/kanon/crates/basanos/standards/WRITING.md
Foundation layer: koinon (shared types, signal model), kryphos (encryption, identity). See README.md for the full domain map with status markers and docs/ARCHITECTURE.md for layer structure.
cargo build # Debug build
cargo test --workspace # All tests
cargo test -p <crate> # Single crate
cargo clippy --workspace # Lint (zero warnings)- Errors:
snafuwith.context()propagation andLocationtracking - IDs: Newtypes for all domain IDs
- Time:
jifffor time,ulidfor IDs,compact_strfor small strings - Async: Tokio
- Lints:
#[expect(lint, reason = "...")]over#[allow] - Visibility:
pub(crate)by default - Naming: Greek names per
~/dev/kanon/crates/basanos/standards/GNOMON.md, registry at docs/lexicon.md
cargo test -p <affected-crate>passescargo clippy --workspacepasses with zero warnings- No
unwrap()in library code - New errors use snafu with context
Conventional commits: <type>(<scope>): <description>. Scope is the crate name.
Branch from main. Rebase before pushing. Squash merge.