@oimlsmart/primmel-packages 0.5.0 → 0.7.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 (32) hide show
  1. package/oiml-cs/execution/test-report-checklist.prl +134 -0
  2. package/oiml-cs/framework/documents.prl +2 -2
  3. package/oiml-cs/package.primmel +1 -1
  4. package/oiml-r129/.primmel-allowlist.prl +30 -0
  5. package/oiml-r129/evaluation/approvals.prl +48 -0
  6. package/oiml-r129/evaluation/gateways.prl +31 -0
  7. package/oiml-r129/evaluation/processes.prl +205 -24
  8. package/oiml-r129/evaluation/workflow.prl +25 -15
  9. package/oiml-r129/execution/test-report-checklist.prl +20 -0
  10. package/oiml-r129/package.primmel +1 -1
  11. package/oiml-r144/.primmel-allowlist.prl +36 -0
  12. package/oiml-r144/evaluation/approvals.prl +48 -0
  13. package/oiml-r144/evaluation/gateways.prl +36 -0
  14. package/oiml-r144/evaluation/processes.prl +205 -24
  15. package/oiml-r144/evaluation/workflow.prl +25 -15
  16. package/oiml-r144/execution/test-report-checklist.prl +20 -0
  17. package/oiml-r144/package.primmel +1 -1
  18. package/oiml-r60/.primmel-allowlist.prl +42 -0
  19. package/oiml-r60/evaluation/approvals.prl +48 -0
  20. package/oiml-r60/evaluation/gateways.prl +30 -0
  21. package/oiml-r60/evaluation/processes.prl +205 -24
  22. package/oiml-r60/evaluation/workflow.prl +25 -15
  23. package/oiml-r60/execution/test-report-checklist.prl +20 -0
  24. package/oiml-r60/package.primmel +1 -1
  25. package/oiml-r91/.primmel-allowlist.prl +42 -0
  26. package/oiml-r91/evaluation/approvals.prl +48 -0
  27. package/oiml-r91/evaluation/gateways.prl +34 -0
  28. package/oiml-r91/evaluation/processes.prl +205 -24
  29. package/oiml-r91/evaluation/workflow.prl +25 -15
  30. package/oiml-r91/execution/test-report-checklist.prl +23 -0
  31. package/oiml-r91/package.primmel +1 -1
  32. package/package.json +2 -2
@@ -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
+ }
@@ -9,8 +9,8 @@
9
9
  # The per-document models of the corpus (PD-01…PD-09, CID-01, OD-01/02)
10
10
  # are tasks 42–43; this file models the HIERARCHY and the entry conditions
11
11
  # only. PD-05 (the certification process) already has its model in this
12
- # package (specification/requirements/cs.prl + the consumer's
13
- # evaluation/abstract-processes.yaml + execution/test-report-checklist.yaml).
12
+ # package (specification/requirements/cs.prl + evaluation/abstract-processes.prl
13
+ # + execution/test-report-checklist.prl).
14
14
  #
15
15
  # Numbering: official published PDF (reference-docs/cs/docs/b018-e25.pdf).
16
16
  #
