Typed drift A/B/C and obsolescence
The engine classifies every change in the AI system into one of three drift types, because the drift type determines the required regulatory response. An incorrect classification — treating a substantial change as routine — is a conformance error, not merely a technical one.
The three types
Section titled “The three types”Drift A — Substantial
Section titled “Drift A — Substantial”A change to the inputs (features, data format), the outputs (decision, value scale), or the purpose of the system (EU AI Act Art. 9(2)) constitutes substantial drift.
Required response: full risk re-triage. Re-measuring existing controls is insufficient; the risk space may have changed. The ISO 23894 §6.4.2 (identification) cycle must be reopened.
Drift B — Routine
Section titled “Drift B — Routine”A change to the model (architecture, weights, version) or the prompt of an LLM-based system constitutes routine drift, provided the purpose and the input/output contracts do not change.
Response: re-measurement. Existing controls are re-evaluated against the new model; if the metric crosses the threshold, the treatment cycle is reopened for that control.
Drift C — Data
Section titled “Drift C — Data”A change to the training or validation dataset (incorporation of new instances, label correction, change in demographic distribution) constitutes data drift.
Response: re-measurement with particular attention to fairness controls and the EU AI Act Art. 10(5) requirement (sufficiency and representativeness of data).
The typed dependency graph
Section titled “The typed dependency graph”The system artifacts (training code, exported model, dataset, metrics, evidence bundle) form a dependency graph whose edges are labelled with the drift type each change activates.
sei.lock stores the anchors of the triple at the last verified sei run. When the engine runs sei status, it compares the current digests against those recorded in sei.lock without recomputing anything:
sei status# possible output (one line per SECTION, not per file):# classification: Reused# risks: Reused# model: Stale (re-measure)# data: ReusedIf a section’s digest has changed, sei status reports it as Stale and classifies the drift type; unchanged sections stay Reused. The conformance gate remains closed: there is no false green because sei status does not sign new evidence.
A/B/C classification: the engine infers it (not a declared envelope)
Section titled “A/B/C classification: the engine infers it (not a declared envelope)”The drift-type classification (A/B/C) is not declared in sei.yaml: the engine infers it from the triple diff (sei.lock + the dependency graph). There is no field or feature for a change “envelope” of acceptable changes today.
Obsolescence detection
Section titled “Obsolescence detection”A signed evidence bundle becomes obsolete when any of the three digests in sei.lock diverges from the current state of the repository. sei status emits exit ≠ 0 in that case, allowing obsolescence detection to be integrated into CI/CD pipelines as a necessary condition before any conformance assertion.
The principle is simple: without fresh evidence, conformance cannot be asserted. This is the first gate of the RDD flow, described in The two gates.
References
Section titled “References”| Artifact | Role in drift management |
|---|---|
sei.lock | Records the verified anchors of the triple |
sei status | Detects divergence vs sei.lock without recomputing |
sei run | Recomputes, measures, and re-anchors the triple |
sei.yaml | Declares the control classification (the A/B/C drift is inferred by the engine) |
See the sei CLI reference for command details and the sei.yaml reference for the manifest schema.