Skip to content

Conformance

Conformance Checks ​

Oasis CLI ships a catalogue of 45 conformance checks that assess a machine, a device or an endpoint and report what is actually true about it. Checks need no model, no network and no inference budget. They run from a shell, from CI, or from the agent mid-conversation.

This is what separates Oasis CLI from a general coding agent: the agent that wrote the configuration is the one that reads the machine back and checks it.

The catalogue ​

ModuleChecksAssesses
preempt-rt33Real-time readiness: kernel, scheduling, isolation, IRQs, power, measured jitter
opc-ua5Reachability, node map conformance, security policy, certificate validity, anonymous access
ethercat4Segment reachability, SubDevice count, dark ports, all-in-OP state
modbus2Reachability against a latency budget, and map conformance
iec-611311Structured Text toolchain availability
Total45

The four protocol modules need a device or an endpoint to point at. On a bare machine with nothing attached, the preempt-rt profile is the 33 checks that can be answered, which is what first-run setup runs if you defer the model question.

List what your build actually has. The set depends on which packs were compiled in, plus any of your own descriptors:

bash
oasis-agent check --list-modules

Verdicts ​

Four verdicts. A non-answer is never a pass.

VerdictMeaning
passThe property was measured and holds
failThe property was measured and does not hold
not_applicableThe check does not apply to this subject, with a reason
errorThe check could not run, with a reason: a missing tool, a probe that produced no number, or a command that would not start

A missing tool is not a passed check. not_applicable and error are reported separately and are never folded into a total a reader could mistake for a score.

Confidence classes ​

Every descriptor declares how strongly its criteria support the claim in its title. Confidence is enforced when the catalogue loads: a descriptor whose criteria are only a proxy for the property in its title cannot claim proven. It fails to load.

ClassCountMeaning
proven40The criteria measure the property in the title directly
indicative5The criteria are an inference, not a direct measurement

The five indicative checks include the two control-loop checks in the preempt-rt module, which infer loop behaviour without telemetry from the loop itself. They are labelled that way on purpose. See Limitations.

Severity and gates ​

SeverityChecks
critical11
high25
medium6
low3

Checks are grouped into two gates: L2 (11 checks) and L3 (34 checks), reflecting how deep an assessment goes.

Framework mappings ​

Every descriptor carries mappings to published control frameworks, so a finding can be traced to the control it evidences.

FrameworkMapped controls
NIST SP 800-5337
IEC 62443-3-324
IEC 61508-213
IEC 61508-35
IEC 62443-4-24

Every descriptor also carries written remediation, so a failure arrives with what to do about it rather than just a red line.

Running checks ​

bash
# Everything applicable to this machine
oasis-agent check

# One module
oasis-agent check --module preempt-rt

# One check by id
oasis-agent check --check l3.rt.preempt-rt-active

Subjects and targets ​

A check declares which subjects it understands and is refused against the rest.

SubjectWhat --target meansDefault target
device (default)A hostname or addressThis machine
repoA directory pathThe working directory
artefactA file path—
endpointAn address, e.g. opc.tcp://10.0.0.5:4840—
bash
# Assess a remote OPC UA endpoint
oasis-agent check --module opc-ua --subject endpoint --target opc.tcp://10.0.0.5:4840

# Assess a repository
oasis-agent check --module iec-61131 --subject repo --target ./plc-project

Exit codes ​

The exit code is the contract for CI.

CodeMeaning
0Nothing failed. Includes checks that could not be measured.
2Something failed.

A check that could not be measured leaves the code at 0 deliberately. A missing tool is not a failed assessment, and a pipeline that goes red for one teaches its owners to stop reading it.

Output format ​

bash
oasis-agent check --format json

JSON is the only supported format.

Using checks from a conversation ​

The Check tool exposes the same catalogue to the agent, so a conversation can measure the machine and act on the result in the same turn:

"Check whether this box is real-time capable, and if isolcpus isn't effective, tell me what to change."

Check is a safe-tier tool and never prompts.

Site-specific checks ​

Layer your own descriptor TOML over the built-in catalogue by check id. Your descriptor replaces the built-in one with the same id, and a new id adds a check.

bash
oasis-agent check --catalogue /etc/oasis/checks

Or set it once so every run and every Check tool call picks it up:

json
{
  "checks_catalogue": "/etc/oasis/checks"
}

Your descriptors are subject to the same confidence enforcement as the built-in ones.

Guidance skills ​

Four skills ship alongside the catalogue and are available to the agent through the Skill tool. They turn a report into a decision.

SkillUse when
check-triageAfter running Check or Audit, before reporting results. What each verdict and confidence class licenses you to claim
rt-provisioningA machine needs to become real-time capable. Choosing between a distro RT kernel, mainline PREEMPT_RT, and runtime preemption switching
rt-tuningA machine fails its PREEMPT_RT checks. Turning a report into the right fix in the right order
rt-control-loopWriting or reviewing a control program that has to hold a cycle time

Producing the document ​

check answers a question. To produce the artefact a customer is given, use audit.

software-defined automation