@@ -5,6 +5,6 @@ package {
5
5
  description "OIML-CS reference package — the certification-scheme content no Recommendation owns: the B 18:2025 framework model (participants, schemes + category lifecycle, declarations, governing documents, governance — TODO.roadmap/40), the /req/cs/* scheme provisions (PD-05), the 7-step certification process as abstract processes with roles and evidence requirements, the 18-element test-report-form checklist (PD-05 §4.4.3), the certificate requirements (PD-05 §4.6 + Annexes A/B), the participant-competence document modules (TODO.roadmap/42 — documents/pd-03 IA approval, documents/pd-04 TL approval, documents/pd-02 expert approval, with the D 30/D 32 application guides annexed informatively), the scheme-governance document modules (TODO.roadmap/43 — documents/pd-01 appeals, documents/pd-06 certificate use, documents/pd-07 transitions, documents/pd-08 Declarations, documents/pd-09 Utilizers/Associates, documents/cid-01 clarifications, documents/od-01 MC rules, documents/od-02 TLF rules), and the scheme-completeness map to ISO/IEC 17067 (oiml-cs-to-17067.prm + the cs-scheme-coverage gate). Composed into each Recommendation via `uses: [oiml-cs]` ahead of core."
6
6
  uses { iso-iec-17000 iso-iec-17065 iso-iec-17025 iso-iec-17067 }
7
7
  requires { iso-iec-17000 iso-iec-17065 iso-iec-17025 iso-iec-17067 }
8
- provides { oiml-cs cs-process-requirements cs-abstract-processes cs-certificate-requirements cs-framework-participants cs-framework-schemes cs-framework-declarations cs-framework-documents cs-framework-governance cs-document-pd-03 cs-document-pd-04 cs-document-pd-02 cs-document-pd-01 cs-document-pd-06 cs-document-pd-07 cs-document-pd-08 cs-document-pd-09 cs-document-cid-01 cs-document-od-01 cs-document-od-02 }
8
+ provides { oiml-cs cs-process-requirements cs-abstract-processes cs-trf-checklist cs-certificate-requirements cs-framework-participants cs-framework-schemes cs-framework-declarations cs-framework-documents cs-framework-governance cs-document-pd-03 cs-document-pd-04 cs-document-pd-02 cs-document-pd-01 cs-document-pd-06 cs-document-pd-07 cs-document-pd-08 cs-document-pd-09 cs-document-cid-01 cs-document-od-01 cs-document-od-02 }
9
9
  default_spelling eng-Latn
10
10
  }
@@ -1,2 +1,32 @@
1
1
  # .primmel-allowlist.prl — GENERATED from primmel-allowlist.yaml (TODO.roadmap/17), do not edit.
2
2
  text_coverage_budget 196 "First landing of gap-close C4-r129 (TODO.v2/05 — the R 129 sources-prd pipeline), tightened by TODO.integration/05 (the twin-interface bindings), then re-measured and burned down by the TODO.v2/05 follow-through (the R 129 source expansion): the official R 129:2020 sources landed (sources/r129) and every first-landing curation was re-verified against the official PDFs — the annexes print (Mandatory) throughout (+7 annex-A sentences correctly measured normative) and the notes compile as proper note fragments (−6 sentences correctly measured informative); the terminology register's source-URN burn-down covered the 26 register-carried definition sites, and the rec-native forms now bind their R 129-3/-4 report sections (ref report-format — the 11 module-skeleton forms' sections stay findings: the skeletons' with: slots carry no report-format channel, the composition union rule bars the rec overlay from restating references). 196 uncovered normative-classified sentences — the honest measurement of R 129's normative-text coverage over the published-print address space. Census by document: 131 R 129-1 + 58 R 129-2 + 4 R 129-3 + 3 R 129-4. The clusters are the declared named gaps of sources-prd/congruence.yaml (the unmodelled terminology sites, the Annex B software detail, the R 129-2 IEC method-procedure grids, the module-skeleton-covered report sections, and the R 129-4 sections no form binds). The budget caps the C71 findings EXACTLY and only burns down: new bindings (or adjudicated allowances) shrink it; growth fails C72."
