anomalyx v0.1.0
[0.1.0] - 2026-05-30
Initial release — a contract-first anomaly-detection CLI over arbitrary corpora.
Added
- Contract surface (
anomalyx): the four discoverable verbsdescribe,
schema,scan,explain; a dense, versionedtq1JSON envelope with a
dictionary-pinned string table and stable evidence handles; committed exit
codes (0clean /1anomalies /2error); honest absence for detectors
that cannot run. - Normalization (
ax-normalize): CSV, TSV, NDJSON and JSON via a lean
deterministic reader; Parquet and Arrow IPC via the Polars backbone (behind
the default-onpolarsfeature). Every format is lowered to one
engine-independentRecordSet, so detectors never see a Polars type. - Detectors (
ax-detect) — nine across the full seven-class taxonomy:point.modz— Iglewicz–Hoaglin modified z-score (robust MAD).dist.ks— two-sample Kolmogorov–Smirnov drift.dist.psi— Population Stability Index over baseline-quantile bins.dist.chi2— chi-square over category frequencies (surfaces new categories).struct.schema— mixed-type and high-null-rate columns; added / dropped /
type-changed columns against a baseline.mv.mahalanobis— multivariate Mahalanobis distance (own deterministic
Cholesky solve; chi-square p-value).ctx.seasonal— contextual seasonal-subseries modified z-score (--period).coll.cusum— collective CUSUM level-shift detection.cad.regularity— metronomic-cadence (inter-arrival CV) detection
(--cadence).
- Modes: single-corpus scan;
--baseline Bfor distributional drift and
schema diff;--period Nfor seasonal/contextual;--cadence COLfor timing. - Determinism: order-independent (Neumaier-compensated) reductions, no RNG
or wall-clock in the measurement path, and a config-version fingerprint —
same input + same fingerprint yields byte-identical output. - Validation (
ax-validate): the math core is checked against the NIST
Statistical Reference Datasets (certified to 15 digits), plus stress tests for
ground-truth anomaly recovery and reproducibility at scale. - Quality gates: property-based tests (
proptest) and acargo-mutants
0-surviving-mutant gate across the workspace; GitHub Actions CI runs the same
gates on every push. - Dual-licensed under MIT OR Apache-2.0.