@oimlsmart/primmel-packages 0.6.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.
@@ -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
 
@@ -1,48 +1,58 @@
1
1
  process application {
2
- note "phase: intake"
2
+ name "Type Evaluation Application"
3
+ summary "Applicant (manufacturer, distributor, or end user) submits Application declaring the instrument model family, the requested scope (matrix of model-family members per the Recommendation's specimen-selection rules), requested ANR countries, scheme (A/B), and supporting documentation."
3
4
  actor applicant
4
- description "Applicant (manufacturer, distributor, or end user) submits Application declaring the instrument model family, the requested scope (matrix of model-family members per the Recommendation's specimen-selection rules), requested ANR countries, scheme (A/B), and supporting documentation."
5
- validate_provision { applicant_info model_family_matrix documentation }
5
+ phase intake
6
6
  guard "Application.status = SUBMITTED"
7
7
  guard "Application.model_family_id is not null OR Application.model_ids.length >= 1"
8
+ validate_provision { applicant_info model_family_matrix documentation }
9
+ output { Application }
8
10
  }
9
11
 
10
12
  process test-request-dispatch {
11
- note "phase: dispatch"
13
+ name "Test request dispatch"
14
+ summary "IA selects one or more Test Laboratories (by accreditation scope, equipment capability, capacity) and issues a TestRequest to each, specifying which samples are shipped, which of the Recommendation's Test Report Forms the lab must complete, and the test conditions."
12
15
  actor issuing-authority
13
- description "IA selects one or more Test Laboratories (by accreditation scope, equipment capability, capacity) and issues a TestRequest to each, specifying which samples are shipped, which of the Recommendation's Test Report Forms the lab must complete, and the test conditions."
14
- validate_provision { Application MeasuringInstrumentSample TestLaboratory }
16
+ phase dispatch
15
17
  guard "Each TestRequest references >= 1 MeasuringInstrumentSample"
16
18
  guard "Each TestRequest.required_forms subset of R 129-3 form identifiers"
17
19
  guard "TestRequest.assigned_laboratory_id is accredited for the requested test scope (R 129 multi-dimensional measuring instruments)"
20
+ validate_provision { Application MeasuringInstrumentSample TestLaboratory }
21
+ output { TestRequest }
18
22
  }
19
23
 
20
24
  process test-performance {
21
- note "phase: testing"
25
+ name "Test performance and report"
26
+ summary "Test Lab accepts the TestRequest (which implies physical sample receipt), performs the tests per the Recommendation's test procedures, fills in the required Test Report Forms (one FormInstance per sample per form), and issues a TestReport that bundles all FormInstances."
22
27
  actor test-laboratory
23
- description "Test Lab accepts the TestRequest (which implies physical sample receipt), performs the tests per the Recommendation's test procedures, fills in the required Test Report Forms (one FormInstance per sample per form), and issues a TestReport that bundles all FormInstances."
24
- validate_provision { TestRequest MeasuringInstrumentSample }
28
+ phase testing
25
29
  guard "TestReport.test_request_id references the TestRequest"
26
30
  guard "TestReport contains one FormInstance per (requiredForm × sample) pair"
27
31
  guard "TestReport.status = SUBMITTED"
32
+ validate_provision { TestRequest MeasuringInstrumentSample }
33
+ output { "TestReport containing FormInstance" }
28
34
  }
29
35
 
30
36
  process evaluation {
31
- note "phase: evaluation"
37
+ name "Evaluation and determination"
38
+ summary "IA staff review every submitted TestReport. For each TestReport, a TestReportDetermination is recorded (ACCEPTED / REJECTED / CONDITIONALLY_ACCEPTED). For each FormInstance, a FormDetermination is recorded. The aggregate of all TestReportDeterminations determines the EvaluationReport overall_decision. Finalization requires every TestReport in test_report_ids[] to have a corresponding determination."
32
39
  actor issuing-authority
33
- description "IA staff review every submitted TestReport. For each TestReport, a TestReportDetermination is recorded (ACCEPTED / REJECTED / CONDITIONALLY_ACCEPTED). For each FormInstance, a FormDetermination is recorded. The aggregate of all TestReportDeterminations determines the EvaluationReport overall_decision. Finalization requires every TestReport in test_report_ids[] to have a corresponding determination."
34
- validate_provision { TestReport FormInstance }
40
+ phase evaluation
35
41
  guard "All TestReport entries in test_report_ids[] have a TestReportDetermination"
36
42
  guard "EvaluationReport.status = ALL_TR_REVIEWED before finalization"
37
43
  guard "overall_decision derivable from test_report_determinations[]"
44
+ validate_provision { TestReport FormInstance }
45
+ output { "EvaluationReport containing FormDetermination" TestReportDetermination }
38
46
  }