3
+ allowlist_entry {
4
+ rule C142
5
+ match "exclusive_gateway ac_mains_gateway: edge * targets \"*\", which is not a declared process (gateway-edges-resolve)"
6
+ reason "Routing markers, not process ids: ac_mains_tests / skip_ac_mains_tests name the AC-mains applicability branch."
7
+ audit_ref "TODO.roadmap/40"
8
+ }
9
+ allowlist_entry {
10
+ rule C142
11
+ match "exclusive_gateway low_battery_gateway: edge * targets \"*\", which is not a declared process (gateway-edges-resolve)"
12
+ reason "Routing markers, not process ids: low_voltage_battery_test / skip_low_voltage_battery_test name the low-battery applicability branch."
13
+ audit_ref "TODO.roadmap/40"
14
+ }
15
+ allowlist_entry {
16
+ rule C142
17
+ match "exclusive_gateway effects_gateway: edge * targets \"*\", which is not a declared process (gateway-edges-resolve)"
18
+ reason "Routing markers, not process ids: ambient_light_test / acoustics_test / skip_effect_tests name the environmental-effects branches."
19
+ audit_ref "TODO.roadmap/40"
20
+ }
21
+ allowlist_entry {
22
+ rule C142
23
+ match "exclusive_gateway speed_movement_gateway: edge * targets \"*\", which is not a declared process (gateway-edges-resolve)"
24
+ reason "Routing markers, not process ids: speed_movement_test / skip_speed_movement_test name the speed-movement applicability branch."
25
+ audit_ref "TODO.roadmap/40"
26
+ }
27
+ allowlist_entry {
28
+ rule C142
29
+ match "exclusive_gateway test_result_gateway: edge * targets \"*\", which is not a declared process (gateway-edges-resolve)"
30
+ reason "Routing markers, not process ids: compile_test_report_pass / compile_test_report_fail name the verdict branches of test-report compilation."
31
+ audit_ref "TODO.roadmap/40"
32
+ }
@@ -0,0 +1,48 @@
1
+ approval ia_accept_application {
2
+ name "IA Accepts Application"
3
+ actor issuing_authority
4
+ approve_by responsible_person_ia
5
+ approval_record { applications }
6
+ source { doc "PD-05 §4.2" clause "" }
7
+ }
8
+
9
+ approval tl_authorize_test_report {
10
+ name "TL Authorizes Test Report"
11
+ actor test_laboratory
12
+ approve_by responsible_person_tl
13
+ approval_record { testReports }
14
+ source { doc "PD-05 §4.4.3 r" clause "" }
15
+ }
16
+
17
+ approval ia_approve_evaluation_report {
18
+ name "IA Approves Evaluation Report"
19
+ actor issuing_authority
20
+ approve_by responsible_person_ia
21
+ approval_record { evaluationReports }
22
+ source { doc "PD-05 §4.5" clause "" }
23
+ }
24
+
25
+ approval ia_sign_certificate {
26
+ name "IA Signs OIML Certificate"
27
+ actor issuing_authority
28
+ approve_by responsible_person_ia
29
+ approval_record { certificates }
30
+ source { doc "PD-05 §4.6" clause "" }
31
+ }
32
+
33
+ approval biml_register_certificate {
34
+ name "BIML Registers Certificate"
35
+ actor biml
36
+ approve_by biml
37
+ approval_record { certificates }
38
+ source { doc "PD-05 §6" clause "" }
39
+ }
40
+
41
+ approval ia_approve_revision {
42
+ name "IA Approves Certificate Revision"
43
+ actor issuing_authority
44
+ approve_by responsible_person_ia
45
+ approval_record { certificateAnnexes }
46
+ source { doc "PD-05 §8.1" clause "" }
47
+ }
48
+
@@ -0,0 +1,31 @@
1
+ exclusive_gateway ac_mains_gateway {
2
+ label "AC Mains Test Applicability"
3
+ edge ac_mains_tests { condition "[power_supply] in ['ac-mains']" label "AC mains: voltage variation, dips, bursts and surge tests required (R 129-2, Annex A, Table A.1)" }
4
+ edge skip_ac_mains_tests { condition default label "Battery / DC: mains tests not applicable" }
5
+ }
6
+
7
+ exclusive_gateway low_battery_gateway {
8
+ label "Low Battery Test Applicability"
9
+ edge low_voltage_battery_test { condition "[power_supply] in ['battery']" label "Battery-powered: low voltage test required (R 129-2, Annex A)" }
10
+ edge skip_low_voltage_battery_test { condition default label "AC mains / DC: not applicable" }
11
+ }
12
+
13
+ exclusive_gateway effects_gateway {
14
+ label "Effect Test Applicability"
15
+ edge ambient_light_test { condition "[measurement_principle] in ['optical']" label "Optical: ambient light test required (R 129-1, 4.4)" }
16
+ edge acoustics_test { condition "[measurement_principle] in ['acoustic']" label "Acoustic: acoustics test required (R 129-1, 4.4)" }
17
+ edge skip_effect_tests { condition default label "Mechanical: no light/acoustic effect tests" }
18
+ }
19
+
20
+ exclusive_gateway speed_movement_gateway {
21
+ label "Speed of Movement Test Applicability"
22
+ edge speed_movement_test { condition "[instrument_category] in ['automatic']" label "Automatic: speed of movement test required (R 129-2, Annex A)" }
23
+ edge skip_speed_movement_test { condition default label "Semi-automatic: not applicable" }
24
+ }
25
+
26
+ exclusive_gateway test_result_gateway {
27
+ label "Test Result Determination"
28
+ edge compile_test_report_pass { condition "every([within_mpe]) = true" label "All tests pass" }
29
+ edge compile_test_report_fail { condition default label "One or more tests fail" }
30
+ }
31
+
@@ -1,152 +1,333 @@
1
1
  process submit_application {
2
+ name "Submit Type Evaluation Application"
2
3
  actor applicant
4
+ modality shall
5
+ reference_data_registry { measuringInstrumentModels manufacturers }
3
6
  output { applications }
4
- reference { doc "PD-05 §4.1" clause "" }
7
+ executor actor
8
+ source { doc "PD-05 §4.1" clause "" }
5
9
  }
