cargo build --manifest-path core/Cargo.tomlRelease binary:
cargo build --manifest-path core/Cargo.toml --release
# binary: core/target/release/steplockcargo test --manifest-path core/Cargo.tomlCI enforces all three — run them before pushing:
cargo fmt --manifest-path core/Cargo.toml
cargo clippy --manifest-path core/Cargo.toml --all-targets -- -D warnings
RUSTDOCFLAGS="-D warnings" cargo doc --manifest-path core/Cargo.toml --no-depscore/ Rust crate (library + binary)
core/scripts/ Shell scripts embedded in the binary (ack.sh)
schemas/ JSON Schema files for config.toml and state.json
examples/ Working reference configurations
- New checklist logic — add to
core/src/run.rs; unit tests live incore/src/run_tests.rs - Unit tests — each module
<x>.rskeeps its unit tests in a sibling<x>_tests.rs, declared with#[cfg(test)] #[path = "<x>_tests.rs"] mod tests;. Property tests go in<x>_proptest_tests.rs - CEL evaluation —
core/src/cel_eval.rs - Mermaid parsing —
core/src/flow.rs - Shell scripts — edit
core/scripts/ack.sh; the binary embeds it viainclude_str!so a rebuild picks up your changes - Schema — update
schemas/checklist-config.schema.jsonand the corresponding Rust struct incore/src/config.rs
- Fork and create a branch off
main - Make your change with tests
- Ensure
cargo test,cargo fmt --check, andcargo clippyall pass - Open a draft PR — the CI suite runs automatically
- Mark as ready when CI is green