39
47
 
40
48
  process certificate-issuance {
41
- note "phase: issuance"
49
+ name "OIML Certificate of Conformity"
50
+ summary "If EvaluationReport.overall_decision = APPROVED, IA issues a Certificate whose scope covers the original Application's matrix. BIML registers the certificate."
42
51
  actor issuing-authority
43
- description "If EvaluationReport.overall_decision = APPROVED, IA issues a Certificate whose scope covers the original Application's matrix. BIML registers the certificate."
44
- validate_provision { EvaluationReport Application.model_family_id }
52
+ phase issuance
45
53
  guard "EvaluationReport.overall_decision = APPROVED"
46
54
  guard "Certificate.scope matches Application scope (model family + approved members)"
55
+ validate_provision { EvaluationReport Application.model_family_id }
56
+ output { Certificate }
47
57
  }
48
58
 
@@ -1,2 +1,38 @@
1
1
  # .primmel-allowlist.prl — GENERATED from primmel-allowlist.yaml (TODO.roadmap/17), do not edit.
2
2
  text_coverage_budget 0 "R144-BD burn-down, phase 2 (TODO.roadmap/26): the honest completion — 210/213 = 98.6% covered, 100.0% gated with the three sentence-pinned allowances of sources-prd/coverage.yaml. Phase 1 (111 → 16) modelled the three largest first-landing clusters; phase 2 models the remaining 16: the R 144-3 clause-2 report content rules (7 sentences — the new /req/report class: recommended numbers/values in the OIML-CS, test means indication, alternatives/equivalence assurance, observed problems and test conditions), the R 144-1 type-evaluation and verification generalities (7 sentences — the new /req/controls class: type-evaluation units 7.1.2, completely-mounted testing 7.1.3.1, correctness-of-operation check 7.1.3.3, initial verification 7.2.1; the external-examination generality 7.1.3.2 bound by the visual examination; the type-approval CGM conformance 7.1.3.1 s5 as a reference-material constraint), and R 144-2's 1.1 prior-to-tests generality + the clause-2 initial-verification checklist head (2 sentences — /req/controls). No sentence adjudicated non-modelable in this phase. Any new uncovered sentence is a regression and fails (C72). First landing: 111 (101/213 = 47.4%)."
3
+ allowlist_entry {
4
+ rule C142
5
+ match "exclusive_gateway gas_handling_gateway: edge * targets \"*\", which is not a declared process (gateway-edges-resolve)"
6
+ reason "Routing markers, not process ids: flow_spillover_and_leakproofness_tests / skip_gas_handling_tests name the gas-handling 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_battery_test / skip_low_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 signal_line_gateway: edge * targets \"*\", which is not a declared process (gateway-edges-resolve)"
18
+ reason "Routing markers, not process ids: bursts_signal_and_surge_tests / skip_signal_line_tests name the signal-line applicability branch."
19
+ audit_ref "TODO.roadmap/40"
20
+ }
21
+ allowlist_entry {
22
+ rule C142
23
+ match "exclusive_gateway drift_gateway: edge * targets \"*\", which is not a declared process (gateway-edges-resolve)"
24
+ reason "Routing markers, not process ids: drift_test / skip_drift_test name the drift-test 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
+ }
33
+ allowlist_entry {
34
+ rule C142
35
+ match "exclusive_gateway mtl_gateway: edge * targets \"*\", which is not a declared process (gateway-edges-resolve)"
36
+ reason "Routing markers, not process ids: accept_mtl_report / require_independent_tl name the manufacturer-test-lab acceptability branches (Scheme A)."
37
+ audit_ref "TODO.roadmap/40"
38
+ }
@@ -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
+