6
10
 
7
11
  process review_application {
12
+ name "Review Application"
8
13
  actor issuing_authority
14
+ modality shall
15
+ reference_data_registry { applications }
9
16
  validate_provision { /req/cs/application-completeness }
10
17
  output { applications }
11
- reference { doc "PD-05 §4.2" clause "" }
18
+ executor actor
19
+ source { doc "PD-05 §4.2" clause "" }
12
20
  }
13
21
 
14
22
  process accept_application {
23
+ name "Accept Application and Notify"
15
24
  actor issuing_authority
25
+ modality shall
16
26
  validate_provision { /req/cs/fee-estimate /req/cs/sample-count }
17
27
  output { applications }
18
- reference { doc "PD-05 §4.2.4" clause "" }
28
+ executor actor
29
+ source { doc "PD-05 §4.2.4" clause "" }
19
30
  }
20
31
 
21
32
  process reject_application {
33
+ name "Reject Application with Reason"
22
34
  actor issuing_authority
35
+ modality shall
23
36
  validate_provision { /req/cs/rejection-reason }
24
37
  output { applications }
25
- reference { doc "PD-05 §4.2.2" clause "" }
38
+ executor actor
39
+ source { doc "PD-05 §4.2.2" clause "" }
26
40
  }
27
41
 
28
42
  process conduct_tests {
43
+ name "Conduct Type Evaluation Tests"
29
44
  actor test_laboratory
45
+ modality shall
46
+ machine_steps { verdict_computation }
47
+ reference_data_registry { applications measuringInstrumentModels }
30
48
  validate_provision { /req/metrological/scale-intervals-min-dimension /req/metrological/mpe /req/metrological/fault-limit /req/metrological/variation-between-indicators /req/metrological/calculated-quantities /req/electronic/rated-operating-conditions /req/electronic/disturbance-resistance /req/electronic/no-significant-faults /req/electronic/light-acoustic-effects /req/technical/warm-up /req/technical/limits-of-indication /req/object-limitations/object-shape /req/object-limitations/orientation-position /req/object-limitations/speed-movement }
49
+ validate_measurement { "every([within_mpe]) = true" }
31
50
  output { testReports formInstances }
32
- reference { doc "PD-05 §4.3" clause "" }
51
+ executor actor
52
+ source { doc "PD-05 §4.3" clause "" }
33
53
  }
34
54
 
35
55
  process compile_test_report {
56
+ name "Compile OIML Test Report"
36
57
  actor test_laboratory
58
+ modality shall
37
59
  validate_provision { /req/cs/test-report-18-elements }
60
+ validate_measurement { "[completed_forms].count = [required_forms].count" }
38
61
  output { testReports }
39
- reference { doc "PD-05 §4.4" clause "" }
62
+ executor actor
63
+ source { doc "PD-05 §4.4" clause "" }
40
64
  }
41
65
 
