Skip to content
DRAFT⚠OIML SMART pilot programme · internal use only · all documents and specifications are drafts and may change without notice

The component architecture

One platform, five repositories, one data flow, Primmel packages are the single source of truth, everything else is generated, executed, or published from them. The program is organized in two tiers, SMART (Type-approval) and SMART+ (instrument-instance lifecycle). Every number on this page is either pinned by a freshness gate against the live system or dated and marked ungated.

§ 01The repositories9 repos · 2 orgs

The platform spans two GitHub organizations, primmel for the language, kernel, and shared documentation, oimlsmart for the program, each repo with exactly one job.

The target repository tree: primmel and oimlsmart organizations and how their repos link
oimlsmart/smart
the platform: Primmel packages (SSOT), generated data trees, the app, the pipelines (private — cited, never linked)
primmel/primmel-ts
the kernel: parser, linter (C1–C99), coverage calculus, diff, visit
primmel/sst
the SST framework: kind-agnostic runtime, shell, bench, specs, visit
oimlsmart/sst
the OIML instrument library for the SST (the D 11 base, the kinds, the ACME instances incl. the composite), visit
oimlsmart/cnml
the OIML CNML project: the certificate format on Confium Mode 3, visit
oimlsmart/platform-server
the server kernel package: the store seam, D1 migrations, the instance profile, the mailer, RBAC, the OIDC cones (private — cited, never linked)
primmel/primmel-smart-docs
the published docs federation (the platform volumes), visit
primmel/primmel
the predecessor language (v2; v3 is a strict superset)
oimlsmart/smart-classroom-r60
the OIML classroom viewer (private — cited, never linked)
§ 02The single source of truthbyte-clean both directions

Normative content is authored exactly once, as Primmel packages. The data trees the app executes are generated artifacts; the documentation site's projections are generated artifacts. A drift guard proves packages ≡ data ≡ projections byte-clean in both directions, so nothing can silently fork.

The SSOT flow: Primmel packages generate data trees and app projections, with the drift guard proving byte-clean equivalence
§ 03The gatespinned by the freshness gate, or dated ungated

These are the live numbers, as of the current platform snapshot. This page cannot drift: a test parses the platform's own architecture doc and fails the build if a gated figure below goes stale. The two suite rows the gate cannot reach — the kernel's and the simulator's own repositories do not state their counts in a parseable source — carry their count date and an ungated mark instead, and the freshness suite fails when either date goes stale.

41
Primmel packages (SSOT)
0 lint errors
6,474
App unit tests
453 files
387/400
End-to-end
puppeteer, live app
0 errors
Data validation
schema + semantic rules over all data
1591/1611
Kernel suite
primmel/primmel-ts · counted 2026-09-27 · ungated
255/259
Simulator suite
primmel/sst · counted 2026-09-27 · ungated
§ 04The deep documentationthe federation

Every component has exactly one documentation home. The volumes below are the deep reference, this site links, never duplicates.