Expand description
§ax-core — the anomalyx contract
This crate is the executable contract the article argues for: the
typed record model every input collapses into, the anomaly taxonomy, the
deterministic reductions detectors are built on, and the tq1 output
envelope. It deliberately depends on nothing heavy (no Polars, no math
crates) so the contract stays engine-independent and the mutation-test gate
stays fast.
Design commitments, straight from the article:
- Determinism is UX: see
det— every reduction is order-independent. - Honest absence:
value::Value::Nullnever becomes a0.0; detectors that can’t run are recorded inenvelope::Absence. - Handle-based evidence: compact
finding::Findings carry stablefinding::Handles thatexplainresolves on demand. - Versioned protocol:
envelope::PROTOCOLand committedenvelope::ExitCodes.
Re-exports§
pub use error::AxError;pub use error::Result;pub use finding::AnomalyClass;pub use finding::Finding;pub use finding::Handle;pub use finding::Severity;pub use record::Column;pub use record::RecordSet;pub use value::ColType;pub use value::Value;
Modules§
- det
- Deterministic numeric reductions.
- dict
- A deterministic string interner backing the envelope’s dictionary table.
- envelope
- The
tq1output envelope — the wire contract. - error
- Core error type. Detectors and normalizers surface failures here; the CLI
maps these to
crate::envelope::ExitCode::Error. - finding
- The anomaly taxonomy, findings, and evidence handles.
- record
- The normalized columnar record model — the single shape every input format collapses into, and the only thing detectors ever see.
- value
- The normalized scalar type. Every input format collapses into these cells.