42
66
  process compile_evaluation_report {
67
+ name "Compile Type Evaluation Report"
43
68
  actor issuing_authority
69
+ modality shall
70
+ machine_steps { evaluation_aggregation }
71
+ reference_data_registry { testReports formInstances applications }
44
72
  validate_provision { /req/cs/evaluation-report-contents }
73
+ validate_measurement { "[test_report_checklist_coverage] >= 1.0" }
45
74
  output { evaluationReports }
46
- reference { doc "PD-05 §4.5" clause "" }
75
+ executor actor
76
+ source { doc "PD-05 §4.5" clause "" }
47
77
  }
48
78
 
49
79
  process issue_certificate {
80
+ name "Issue OIML Certificate"
50
81
  actor issuing_authority
82
+ modality shall
83
+ machine_steps { certificate_characteristics_derivation }
84
+ reference_data_registry { evaluationReports }
51
85
  validate_provision { /req/cs/certificate-requirements }
52
86
  output { certificates }
53
- reference { doc "PD-05 §4.6" clause "" }
87
+ executor actor
88
+ source { doc "PD-05 §4.6" clause "" }
54
89
  }
55
90
 
56
91
  process register_certificate {
92
+ name "Register Certificate with BIML"
57
93
  actor biml
94
+ modality shall
58
95
  validate_provision { /req/cs/biml-registration }
59
96
  output { certificates }
60
- reference { doc "PD-05 §6" clause "" }
97
+ executor actor
98
+ source { doc "PD-05 §6" clause "" }
61
99
  }
62
100
 
63
101
  process handle_revision {
102
+ name "Handle Certificate Revision"
64
103
  actor issuing_authority
104
+ modality may
105
+ reference_data_registry { certificates }
65
106
  output { certificates certificateAnnexes }
66
- reference { doc "PD-05 §8.1" clause "" }
107
+ executor actor
108
+ source { doc "PD-05 §8.1" clause "" }
67
109
  }
68
110
 
69
111
  process handle_edition_change {
112
+ name "Handle Edition Change"
70
113
  actor issuing_authority
114
+ modality may
115
+ reference_data_registry { certificates }
71
116
  output { evaluationReports certificates }
72
- reference { doc "PD-05 §8.3" clause "" }
117
+ executor actor
118
+ source { doc "PD-05 §8.3" clause "" }
73
119
  }
74
120
 
75
121
  process evaluate_certificate_acceptance {
122
+ name "Evaluate certificate acceptability"
76
123
  actor utilizer
124
+ modality may
125
+ reference_data_registry { certificates participantDeclarations }
77
126
  output { acceptanceReviews }
78
- reference { doc "PD-06, 4.8/4.9; B 18:2025 §5.6.3" clause "" }
127
+ executor actor
128
+ source { doc "PD-06, 4.8/4.9; B 18:2025 §5.6.3" clause "" }
79
129
  }
80
130
 
81
131
  process handle_appeal {
132
+ name "Handle appeal to the Board of Appeal"
82
133
  actor executive_secretary
134
+ modality may
135
+ reference_data_registry { participantApplications certificates }
83
136
  output { appeals }
84
- reference { doc "PD-01, 8–9" clause "" }
137
+ executor actor
138
+ source { doc "PD-01, 8–9" clause "" }
85
139
  }
86
140
 
87
141
  process handle_complaint {
142
+ name "Handle complaint (incl. incorrect conclusions)"
88
143
  actor executive_secretary
144
+ modality may
145
+ reference_data_registry { certificates }
89
146
  output { complaints }
90
- reference { doc "PD-01, 6; PD-05 §7.1" clause "" }
147
+ executor actor
148
+ source { doc "PD-01, 6; PD-05 §7.1" clause "" }
91
149
  }
92
150
 
93
151
  process handle_misuse {
152
+ name "Handle certificate misuse"
94
153
  actor executive_secretary
154
+ modality may
155
+ reference_data_registry { certificates }
95
156
  output { misuseCases }
96
- reference { doc "PD-06, 5.1" clause "" }
157
+ executor actor
158
+ source { doc "PD-06, 5.1" clause "" }
97
159
  }
98
160
 
