@oimlsmart/primmel-packages 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/oiml-cs/.primmel-allowlist.prl +7 -0
  2. package/oiml-cs/evaluation/abstract-processes.prl +454 -0
  3. package/oiml-cs/execution/test-report-checklist.prl +134 -0
  4. package/oiml-cs/framework/declarations.prl +1 -1
  5. package/oiml-cs/framework/documents/cid-01/abstract-processes.prl +112 -0
  6. package/oiml-cs/framework/documents/cid-01/requirements.prl +99 -0
  7. package/oiml-cs/framework/documents/od-01/abstract-processes.prl +157 -0
  8. package/oiml-cs/framework/documents/od-01/requirements.prl +138 -0
  9. package/oiml-cs/framework/documents/od-02/abstract-processes.prl +119 -0
  10. package/oiml-cs/framework/documents/od-02/requirements.prl +75 -0
  11. package/oiml-cs/framework/documents/pd-01/abstract-processes.prl +209 -0
  12. package/oiml-cs/framework/documents/pd-01/requirements.prl +117 -0
  13. package/oiml-cs/framework/documents/pd-02/abstract-processes.prl +217 -0
  14. package/oiml-cs/framework/documents/pd-02/requirements.prl +126 -0
  15. package/oiml-cs/framework/documents/pd-03/abstract-processes.prl +348 -0
  16. package/oiml-cs/framework/documents/pd-03/annex-d032.prl +48 -0
  17. package/oiml-cs/framework/documents/pd-03/requirements.prl +162 -0
  18. package/oiml-cs/framework/documents/pd-04/abstract-processes.prl +295 -0
  19. package/oiml-cs/framework/documents/pd-04/annex-d030.prl +54 -0
  20. package/oiml-cs/framework/documents/pd-04/requirements.prl +140 -0
  21. package/oiml-cs/framework/documents/pd-06/abstract-processes.prl +152 -0
  22. package/oiml-cs/framework/documents/pd-06/requirements.prl +122 -0
  23. package/oiml-cs/framework/documents/pd-07/abstract-processes.prl +99 -0
  24. package/oiml-cs/framework/documents/pd-07/requirements.prl +84 -0
  25. package/oiml-cs/framework/documents/pd-08/abstract-processes.prl +102 -0
  26. package/oiml-cs/framework/documents/pd-08/requirements.prl +82 -0
  27. package/oiml-cs/framework/documents/pd-09/abstract-processes.prl +234 -0
  28. package/oiml-cs/framework/documents/pd-09/requirements.prl +82 -0
  29. package/oiml-cs/framework/documents.prl +2 -2
  30. package/oiml-cs/package.primmel +1 -1
  31. package/oiml-r129/execution/test-report-checklist.prl +20 -0
  32. package/oiml-r129/package.primmel +1 -1
  33. package/oiml-r144/execution/test-report-checklist.prl +20 -0
  34. package/oiml-r144/package.primmel +1 -1
  35. package/oiml-r60/execution/test-report-checklist.prl +20 -0
  36. package/oiml-r60/package.primmel +1 -1
  37. package/oiml-r91/execution/test-report-checklist.prl +23 -0
  38. package/oiml-r91/package.primmel +1 -1
  39. package/package.json +2 -2
