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

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