99
161
  process deregister_certificate {
162
+ name "Deregister certificate"
100
163
  actor biml
164
+ modality may
165
+ reference_data_registry { certificates complaints misuseCases }
101
166
  output { deregistrations certificates }
102
- reference { doc "PD-01, 6.2; PD-06, 5.2/5.3; PD-05 §6.2" clause "" }
167
+ executor actor
168
+ source { doc "PD-01, 6.2; PD-06, 5.2/5.3; PD-05 §6.2" clause "" }
103
169
  }
104
170
 
105
171
  process verify_presented_certificate {
172
+ name "Verify a presented certificate against the registered copy"
106
173
  actor biml
174
+ modality may
175
+ reference_data_registry { certificates registeredCopies }
107
176
  output { registeredCopies }
108
- reference { doc "B 18:2025 §15.8" clause "" }
177
+ executor actor
178
+ source { doc "B 18:2025 §15.8" clause "" }
109
179
  }
110
180
 
111
181
  process submit_participant_application {
182
+ name "Submit participant application"
112
183
  actor applicant
184
+ modality may
185
+ reference_data_registry { participantApplications }
113
186
  output { participantApplications }
114
- reference { doc "PD-03, 5.1; PD-04, 5.1; PD-09, 4–5; PD-02, 7" clause "" }
187
+ executor actor
188
+ source { doc "PD-03, 5.1; PD-04, 5.1; PD-09, 4–5; PD-02, 7" clause "" }
115
189
  }
116
190
 
117
191
  process assess_participant_competence {
192
+ name "Assess participant competence"
118
193
  actor executive_secretary
194
+ modality may
195
+ reference_data_registry { participantApplications }
119
196
  output { competenceEvidence }
120
- reference { doc "PD-03, 5.2; PD-04, 5.2" clause "" }
197
+ executor actor
198
+ source { doc "PD-03, 5.2; PD-04, 5.2" clause "" }
121
199
  }
122
200
 
123
201
  process recommend_participation {
202
+ name "Review Committee recommendation"
124
203
  actor evaluator
204
+ modality may
205
+ reference_data_registry { participantApplications }
125
206
  output { approvalVotes }
126
- reference { doc "PD-03, 5.3.2; PD-04, 5.3.2; PD-02, 8.1; OD-01, 5.6/7.9" clause "" }
207
+ executor actor
208
+ source { doc "PD-03, 5.3.2; PD-04, 5.3.2; PD-02, 8.1; OD-01, 5.6/7.9" clause "" }
127
209
  }
128
210
 
129
211
  process decide_participation {
212
+ name "MC participation decision"
130
213
  actor supervisor
214
+ modality may
215
+ reference_data_registry { participantApplications }
131
216
  output { approvalVotes participantApplications }
132
- reference { doc "PD-03, 5.3.2; PD-04, 5.3.2; PD-02, 8.2; B 18:2025 §11.4.2" clause "" }
217
+ executor actor
218
+ source { doc "PD-03, 5.3.2; PD-04, 5.3.2; PD-02, 8.2; B 18:2025 §11.4.2" clause "" }
133
219
  }
134
220
 
135
221
  process record_participant_declaration {
222
+ name "Record/maintain a participant Declaration"
136
223
  actor executive_secretary
224
+ modality may
225
+ reference_data_registry { participantDeclarations }
137
226
  output { participantDeclarations }
138
- reference { doc "PD-08, 4–5; PD-03, 5.3.2/9; PD-04, 5.3.2/7" clause "" }
227
+ executor actor
228
+ source { doc "PD-08, 4–5; PD-03, 5.3.2/9; PD-04, 5.3.2/7" clause "" }
139
229
  }
140
230
 
141
231
  process publish_participant_register {
232
+ name "Publish the participant lists"
142
233
  actor executive_secretary
234
+ modality may
235
+ reference_data_registry { participantDeclarations }
143
236
  output { participantApplications }
144
- reference { doc "PD-03, 5.3.2; PD-04, 5.3.2; PD-08, 4; PD-09, 4–5; OD-01, 13.4" clause "" }
237
+ executor actor
238
+ source { doc "PD-03, 5.3.2; PD-04, 5.3.2; PD-08, 4; PD-09, 4–5; OD-01, 13.4" clause "" }
145
239
  }