@@ -0,0 +1,7 @@
1
+ # .primmel-allowlist.prl — GENERATED from primmel-allowlist.yaml (TODO.roadmap/17), do not edit.
2
+ allowlist_entry {
3
+ rule C121
4
+ match "*realized_by \"*\" is not a declared process (abstract-process-references-resolve)*"
5
+ reason "The realized_by edges resolve against the COMPOSED model (the rec packages' concrete evaluation/processes.prl processes) by design — C121's merged-model semantics. The corpus's standalone check mode (no resolvePackage locator) cannot see them, and composing trips the pre-existing CASCO C28 (the include-transport migration, primmel-ts task 13). Content-level resolution is proven by the consumer's cs-coverage gate. Dies when the gates check composed (the STALE discipline)."
6
+ audit_ref "TODO.roadmap/42"
7
+ }
@@ -0,0 +1,454 @@
1
+ # OIML-CS REFERENCE PACKAGE — ABSTRACT PROCESS MODEL (PD-05)
2
+ # -----------------------------------------------------------------------------
3
+ # The OIML-CS certification process as ABSTRACT processes (TODO.roadmap/15;
4
+ # abstract form per TODO.roadmap/02 — signature + invariants, no steps).
5
+ # The 7-step usage flow (docs/oiml-cs-cert-workflow.md) plus BIML
6
+ # registration: application → review → dispatch → testing → evaluation →
7
+ # decision → issue → biml_registration. TODO.roadmap/41 (full PD-05
8
+ # coverage) adds the off-sequence flows: revision (§8.1, pre-existing),
9
+ # re_application (§4.5.7), registration_fee (§6.2–6.3),
10
+ # incorrect_conclusions (§7.1), parallel_certificates (§8.2),
11
+ # recommendation_update (§8.3) and scheme_a_certification (clause 5).
12
+ # Processes with an empty realized_by have no concrete Core realization —
13
+ # the coverage gate records them (and their provisions) as named gaps.
14
+ #
15
+ # Each abstract process declares:
16
+ # executor machine | actor (task 02 executor typing)
17
+ # roles role ids from data/core/evaluation/roles.yaml bound to this step
18
+ # signature in/out — the workflow records the step consumes/produces,
19
+ # named by Core entity store (data/core/entities/*.yaml)
20
+ # evidence evidence requirements — the records the step must produce or
21
+ # attach for the scheme's provisions to be inspectable
22
+ # invariants OCL-style booleans over the signature that hold on completion
23
+ # — paths name REAL Core entity fields (snake_case, references
24
+ # are the _id-suffixed fields, enum literals uppercase per the
25
+ # entity's enum_values, e.g. Application.status = 'REJECTED')
26
+ # provisions the /req/cs/* provisions (specification/requirements/cs.prl)
27
+ # this step enforces
28
+ # realized_by the CONCRETE Core process ids (data/core/evaluation/
29
+ # processes.yaml) that realize this abstract process in the
30
+ # platform's workflow skeleton — the documentary half of the
31
+ # mapping; the FORMAL mapping is the .prm
32
+ # (data/core/evaluation/platform-to-oiml-cs.prm,
33
+ # TODO.roadmap/16) and the coverage gate keeps the two
34
+ # consistent (a pair on one side only is a validation
35
+ # error); empty where the platform has no concrete process
36
+ # yet (dispatch — a named gap in the coverage report).
37
+ # approved_by the Core approval ids (data/core/evaluation/
38
+ # approvals.yaml) whose sign-off closes this step — the
39
+ # documentary half of the approval⇒abstract mapping; the
40
+ # coverage gate keeps it consistent with the .prm's
41
+ # approval-source pairs exactly as for realized_by (a pair
42
+ # on one side only is a validation error); empty where the
43
+ # step has no sign-off gate.
44
+ # activity_kind
45
+ # the ISO/IEC 17000 activity-kind ids (the iso-iec-17000
46
+ # package's evaluation/activity-archetypes.prl — TODO.roadmap/39)
47
+ # classifying this step in the functional approach; multi-kind
48
+ # is deliberate (evaluation = selection + determination per
49
+ # ISO/IEC 17065 3.3). Classification, not inheritance — the
50
+ # consumer's linker rule R23 (activity-kind-resolves) checks
51
+ # every id against the register. Untagged: dispatch — an
52
+ # OIML-CS platform addition (test-request logistics across
53
+ # eligible laboratories) with no 17000 functional-approach
54
+ # counterpart.
55
+ #
56
+ # Provenance: OIML-CS PD-05 Edition 6 (2024-03-11) + Amendment 1.
57
+ #
58
+ # This file is the single source of truth; the consumer's
59
+ # data/oiml-cs/evaluation/abstract-processes.yaml is its GENERATED YAML twin
60
+ # (cd browser && npm run gen:data; schema data/schemas/abstract-processes.yaml).
61
+ # The realized_by edges name CONCRETE processes that live in the rec
62
+ # packages (evaluation/processes.prl) — unresolvable under the standalone
63
+ # package check, so they ride one glob allowlist entry (C121; the
64
+ # oiml-cs-dataspace composition-gap precedent — the entry dies when the
65
+ # gates check composed).
66
+ process application {
67
+ name "Application"
68
+ summary "The manufacturer (or its authorised representative) applies to an OIML Issuing Authority for a certificate covering a measuring instrument type (single model or model family)."
69
+ validate_provision {
70
+ /req/cs/application-contents
71
+ }
72
+ signature {
73
+ out { applications }
74
+ }
75
+ invariants {
76
+ "[application].issuing_authority_id is not null"
77
+ "[application].manufacturer_id is not null"
78
+ }
79
+ activity_kind { selection }
80
+ roles { applicant }
81
+ evidence {
82
+ application_record { description "The application record with the PD-05 §4.1.2 contents: applicant and manufacturer identity, no-concurrent-application statement, type description, operation description and documentation list, sample information, previous test reports where applicable." required true }
83
+ subject_definition { description "The instrument definition on the subject chain (model family / models / samples with classification, parameters, capabilities) the application references." required true }
84
+ }
85
+ realized_by { submit_application }
86
+ executor actor
87
+ source { doc "PD-05 §4.1" clause "" }
88
+ }
89
+
90
+ process review {
91
+ name "Application review"
92
+ summary "The Issuing Authority reviews the application for completeness, may request additional information or changes, and accepts (notifying samples, laboratories, fees and schedule) or rejects with reasons."
93
+ validate_provision {
94
+ /req/cs/application-completeness
95
+ /req/cs/rejection-reason
96
+ /req/cs/fee-estimate
97
+ /req/cs/sample-count
98
+ /req/cs/application-time-estimate
99
+ }
100
+ signature {
101
+ in { applications }
102
+ out { applications }
103
+ }
104
+ invariants {
105
+ "[application].ia_review_result is not null"
106
+ "[application].status = 'REJECTED' implies [application].rejection_reason is not null"
107
+ }
108
+ activity_kind { selection }
109
+ roles { issuing_authority }
110
+ evidence {
111
+ review_outcome { description "The review decision (accept / reject / request-changes) with reviewer, date and — on rejection — the stated reasons (PD-05 §4.2.2, §4.2.4)." required true }
112
+ acceptance_notice { description "On acceptance: the required sample count, the receiving Test Laboratory(ies), the fee estimate (PD-05 §4.2.8) and the approximate evaluation schedule (PD-05 §4.2.9)." }
113
+ }
114
+ realized_by { review_application accept_application reject_application }
115
+ approved_by { ia_accept_application }
116
+ executor actor
117
+ source { doc "PD-05 §4.2" clause "" }
118
+ }
119
+
120
+ process dispatch {
121
+ name "Test request dispatch"
122
+ summary "The Issuing Authority dispatches test report requests to one or more eligible Test Laboratories, each request carrying exactly the tests (forms) and samples that laboratory must perform."
123
+ validate_provision {
124
+ /req/cs/test-laboratory-eligibility
125
+ }
126
+ signature {
127
+ in { applications measuringInstrumentSamples }
128
+ out { testRequests testAssignments }
129
+ }
130
+ invariants {
131
+ "[test_request].assigned_laboratory_id is not null"
132
+ "[test_request].required_forms.count >= 1"
133
+ }
134
+ roles { issuing_authority }
135
+ evidence {
136
+ test_request { description "One test request per laboratory: request number, assigned laboratory, models, samples, required forms and test conditions." required true }
137
+ laboratory_eligibility { description "Evidence that every dispatched laboratory is listed in the OIML-CS Declaration of an OIML Issuing Authority for the assigned tests." required true }
138
+ }
139
+ executor actor
140
+ source { doc "PD-05 §4.3.1" clause "" }
141
+ }
142
+
143
+ process testing {
144
+ name "Testing and test reporting"
145
+ summary "The Test Laboratory receives the samples, performs the assigned tests and examinations per the Recommendation's procedures, signs the evidence, and compiles and authorises the OIML test report (PD-05 §4.4)."
146
+ validate_provision {
147
+ /req/cs/test-report-18-elements
148
+ /req/cs/test-report-authorization
149
+ /req/cs/multiple-test-laboratories
150
+ /req/cs/test-report-language
151
+ /req/cs/test-report-logo
152
+ }
153
+ signature {
154
+ in { testRequests testAssignments measuringInstrumentSamples }
155
+ out { testReports formInstances }
156
+ }
157
+ invariants {
158
+ "[test_report].laboratory_id is not null"
159
+ "[test_assignment].status = 'COMPLETED' implies [test_assignment].form_instance_id is not null"
160
+ }
161
+ activity_kind { testing }
162
+ roles { test_laboratory }
163
+ evidence {
164
+ form_evidence { description "The completed form instances for every required form, signed by the evaluator and supervisor (per-form sign-off)." required true }
165
+ test_report { description "The OIML test report covering the PD-05 §4.4.3 eighteen elements, dated, signed and uniquely identified by the responsible person (PD-05 §4.4.4)." required true }
166
+ custody_record { description "The sample custody chain from receipt through testing (sample status and custody events)." }
167
+ }
168
+ realized_by { conduct_tests compile_test_report }
169
+ approved_by { tl_authorize_test_report }
170
+ executor actor
171
+ source { doc "PD-05 §4.3" clause "" }
172
+ }
173
+
174
+ process evaluation {
175
+ name "Type evaluation"
176
+ summary "The Issuing Authority compiles the type evaluation report: every test report reviewed, a determination per evaluated provision, and a conformity conclusion for the type."
177
+ validate_provision {
178
+ /req/cs/evaluation-report-contents
179
+ /req/cs/evaluation-report-id
180
+ /req/cs/evaluation-report-logo
181
+ /req/cs/evaluation-report-language
182
+ /req/cs/sample-retention
183
+ }
184
+ signature {
185
+ in { applications testReports formInstances }
186
+ out { evaluationReports }
187
+ }
188
+ invariants {
189
+ "[evaluation_report].test_report_ids.count >= 1"
190
+ "[evaluation_report].test_report_determinations.count = [evaluation_report].test_report_ids.count"
191
+ }
192
+ activity_kind { selection determination }
193
+ roles { issuing_authority }
194
+ evidence {
195
+ evaluation_report { description "The type evaluation report with the PD-05 §4.5.1 contents: per-test- report determinations, the conclusion on the conformity of the type, and the responsible persons' signatures (PD-05 §4.5.2)." required true }
196
+ }
197
+ realized_by { compile_evaluation_report }
198
+ approved_by { ia_approve_evaluation_report }
199
+ executor actor
200
+ source { doc "PD-05 §4.5" clause "" }
201
+ }
202
+
203
+ process decision {
204
+ name "Conformity decision"
205
+ summary "The Issuing Authority decides on the conformity of the type: conforming types proceed to certificate issuance; on failure the applicant is informed in writing of the reasons."
206
+ validate_provision {
207
+ /req/cs/failure-notice
208
+ }
209
+ signature {
210
+ in { evaluationReports }
211
+ out { evaluationReports }
212
+ }
213
+ invariants {
214
+ "[evaluation_report].overall_decision is not null"
215
+ "[evaluation_report].overall_decision = 'REJECTED' implies [evaluation_report].review_notes is not null"
216
+ }
217
+ activity_kind { decision }
218
+ roles { issuing_authority }
219
+ evidence {
220
+ decision_record { description "The overall decision (conform / not conform) with conditions and review notes; on failure, the written reasons given to the applicant." required true }
221
+ }
222
+ realized_by { compile_evaluation_report }
223
+ executor actor
224
+ source { doc "PD-05 §4.5.6" clause "" }
225
+ }
226
+
227
+ process issue {
228
+ name "Certificate issuance"
229
+ summary "The Issuing Authority issues the OIML certificate for a conforming type: Annex-A format, responsible-person signature, OIML-CS logo, Annex-B certificate number, and delivery to the applicant with the evaluation and test reports."
230
+ validate_provision {
231
+ /req/cs/certificate-requirements
232
+ /req/cs/certificate-format
233
+ /req/cs/certificate-number
234
+ /req/cs/certificate-delivery
235
+ }
236
+ signature {
237
+ in { evaluationReports }
238
+ out { certificates }
239
+ }
240
+ invariants {
241
+ "[certificate].evaluation_report_id.overall_decision = 'APPROVED' or [certificate].evaluation_report_id.overall_decision = 'CONDITIONALLY_APPROVED'"
242
+ "[certificate].certificate_number is not null"
243
+ }
244
+ activity_kind { certification }
245
+ roles { issuing_authority }
246
+ evidence {
247
+ certificate { description "The issued certificate: type designation, applicant and manufacturer, certified characteristics, Annex-B number, date of issue and responsible-person signature." required true }
248
+ delivery_record { description "The hand-over of certificate, evaluation report and test reports to the applicant (owner), with the Issuing Authority's copies retained." required true }
249
+ }
250
+ realized_by { issue_certificate }
251
+ approved_by { ia_sign_certificate }
252
+ executor actor
253
+ source { doc "PD-05 §4.6" clause "" }
254
+ }
255
+
256
+ process biml_registration {
257
+ name "BIML registration"
258
+ summary "The Issuing Authority transmits the issued certificate to the BIML for registration; the registered certificate is visible in the public OIML-CS register."
259
+ validate_provision {
260
+ /req/cs/biml-registration
261
+ }
262
+ signature {
263
+ in { certificates }
264
+ out { certificates }
265
+ }
266
+ invariants {
267
+ "[certificate].biml_registration is not null"
268
+ }
269
+ activity_kind { attestation }
270
+ roles { issuing_authority biml }
271
+ evidence {
272
+ registration_record { description "The BIML registration record for the issued certificate (transmitted copy, registration date, public register entry)." required true }
273
+ }
274
+ realized_by { register_certificate }
275
+ approved_by { biml_register_certificate }
276
+ executor actor
277
+ source { doc "PD-05 clause 6" clause "" }
278
+ }
279
+
280
+ process revision {
281
+ name "Certificate revision"
282
+ summary "The Issuing Authority revises an issued and registered certificate — correcting an error, modifying the certified type, or transferring ownership — keeping the initial certificate number with a revision number and reason, and re-registers it with the BIML."
283
+ validate_provision {
284
+ /req/cs/certificate-revision
285
+ /req/cs/certificate-revision-mechanics
286
+ }
287
+ signature {
288
+ in { certificates }
289
+ out { certificates certificateAnnexes }
290
+ }
291
+ invariants {
292
+ "[certificate].revisions.count >= 1"
293
+ }
294
+ activity_kind { decision certification }
295
+ roles { issuing_authority }
296
+ evidence {
297
+ revision_record { description "The revision record: initial certificate number retained, revision number, the statement replacing the previous version(s) with the reason(s) for the revision, and the re-registration." required true }
298
+ }
299
+ realized_by { handle_revision }
300
+ approved_by { ia_approve_revision }
301
+ executor actor
302
+ source { doc "PD-05 §8.1" clause "" }
303
+ }
304
+
305
+ process re_application {
306
+ name "Re-application after failure"
307
+ summary "After a failed evaluation the applicant submits a new application with samples of a modified or newly identified type; new tests may be limited to the previously failed requirements only where the evidence supports that the modification did not affect the instrument's performance for all other requirements."
308
+ validate_provision {
309
+ /req/cs/re-application
310
+ }
311
+ signature {
312
+ in { applications evaluationReports }
313
+ out { applications }
314
+ }
315
+ invariants {
316
+ "[application].issuing_authority_id is not null"
317
+ }
318
+ activity_kind { selection }
319
+ roles { applicant issuing_authority }
320
+ evidence {
321
+ previous_failure_link { description "The link from the new application to the previous failed evaluation it follows (the failed type and its evaluation report)." required true }
322
+ retest_limitation_evidence { description "Where tests are limited to the previously failed requirements: the evidence supporting that the modification is not likely to have affected performance for all other requirements (PD-05 §4.5.7)." }
323
+ }
324
+ executor actor
325
+ source { doc "PD-05 §4.5.7" clause "" }
326
+ }
327
+
328
+ process registration_fee {
329
+ name "Registration fee and listing"
330
+ summary "The BIML invoices the registration fee (the certificate owner where national regulations bar the Issuing Authority's pass-through); the certificate is added to the list of registered certificates but withdrawn if payment is not received within 3 months of the invoice date (owner-invoiced certificates are listed on payment)."
331
+ validate_provision {
332
+ /req/cs/registration-fee
333
+ /req/cs/registration-withdrawal
334
+ }
335
+ signature {
336
+ in { certificates }
337
+ out { certificates }
338
+ }
339
+ invariants {
340
+ "[certificate].biml_registration is not null"
341
+ }
342
+ activity_kind { withdrawal }
343
+ roles { biml issuing_authority }
344
+ evidence {
345
+ fee_invoice { description "The BIML registration-fee invoice (to the Issuing Authority, or to the certificate owner per PD-05 §6.3) and its payment record." required true }
346
+ listing_withdrawal_record { description "The listing of the certificate in the registered list and, where payment is not received within 3 months of the invoice date, the withdrawal of the listing (PD-05 §6.2)." required true }
347
+ }
348
+ executor actor
349
+ source { doc "PD-05 §6.2–6.3" clause "" }
350
+ }
351
+
352
+ process incorrect_conclusions {
353
+ name "Incorrect-conclusions handling"
354
+ summary "On documented and substantiated evidence that the tests underlying an issued certificate were performed and/or interpreted incorrectly, the Executive Secretary consults the relevant Issuing Authority and the PD-01 clause 6 (complaints) procedure applies — up to deregistration of the certificate."
355
+ validate_provision {
356
+ /req/cs/incorrect-conclusions
357
+ }
358
+ signature {
359
+ in { certificates }
360
+ out { certificates }
361
+ }
362
+ invariants {
363
+ "[certificate].status = 'UNDER_INVESTIGATION' implies [certificate].investigation is not null"
364
+ }
365
+ activity_kind { complaint }
366
+ roles { biml issuing_authority }
367
+ evidence {
368
+ investigation_record { description "The documented and substantiated evidence, the Executive Secretary's consultation with the Issuing Authority, and the outcome under the PD-01 clause 6 procedure (resolve or deregister)." required true }
369
+ }
370
+ realized_by { handle_complaint deregister_certificate }
371
+ executor actor
372
+ source { doc "PD-05 §7.1" clause "" }
373
+ }
374
+
375
+ process parallel_certificates {
376
+ name "Parallel certificate issuance"
377
+ summary "A new applicant in possession of all the §4.1.2 technical documentation and the existing type evaluation report obtains a new certificate issued in parallel to the original; the Issuing Authority inquires into the validity of the application (e.g. the original applicant's permission) and the parallel certificate is registered per clause 6."
378
+ validate_provision {
379
+ /req/cs/parallel-certificates
380
+ }
381
+ signature {
382
+ in { certificates }
383
+ out { certificates }
384
+ }
385
+ invariants {
386
+ "[certificate].parallel_to is not null"
387
+ "[certificate].original_applicant is not null"
388
+ }
389
+ activity_kind { certification }
390
+ roles { applicant issuing_authority }
391
+ evidence {
392
+ documentation_possession { description "Evidence that the new applicant possesses all the §4.1.2 technical documentation and the existing OIML type evaluation report (PD-05 §8.2.1)." required true }
393
+ parallel_record { description "The parallel certificate itself: new sequential number, the original applicant and the source certificate recorded, and its clause-6 registration." required true }
394
+ }
395
+ realized_by { issue_certificate }
396
+ executor actor
397
+ source { doc "PD-05 §8.2" clause "" }
398
+ }
399
+
400
+ process recommendation_update {
401
+ name "Recommendation-revision certificate update"
402
+ summary "After a revision of the relevant OIML Recommendation, the certificate owner applies for an updated certificate on the basis of the revised Recommendation; the Issuing Authority determines whether the type complies and defines any additional tests and examinations, and on successful completion issues a new certificate and type evaluation report, registered per clause 6."
403
+ validate_provision {
404
+ /req/cs/recommendation-revision-updates
405
+ }
406
+ signature {
407
+ in { certificates }
408
+ out { evaluationReports certificates }
409
+ }
410
+ invariants {
411
+ "[certificate].edition_change is not null"
412
+ "[certificate].edition_change.new_evaluation_report_id is not null"
413
+ }
414
+ activity_kind { decision certification }
415
+ roles { applicant issuing_authority }
416
+ evidence {
417
+ update_determination { description "The Issuing Authority's determination under PD-05 §8.3.2: the previous and new editions, whether additional tests are required, and their definition (Certificate.edition_change)." required true }
418
+ updated_certificate { description "The new certificate and type evaluation report issued on successful completion of any additional tests, registered per clause 6 (PD-05 §8.3.3)." required true }
419
+ }
420
+ realized_by { handle_edition_change }
421
+ executor actor
422
+ source { doc "PD-05 §8.3" clause "" }
423
+ }
424
+
425
+ process scheme_a_certification {
426
+ name "Scheme A processing"
427
+ summary "Scheme A mirrors the clause-4 flow (its provisions apply via the clause-5 cross-references) with the Scheme-A deltas enforced as provisions: additional national requirements declared at application and tested/reported per the Utilizer/Associate Declarations (§5.1.4/§5.3.2/§5.4.2), Manufacturer Test Laboratory data flagged in the evaluation report (§5.3.1 b/§5.5.4/§5.5.5), and the validating ANR letter sent to the BIML with the certificate (§5.6.3)."
428
+ validate_provision {
429
+ /req/cs/scheme-a-national-requirements
430
+ /req/cs/scheme-a-mtl-test-data
431
+ /req/cs/scheme-a-anr-validation-letter
432
+ }
433
+ signature {
434
+ in { applications }
435
+ out { certificates }
436
+ }
437
+ invariants {
438
+ "[application].scheme = 'A' implies [certificate].scheme = 'A'"
439
+ }
440
+ activity_kind { selection determination certification }
441
+ roles { applicant issuing_authority }
442
+ evidence {
443
+ anr_declaration { description "The applicant's declaration of the additional national requirement tests applied for (PD-05 §5.1.4) — only where ANR tests are applied for." }
444
+ mtl_use_statement { description "The prominent statement of Manufacturer Test Laboratory use with the respective tests and the MTL designation at the head of the evaluation report (PD-05 §5.5.4) — only where MTL reports are utilised." }
445
+ anr_validation_letter { description "The Issuing Authority's letter validating conformity to the additional national requirements, sent to the BIML with the certificate (PD-05 §5.6.3) — only where ANR tests were conducted." }
446
+ }
447
+ realized_by { submit_application compile_test_report compile_evaluation_report issue_certificate register_certificate }
448
+ executor actor
449
+ source { doc "PD-05 clause 5" clause "" }
450
+ }
451
+
452
+ process_model certification_process {
453
+ sequence { application review dispatch testing evaluation decision issue biml_registration }
454
+ }
@@ -0,0 +1,134 @@
1
+ # OIML TEST REPORT 18-ELEMENT CHECKLIST — the OIML-CS reference package
2
+ # -----------------------------------------------------------------------------
3
+ # PD-05 §4.4.3: the required elements (a–r) of every OIML test report,
4
+ # validated at report compilation time. Single-sourced here
5
+ # (TODO.roadmap/15; census §1.1 — the rec copies were structurally identical
6
+ # except the rec-bound source/validation strings of four entries) and overlaid
7
+ # by each Recommendation package (overlay true — the kernel's B3.10 deep
8
+ # merge: entry scalars land in place, the base order survives).
9
+ #
10
+ # Composition points (TODO.roadmap/13) — each rec overlay adds the rec-bound
11
+ # strings for these four entries:
12
+ # - sample_identification (h): validation form id / source naming the
13
+ # rec's sample-identification form
14
+ # - test_facility (m): source naming the rec's test-equipment form(s)
15
+ # - instrument_setup (n): validation form id / source naming the rec's
16
+ # instrument-identification form
17
+ # - adjustments (o): source naming the rec's adjustments form
18
+ # The package deliberately carries NO default for these strings: a rec that
19
+ # has not bound its own forms yet leaves the entry without them (a wrong-rec
20
+ # default would silently validate against another rec's forms — the
21
+ # census's R2 residue failure mode).
22
+ #
23
+ # Provenance: OIML-CS PD-05 Edition 6 (2024-03-11), §4.4.3.
24
+ #
25
+ # This file is the single source of truth; the consumer's
26
+ # data/oiml-cs/execution/test-report-checklist.yaml is its GENERATED YAML twin
27
+ # (cd browser && npm run gen:data).
28
+ test_report_checklist oiml-cs-trf {
29
+ entry title {
30
+ element "a"
31
+ description "Title: 'OIML test report'"
32
+ obligation shall
33
+ source "test_report.title"
34
+ }
35
+ entry tl_identification {
36
+ element "b"
37
+ description "Name and address of the test laboratory, and location of tests"
38
+ obligation shall
39
+ source "test_report.laboratoryId → organization.name, organization.address"
40
+ validation "test_report.laboratoryId is not null"
41
+ }
42
+ entry unique_report_id {
43
+ element "c"
44
+ description "Unique identification of the report, appearing on each page, with an end marker"
45
+ obligation shall
46
+ source "test_report.reportNumber"
47
+ }
48
+ entry applicant_identification {
49
+ element "d"
50
+ description "Name and address of the applicant"
51
+ obligation shall
52
+ source "application.applicant.company, application.applicant.address"
53
+ }
54
+ entry recommendation_reference {
55
+ element "e"
56
+ description "OIML Recommendation reference (number and year of edition)"
57
+ obligation shall
58
+ source "standard.identifier + standard.year"
59
+ }
60
+ entry category_identification {
61
+ element "f"
62
+ description "Category identification of the instrument"
63
+ obligation shall
64
+ source "standard.docnumber"
65
+ }
66
+ entry type_designation {
67
+ element "g"
68
+ description "Type or family designation of the instrument"
69
+ obligation shall
70
+ source "instrument.model + application.typeDesignation"
71
+ }
72
+ entry sample_identification {
73
+ element "h"
74
+ description "Specific samples tested, including their identification"
75
+ obligation shall
76
+ }
77
+ entry test_dates {
78
+ element "i"
79
+ description "Dates of testing for each test"
80
+ obligation shall
81
+ source "form_instance.created"
82
+ }
83
+ entry test_location {
84
+ element "j"
85
+ description "Place of testing"
86
+ obligation shall
87
+ source "test_report.testLocation"
88
+ }
89
+ entry test_personnel {
90
+ element "k"
91
+ description "Person who conducted each test"
92
+ obligation shall
93
+ source "form_instance.evaluator"
94
+ }
95
+ entry environmental_conditions {
96
+ element "l"
97
+ description "Environmental conditions during each test"
98
+ obligation shall
99
+ validation "form_contains_environmental_data"
100
+ }
101
+ entry test_facility {
102
+ element "m"
103
+ description "Description of test facility and equipment"
104
+ obligation shall
105
+ }
106
+ entry instrument_setup {
107
+ element "n"
108
+ description "Instrument or simulation setup information"
109
+ obligation shall
110
+ }
111
+ entry adjustments {
112
+ element "o"
113
+ description "Authorized adjustments or modifications"
114
+ obligation shall
115
+ }
116
+ entry results_with_uncertainty {
117
+ element "p"
118
+ description "Results including measurement uncertainties and traceability"
119
+ obligation may
120
+ description_note "If specified in the relevant OIML Recommendation"
121
+ }
122
+ entry per_test_conclusion {
123
+ element "q"
124
+ description "Pass/fail conclusion for each test"
125
+ obligation shall
126
+ source "form_instance.result"
127
+ }
128
+ entry authorization {
129
+ element "r"
130
+ description "Name, function, and signature of authorizing person"
131
+ obligation shall
132
+ source "test_report.evaluator + test_report.signatureDate"
133
+ }
134
+ }
@@ -14,7 +14,7 @@
14
14
  # specification/requirements/cs.prl: the scheme-governance constraint
15
15
  # (who may certify what, and only after a signed Declaration) now has its
16
16
  # model home here — the gate references the abstract processes it blocks
17
- # (the consumer's evaluation/abstract-processes.yaml, still YAML-only).
17
+ # (evaluation/abstract-processes.prl the PD-05 certification process).
18
18
  #
19
19
  # Declaration semantics (PD-08, verified against the corpus audit
20
20
  # analysis/oiml-cs-corpus-audit-2026-07.md, corpus C):