Anyone can generate a fluent document about a control system. The question worth asking is not how well it reads, but what is being claimed, on what evidence, and who is accountable for it. This is the standard we hold ourselves to — published so you can check us against it, and check anyone else against it too.
Every claim cites a file, a location and a verbatim quote. Open the file, search for the quote.
Hold another assessment — ours or anyone else’s — to the same questions.
§11 says what this method cannot establish. A standard with no limitations is marketing.
Version 0.1 — 2026-07-27. Publishable.
This document may be shared. It states what a Daritas assessment asserts and how anyone can check it. The how — pipeline, prompts, orchestration, the engineering that makes it affordable — is a business secret and lives in program-analysis-methodology.md, which must never be quoted publicly. The line is what vs how: a customer cannot buy what they cannot see, and a competitor should not be handed the recipe. Everything here is deliberately on the public side of that line, because a standard that cannot be shown cannot be used to judge anything.
An assessment is an assertion about a machine that people depend on. Anyone can now generate a fluent document about a control system; the question a buyer should ask is not how good does this read but what is being claimed, on what evidence, and who is accountable for it. Those are answerable only against a stated standard.
So this is the standard we hold ourselves to, published so that
It describes the current, implemented behaviour. Where something is designed but not built, it says so.
A Daritas assessment describes one system: the automation that controls a defined piece of plant, as it exists in a defined set of source artifacts at a defined moment.
An assessment asserts things about the sources it was given. It does not assert that the plant matches those sources. That gap is real — code is edited on a laptop that never reaches the repository, a drive is reconfigured through its keypad — and the standard treats the gap as a finding rather than as an assumption. Where a second channel exists (runtime observation, a measurement, an engineer's testimony) a disagreement between channels is recorded as an open conflict, not silently resolved in favour of either.
Out of scope by construction: whether the system's design is correct, safe, or compliant. We report what the logic does, not what it should do. A claim that an interlock exists is not a claim that the interlock is adequate.
Everything in an assessment reduces to claims. A claim is a statement about the system, carrying its own evidence, its own state, and its own confidence. There is no prose in a deliverable that is not either a claim, a declared unknown, or narrative that links them.
A behavioural claim is stated in the shape of a Hoare triple — {pre} ⟨the cited source⟩
{post}: under this precondition, this code, that postcondition. The command is not restated,
because the claim already cites it.
Every claim carries one or more evidence records. An evidence record names its origin, the source location, and a verbatim quote. The implemented origins are:
| Origin | What it means |
|---|---|
plcCode | Control program source |
config | A product configuration artifact (project XML, recipe, alarm DB) |
tagDb, alarmList | Tag / alarm exports |
hmi | Operator interface definitions |
drawing, manual | Engineering documents |
runtime | Observed behaviour of the running system |
customerAnswer | An answer from the customer's own people |
expertTestimony | Captured tacit knowledge — documentation that was never written |
reviewer | A reviewing engineer's own statement |
productProfile | A versioned rule that interprets a vendor configuration field |
inferredPattern | A recognised pattern, not a quotation |
Origins are not ranked into a single hierarchy, deliberately. A measurement is not automatically truer than the code, and the code is not automatically truer than the engineer who maintains it. What matters is that the origin is stated, so a reader can weigh it.
A claim whose quote cannot be found verbatim in the cited source is rejected, by machine, before a human ever sees it.
This is the load-bearing rule of the standard. Extraction proposes; a deterministic guard disposes. For each proposed claim the guard resolves the cited file, searches for the quoted text, and:
reason: unknown-file);reason: quote-not-found);A claim left with no verifiable evidence does not enter the model. Rejections are recorded and reported, not silently dropped: a run that proposed a great deal and grounded little says so, and that ratio is itself information about the sources.
The consequence worth stating plainly: a fabricated or paraphrased citation is wasted output. It cannot reach a deliverable, because the check is not a review step that might be skipped — it is mechanical and runs on every claim.
A claim's state records how it is known. It is a ladder, not a score:
| State | Meaning |
|---|---|
draft | Proposed, not yet grounded |
aiInferred | Machine-extracted, grounded to a verbatim quote by the guard |
sourceSupported | Supported by a source artifact |
runtimeObserved | Corroborated by observed behaviour of the running system |
humanReviewed | A qualified reviewer verified it against its evidence |
crossChecked | Corroborated across independent channels |
customerConfirmed | The customer's own people confirmed it |
requiresClarification | Known to be unresolved — an open question, not an omission |
contradicted | Evidence conflicts; recorded as a conflict |
safetySensitive | Flagged for its consequence, independent of how well it is known |
deprecated | Superseded by a later version |
approvedForDocs / approvedForTests / approvedForImplementation | Released for a specific downstream use |
Only a defined subset may appear in a customer-facing deliverable (CUSTOMER_FACING_STATES):
sourceSupported, runtimeObserved, humanReviewed, crossChecked, customerConfirmed, and the
three approvedFor… states. A bare aiInferred claim is not customer-facing by default — it is
machine output that has passed the guard, and the gate exists precisely so that "the AI said it,
and the quote checks out" is not by itself presented as an established fact.
Two depths, chosen per assessment (and recorded in the deliverable):
requiresClarification rather than stated.The second exists because some systems — highly concurrent, heavily dynamic, or supplied only as partial exports — cannot honestly yield behavioural claims from static sources. Reporting structure and declining to assert behaviour is the correct output for those, and the standard names it rather than letting a thin assessment pass as a full one.
Two numbers accompany every assessment, and both may be unflattering:
Declared unknowns are part of the deliverable, not a gap in it. What the sources cannot establish is listed as an open question with the quoted line that raised it. A question put to a human and left unanswered becomes a labelled assumption — visible as an assumption for as long as the model exists — never a confident sentence with nothing behind it.
Every deliverable carries exactly one of two grades, and the label is never blurred:
confirmed, corrected, flagged) are part of
the record, including corrections and disagreements.The reviewed grade is what accountability costs, and it is the only thing in an assessment that a machine cannot supply. A review is a record of what a person examined and concluded — not a certificate, and not a proof of the software.
Daritas certifies nothing. We produce the evidence and the trail; a qualified person's signature is theirs, and any regulatory weight it carries comes from them, not from us.
A system changes. Every assessment is a version of a system's model, and later versions are diffed against earlier ones: what changed, which claims still hold, which are invalidated, which need re-review. Claims affected by a change are marked stale until their evidence is renewed.
A deliverable therefore states what it is current to, and staleness is visible rather than assumed.
examples/ahu-1 is a public synthetic
package shipped with expected outputs — claims, open questions, assets — so the method can be
exercised end to end by anyone, without a customer's material.A standard that lists no limitations is marketing. Ours:
This document is versioned. Changes that alter what a grade or a state asserts move the version and are dated, so a deliverable can name the standard version it was produced under. Assessments delivered before a change remain governed by the version in force when they were issued.
If a claim in one of our deliverables does not survive the check in §10, that is a defect and we want to hear about it.