146
240
 
147
241
  process drive_scheme_lifecycle {
242
+ name "Drive the per-category scheme lifecycle"
148
243
  actor biml
244
+ modality may
245
+ reference_data_registry { categorySchemes }
149
246
  output { categorySchemes }
150
- reference { doc "B 18:2025 §4.2, §15.1–15.2" clause "" }
247
+ executor actor
248
+ source { doc "B 18:2025 §4.2, §15.1–15.2" clause "" }
249
+ }
250
+
251
+ workflow_stage application_processing {
252
+ label "Application Processing"
253
+ description "PD-05 §4.1–4.2: Application submission, review, and acceptance/rejection"
254
+ elements { submit_application review_application accept_application reject_application }
255
+ start_event application_received
256
+ end_events { application_accepted application_rejected application_withdrawn }
257
+ approvals { ia_accept_application }
258
+ }
259
+
260
+ workflow_stage testing {
261
+ label "Type Evaluation Testing"
262
+ description "PD-05 §4.3–4.4: Test execution and test report compilation"
263
+ elements { conduct_tests compile_test_report }
264
+ start_event application_accepted
265
+ end_events { test_report_compiled }
266
+ approvals { tl_authorize_test_report }
267
+ gateways { ac_mains_gateway low_battery_gateway effects_gateway speed_movement_gateway test_result_gateway }
268
+ }
269
+
270
+ workflow_stage evaluation {
271
+ label "Type Evaluation"
272
+ description "PD-05 §4.5: Evaluation report compilation and approval"
273
+ elements { compile_evaluation_report }
274
+ start_event test_report_compiled
275
+ end_events { evaluation_complete }
276
+ approvals { ia_approve_evaluation_report }
277
+ }
278
+
279
+ workflow_stage certification {
280
+ label "Certification"
281
+ description "PD-05 §4.6, §6, §8: Certificate issuance, registration, and revision"
282
+ elements { issue_certificate register_certificate handle_revision handle_edition_change }
283
+ start_event evaluation_complete
284
+ end_events { certificate_issued }
285
+ approvals { ia_sign_certificate biml_register_certificate ia_approve_revision }
286
+ }
287
+
288
+ workflow_stage scheme_operations {
289
+ label "OIML-CS Scheme Operations"
290
+ description "PD-01/PD-06 + B 18:2025 §15.8 (TODO.roadmap/45): acceptability evaluation, appeals, complaints, misuse, deregistration, and the registered-copy validity check"
291
+ elements { evaluate_certificate_acceptance handle_appeal handle_complaint handle_misuse deregister_certificate verify_presented_certificate }
292
+ start_event certificate_issued
293
+ end_events { certificate_deregistered }
294
+ }
295
+
296
+ workflow_stage participant_approval {
297
+ label "OIML-CS Participant Approval"
298
+ description "PD-02/PD-03/PD-04/PD-08/PD-09 + B 18:2025 §15 (TODO.roadmap/44–45): the participation pipeline — application, competence assessment, RC recommendation, MC decision, Declaration, publication — and the per-category scheme lifecycle"
299
+ elements { submit_participant_application assess_participant_competence recommend_participation decide_participation record_participant_declaration publish_participant_register drive_scheme_lifecycle }
300
+ start_event participant_application_received
301
+ end_events { participant_active }
302
+ }
303
+
304
+ start_event application_received {
305
+ }
306
+
307
+ end_event application_accepted {
308
+ }
309
+
310
+ end_event application_rejected {
311
+ }
312
+
313
+ end_event application_withdrawn {
314
+ }
315
+
316
+ end_event test_report_compiled {
317
+ }
318
+
319
+ end_event evaluation_complete {
320
+ }
321
+
322
+ end_event certificate_issued {
323
+ }
324
+
325
+ end_event certificate_deregistered {
326
+ }
327
+
328
+ start_event participant_application_received {
329
+ }
330
+
331
+ end_event participant_active {
151
332
  }
152
333