Explicit states
Discriminated unions for measurement availability, finding lifecycle, threshold disposition, comparison compatibility, and gate results — not booleans or free-form strings.
Architecture
Dokimos is an F# system built around one rule: an observation is not a judgment. External effects sit at the edges, domain states are explicit types, and each stage's output can be inspected without trusting the next one.
Pipeline
docs/architecture/ARCHITECTURE.md
Files and Git history. Reading them is an explicit external effect.
Language-specific collectors with declared capabilities. They cannot reinterpret history.
Language-neutral: metric, version, scope, measurement, provenance.
Versioned JSON artifacts today, behind a storage boundary.
Compatible comparisons, trends, finding transitions.
Thresholds, ratchets, dispositions, accepted baselines.
Canonical JSON now; human interfaces later.
Design rules
From AGENTS.md and REQUIREMENTS.md R9.
Discriminated unions for measurement availability, finding lifecycle, threshold disposition, comparison compatibility, and gate results — not booleans or free-form strings.
Reading Git, invoking analyzers, and writing artifacts are explicit edges. Measurement, comparison, and policy are pure functions.
Snapshots are never rewritten. New policy never edits old observations. Re-analysis creates new evidence.
The F# build fails on any warning, and that zero-warning state is itself ratcheted in BASELINE-0001.
Projects
Dokimos.sln
Echelon boundaries
REQUIREMENTS.md R8 and R13.
| System | Owns | Relationship to Dokimos | Integration |
|---|---|---|---|
| Dokimos | Code-quality evidence, history, comparison, and quality-policy evaluation. | This system. | Implemented |
| Praxis / ROS | Engineering work items, execution attribution, provenance, and development telemetry. | Dokimos's repository is governed by ROS. Dokimos may correlate quality evidence with ROS telemetry through an explicit evidence boundary; it does not collect or re-own that telemetry. | Planned |
| Ordo | Engineering and state methodology; legality of application state. | Dokimos follows Ordo/SDE conventions and models its own states as explicit types. | Implemented |
| Tutela | Security assurance and security-specific authority. | Security-specific analysis routes to Tutela. Dokimos does not become a competing security scanner. | Planned |
| Aegis | Unexpected operational faults at architectural boundaries. | Git, filesystem, process, and persistence faults are to be classified through Aegis. Expected outcomes — unavailable metrics, policy failures — stay typed Dokimos results. | Planned |
| Forma | Reusable application presentation. | The interactive results UI will consume a pinned Forma release. | Planned |
| Folio | Reusable print and report presentation. | Printable quality reports will consume a pinned Folio release. | Planned |
Dokimos must stay independently installable. If an optional Echelon system is absent or unreachable, Dokimos records the related evidence as unavailable and carries on. It never fails, and never invents data, because a neighbour is missing.
This website
site/ in the Dokimos repository.
This site is static HTML and CSS produced by a small deterministic Node build. It reads the metric catalog, the accepted baseline snapshot, and the ratchet policy directly from the repository, and it refuses to build if the site's claims about implementation status disagree with that evidence.
Demonstration data is validated against a schema, labelled on every surface, and derived with the same rules as the F# domain. Charts are rendered at build time with text and table equivalents; no JavaScript is required to read anything. Read the site source.