Skip to content

Operators catalog

All operators register under the entry-point group cairn.operators and are addressed by capability name. Risk classes: read_only, external_write, production_mutation, paid_compute. The Default column is deliberately honest: it says when an operator samples, stubs, or no-ops without its optional extra — configure fail-closed where it matters (the production profile does this for the training gates).

CapabilityPurposeRiskDefault behavior
data/profileresolve a workflow’s data roles; PASS/DEGRADE/BLOCK verdictread_onlyreal, deterministic
data/expectationsdeclarative data-quality suite (not_null, in_range, unique, regex, row_count)read_onlyreal; pandera optional, built-in runner gives identical verdicts
dataset/formatJSONL/chat format readinessread_onlyreal
dataset/dedupexact + near-duplicate detectionread_onlyexact always; MinHash near-dup needs the dedup extra
dataset/pii_scanPII/secret density scanread_onlysamples 1,000 rows by default (sample_size=null scans all); Presidio backend with the pii extra, else regex
dataset/decontamtrain/eval contamination overlapread_onlyexact matching by default; minhash/ngram optional
dataset/profiletoken/length/field distributionsread_onlyreal
dataset/provenanceCroissant-style provenance recordread_onlyreal
dataset/gatedeterministic pass/warn/fail over findingsread_onlyreal, pure
dataset/prep_gatepost-scrub PII gate (verdict from residual PII + mode)read_onlyreal, deterministic
dataset/prep_reviewHITL review of a dirty scrubread_onlyrequires approval — a durable gate fires before it runs
dataset/sampledeterministic sampler feeding eval/judgeread_onlyreal
dataset/anonymizewrite an anonymized copyexternal_writereal
dataset/splitgroup-aware / stratified splitsexternal_writereal
dataset/curateLLM-judge quality selectionpaid_computereal — paid LLM calls through the governed gateway
dataset/synthesize · dataset/augmentgenerate / augment training rowspaid_computereal LLM, non-deterministic
dataset/stage (train/stage-dataset)upload the prepared dataset to S3 for a remote workerexternal_writereal
CapabilityPurposeRiskDefault behavior
train/stubno-spend, no-GPU placeholderread_onlya stub by design — fabricates a plausible result; the production profile’s model/gate rejects stub results
train/localreal LoRA SFT on CPU/MPSread_onlyreal (transformers + peft + trl); needs the local extra
train/modal · train/kaggle · train/runpod · train/vastGPU jobs on Modal / Kaggle / RunPod / Vast.aipaid_computereal remote jobs (each needs its extra); cancellable
remote/execrun any command/job on an SSH box (the remote-GPU training path)external_writereal; long-running with pause/poll/resume
CapabilityPurposeRiskDefault behavior
model/registerpromote a model into the registryexternal_writerequires approval; local JSONL registry by default, MLflow when MLFLOW_TRACKING_URI is set
model/baselineread the last registered version’s scores as the delta baselineread_onlyreal
model/card · report/model_cardrender a model card (the latter auditor-ready from provenance)read_onlyreal, deterministic
model/mergemerge a LoRA adapter into a standalone modelread_onlyreal with the merge extra, hermetic stub without
lineage/recordcontent-addressed provenance record (hash-chained downstream)read_onlyreal
compress/stubGPU-free compression placeholderread_onlystub by design
compress/quantizereal quantization (bitsandbytes)read_onlyreal; returns status="error" on missing deps/GPU rather than pretending
CapabilityPurposeRiskDefault behavior
model/gatedeterministic post-training pass/warn/failread_onlyreal, pure — the fail-closed anchor of the training spine
eval/deltavs-baseline verdict under a regression budgetread_onlyreal, pure
eval/subsetdeterministic golden-subset scorerread_onlyreal
model/evallm-eval-harness metricsread_onlyneeds the harness extra, else no-ops with checked=false; GPU, long-running
eval/benchmarkpublic benchmarks (IFEval, GSM8K) on base + adapterread_onlyreturns a deterministic stub score with checked=false when disabled, without the benchmark extra, or on harness error — gate on checked in production
eval/judgeLLM rubric judge (G-Eval)read_onlyoff by default (enabled=false); advisory, never gates
rag/evalretrieval-quality metricsread_onlyragas judge metrics with the extra; otherwise deterministic lexical proxies flagged backend_used="lexical"
eval/langfusedelegated eval in Langfuseread_onlyoff by default; bypasses the governed gateway, output always marked governed=false
CapabilityPurposeRiskDefault behavior
serve/vllmlaunch an OpenAI-compatible vLLM endpoint (base + LoRA) on an SSH GPU boxpaid_computereal SSH deploy (needs the ssh extra + vLLM on the box); cancellable
infer/benchlatency/throughput load-test of any OpenAI-compatible endpointread_onlyreal concurrent HTTP measurement
CapabilityPurposeRiskDefault behavior
compute/estimatepre-flight cost/feasibility planread_onlyreal, deterministic heuristic
compute/quotelive GPU offers across providers (Vast, RunPod)read_onlyreal network read; provisions nothing
cost/gatespend/fit verdict before any GPU is provisionedread_onlyreal, pure
CapabilityPurposeRisk
clickstack/query_logs · query_traces · query_metrics · get_topologyread logs / traces / metrics / service topology from the bound backendread_only
logs/summarize · traces/analyzedeterministic log/trace aggregation (polars-accelerated with the fast extra)read_only
blast-radius/computeimpacted services + measured errors across the call graphread_only
git/correlatetie error onset to the causing deployread_only
postmortem/write_filepersist the post-mortem markdownexternal_write

These back the engine’s cross-cutting services via profile bindings:

BindingBuiltin defaultOfficial swap-in
storage.put / storage.getlocal filesystemS3/MinIO (s3/put, s3/get)
audit.sinkaudit/store — hash-chained JSONL(richer sinks swap the binding)
memory.search / memory.writeSQLite-vec local memory
rag.search / rag.fetch / rag.parse / rag.rerankSQLite-vec dense retrieval; pypdf parsing; identity rerankdocling/markitdown parsing, cross-encoder/Cohere rerank
redact.textregex redaction
secrets.storeenv-var backendInfisical (secrets/infisical)
notify.sinkSlack (notify/slack)
mcp.calluniversal MCP tool dispatcher