@oimlsmart/primmel-packages 0.3.0 → 0.5.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 (37) hide show
  1. package/iso-iec-17000/evaluation/activity-archetypes.prl +189 -0
  2. package/iso-iec-17025/evaluation/functional-approach.prl +382 -0
  3. package/iso-iec-17065/evaluation/functional-approach.prl +437 -0
  4. package/iso-iec-17067/specification/scheme-types.prl +292 -0
  5. package/oiml-cs/.primmel-allowlist.prl +7 -0
  6. package/oiml-cs/evaluation/abstract-processes.prl +454 -0
  7. package/oiml-cs/framework/declarations.prl +1 -1
  8. package/oiml-cs/framework/documents/cid-01/abstract-processes.prl +112 -0
  9. package/oiml-cs/framework/documents/cid-01/requirements.prl +99 -0
  10. package/oiml-cs/framework/documents/od-01/abstract-processes.prl +157 -0
  11. package/oiml-cs/framework/documents/od-01/requirements.prl +138 -0
  12. package/oiml-cs/framework/documents/od-02/abstract-processes.prl +119 -0
  13. package/oiml-cs/framework/documents/od-02/requirements.prl +75 -0
  14. package/oiml-cs/framework/documents/pd-01/abstract-processes.prl +209 -0
  15. package/oiml-cs/framework/documents/pd-01/requirements.prl +117 -0
  16. package/oiml-cs/framework/documents/pd-02/abstract-processes.prl +217 -0
  17. package/oiml-cs/framework/documents/pd-02/requirements.prl +126 -0
  18. package/oiml-cs/framework/documents/pd-03/abstract-processes.prl +348 -0
  19. package/oiml-cs/framework/documents/pd-03/annex-d032.prl +48 -0
  20. package/oiml-cs/framework/documents/pd-03/requirements.prl +162 -0
  21. package/oiml-cs/framework/documents/pd-04/abstract-processes.prl +295 -0
  22. package/oiml-cs/framework/documents/pd-04/annex-d030.prl +54 -0
  23. package/oiml-cs/framework/documents/pd-04/requirements.prl +140 -0
  24. package/oiml-cs/framework/documents/pd-06/abstract-processes.prl +152 -0
  25. package/oiml-cs/framework/documents/pd-06/requirements.prl +122 -0
  26. package/oiml-cs/framework/documents/pd-07/abstract-processes.prl +99 -0
  27. package/oiml-cs/framework/documents/pd-07/requirements.prl +84 -0
  28. package/oiml-cs/framework/documents/pd-08/abstract-processes.prl +102 -0
  29. package/oiml-cs/framework/documents/pd-08/requirements.prl +82 -0
  30. package/oiml-cs/framework/documents/pd-09/abstract-processes.prl +234 -0
  31. package/oiml-cs/framework/documents/pd-09/requirements.prl +82 -0
  32. package/oiml-cs/package.primmel +1 -1
  33. package/oiml-r129/package.primmel +1 -1
  34. package/oiml-r144/package.primmel +1 -1
  35. package/oiml-r60/package.primmel +1 -1
  36. package/oiml-r91/package.primmel +1 -1
  37. package/package.json +2 -2
@@ -0,0 +1,437 @@
1
+ # ISO/IEC 17065 REFERENCE PACKAGE — THE FUNCTIONAL APPROACH AS ABSTRACT
2
+ # PROCESSES (ISO/IEC 17065:2012, clause 7; TODO.roadmap/39, sub-task 39b)
3
+ # -----------------------------------------------------------------------------
4
+ # The ISO/IEC 17065:2012 certification process (clause 7) as ABSTRACT
5
+ # processes (the abstract form per TODO.roadmap/02 — signature +
6
+ # invariants, no steps), the IA-competence reference model the OIML-CS
7
+ # delegates to (B 18:2025 §5.2): application (7.2) → application_review
8
+ # (7.3) → evaluation (7.4) → review (7.5) → decision (7.6) → attestation
9
+ # (7.7 + the 7.8 directory) → surveillance (7.9), with the off-sequence
10
+ # lifecycle processes changes (7.10), termination (7.11), records (7.12)
11
+ # and complaints (7.13).
12
+ #
13
+ # Fields follow the oiml-cs abstract process model
14
+ # (data/oiml-cs/evaluation/abstract-processes.yaml) with three deliberate
15
+ # differences:
16
+ # roles the ISO/IEC 17065 functional actors — `client` (3.1) and
17
+ # `certification_body` (3.12) — NOT the OIML-CS scheme roles;
18
+ # the functional PERSONNEL sets the segregation constraints
19
+ # quantify over (evaluation/review/decision/complaint-
20
+ # resolution personnel, 6.1.2 d)) are identified by the
21
+ # processes themselves (see segregation below).
22
+ # signature CONCEPTUAL record stores of the functional approach
23
+ # (certification_applications, evaluation_results, …) — this
24
+ # package declares no entity classes; the stores name the
25
+ # information flow, nothing resolves against them (bare
26
+ # untyped store references — the kernel's abstract-form
27
+ # signature grammar).
28
+ # realized_by / approved_by — empty: the platform's concrete Core
29
+ # processes realize the OIML-CS's OWN abstract model; the
30
+ # OIML-CS↔17065 mapping lands in tasks 40–43. The
31
+ # documentary halves here are the provisions bindings
32
+ # (every /req/iso-17065/process/* provision binds to exactly
33
+ # one abstract process — the R2 targeting exemption; C5
34
+ # counts a validate_provision'd requirement as covered).
35
+ #
36
+ # activity_kind — the ISO/IEC 17000 activity-archetype register ids
37
+ # (the iso-iec-17000 package's evaluation/activity-archetypes.prl; C58
38
+ # resolves every id when the register is in scope — this package uses
39
+ # iso-iec-17000). Multi-kind per the standard's own definitions:
40
+ # evaluation = selection + determination (17065 3.3). Per-process tagging
41
+ # rationales (folded up from the YAML draft's body comments):
42
+ # application / application_review → [selection] — A.2 selection: the
43
+ # client (resp. the body) collects/produces all information and input
44
+ # needed for the subsequent determination function; the review is NOT
45
+ # 17000 7.1 review — no determination results exist yet to consider.
46
+ # evaluation → [selection, determination] — the canonical multi-kind
47
+ # case (17065 3.3).
48
+ # review → [review]; decision → [decision] (NOTE the deliberate
49
+ # NON-constraint below); attestation → [certification] (7.6 — the
50
+ # formal certification documentation is third-party attestation
51
+ # related to the product); surveillance → [surveillance] (8.1).
52
+ # changes → [decision, certification] — a change re-decides and may
53
+ # re-issue documentation; the evaluation/review legs are the
54
+ # delegated 7.4/7.5 processes (7.10.3).
55
+ # termination → [suspension, withdrawal] (8.2/8.3) — termination by
56
+ # client request and scope reduction have no dedicated archetype.
57
+ # complaints → [complaint, appeal] (8.7/8.6).
58
+ # One deliberate non-tag: records (7.12) — the record-keeping obligation
59
+ # has no functional-approach activity kind (it produces no
60
+ # selection/determination/review/decision/attestation/surveillance
61
+ # outcome).
62
+ #
63
+ # ═══ ROLE SEGREGATION (the `segregation` facet — TODO.roadmap/39b) ═══
64
+ # The clause-7 non-involvement constraints are FIRST-CLASS structured
65
+ # declarations, machine-checked package-side by the kernel's C59
66
+ # segregation-members-resolve (the consumer's linker R24 mirrors it).
67
+ # They are NOT stated as `invariants` because that mechanism cannot check
68
+ # them: the linker never parses invariant strings (they are opaque
69
+ # documentation over one process's own signature records), while
70
+ # segregation is a CROSS-process relation over PERSONNEL SETS, per case.
71
+ # Members are abstract-process ids — a member names that process's
72
+ # personnel set for the case at hand — with ONE reserved token:
73
+ # case_personnel — the personnel involved in the certification
74
+ # activities of the case the complaint relates to (7.13.5's
75
+ # case-relative set; no static process pair can name it).
76
+ # Roles are NOT used as members: the consuming scheme binds ONE role
77
+ # (issuing_authority) to evaluation, review AND decision, so role-level
78
+ # disjointness is both unsatisfiable and unfaithful — the norms quantify
79
+ # over process INVOLVEMENT (7.5.1 "not been involved in the evaluation
80
+ # process"; 7.6.2 "not been involved in the process for evaluation";
81
+ # 7.13.5 "not involved in the certification activities related to the
82
+ # complaint or appeal"). The verbatim norms behind the constraints:
83
+ # 7.5.1: "The review shall be carried out by person(s) who have not
84
+ # been involved in the evaluation process."
85
+ # 7.6.2: "The certification decision shall be carried out by a person
86
+ # or group of persons … that has not been involved in the process
87
+ # for evaluation (see 7.4)."
88
+ # 7.13.5: "The decision resolving the complaint or appeal shall be
89
+ # made by, or reviewed and approved by, person(s) not involved in
90
+ # the certification activities related to the complaint or appeal."
91
+ # 7.13.6: "personnel (including those acting in a managerial capacity)
92
+ # who have provided consultancy for a client, or been employed by a
93
+ # client, shall not be used … to review or approve the resolution of
94
+ # a complaint or appeal for that client within two years following
95
+ # the end of the consultancy or employment." (the fixed P2Y period)
96
+ # 4.2.10: the general consultancy bar on review/decision personnel —
97
+ # the period is body-specified here (the standard's NOTE records
98
+ # that two years is often used), so those constraints carry none.
99
+ # Kinds (the C59 kind-conditional shapes):
100
+ # case_personnel_disjoint — within one certification case, the two
101
+ # processes' personnel sets are disjoint (pair of exactly two
102
+ # distinct members; the constrained process owns its constraints —
103
+ # one pair member is the declaring process).
104
+ # consultancy_bar — personnel barred from a process for a period after
105
+ # a consultancy/employment relation with the client (barred list
106
+ # required; period ISO-8601 only when the standard fixes it).
107
+ # NOTE the deliberate NON-constraint: review and decision personnel need
108
+ # NOT be disjoint from each other — 7.5.2 and 7.6.2 (Note) allow the
109
+ # review and the certification decision to be completed concurrently by
110
+ # the same person or group. No segregation entry separates review from
111
+ # decision.
112
+ # Runtime (per-assignment) enforcement is platform task 44 — this file is
113
+ # the declarative model + static checks.
114
+ #
115
+ # The sequence: application → application review → evaluation → review →
116
+ # decision → attestation, with surveillance where the scheme (or
117
+ # continued mark use) requires it. The lifecycle processes (changes,
118
+ # termination, records, complaints) are off-sequence — they may be
119
+ # initiated any time after attestation (mirroring the oiml-cs model's
120
+ # revision convention).
121
+ #
122
+ # Provenance: ISO/IEC 17065:2012 (see layer.yaml editions.source);
123
+ # subclause numbering per the corpus audit (analysis/
124
+ # oiml-cs-corpus-audit-2026-07.md, Corpus D §1.2) verified against the
125
+ # in-source cross-references. Each process's `source` block carries its
126
+ # clause-7 anchor as free-text doc + empty clause (the consumer's YAML
127
+ # twin restores it as the `reference:` citation verbatim).
128
+ #
129
+ # This file is the single source of truth; the consumer's
130
+ # data/iso-iec-17065/evaluation/functional-approach.yaml is its GENERATED
131
+ # YAML twin (cd browser && npm run gen:data; schema
132
+ # data/schemas/abstract-processes.yaml).
133
+ process application {
134
+ name "Application"
135
+ summary "The certification body obtains all the information needed to complete the certification process in accordance with the relevant certification scheme: the product(s) to be certified, the normative documents sought, the client's features, outsourced processes affecting conformity, and the information needed for initial evaluation and surveillance."
136
+ validate_provision {
137
+ /req/iso-17065/process/application-information
138
+ }
139
+ signature {
140
+ out { certification_applications }
141
+ }
142
+ invariants {
143
+ "[certification_application].product_identification is not null"
144
+ "[certification_application].normative_documents.count >= 1"
145
+ }
146
+ activity_kind { selection }
147
+ roles { client }
148
+ evidence {
149
+ application_record { description "The application record: product(s) to be certified, standards and/or other normative documents sought (7.1.2), client features (name, locations, significant process/operation aspects where the scheme requires, legal obligations), outsourced processes affecting conformity, and the information needed for initial evaluation and surveillance (7.2 Note 1)." required true }
150
+ }
151
+ executor actor
152
+ source { doc "ISO/IEC 17065:2012, 7.2" clause "" }
153
+ }
154
+
155
+ process application_review {
156
+ name "Application review"
157
+ summary "The certification body reviews the application information for sufficiency, resolves differences in understanding, defines the scope of certification sought, and confirms the means, competence and capability to perform the certification activity — declining the certification when any competence or capability is lacking (7.3.4), and recording the justification for undertaking no-prior-experience certifications (7.3.3)."
158
+ validate_provision {
159
+ /req/iso-17065/process/application-review
160
+ /req/iso-17065/process/decline-without-competence
161
+ }
162
+ signature {
163
+ in { certification_applications }
164
+ out { certification_applications }
165
+ }
166
+ invariants {
167
+ "[certification_application].scope_of_certification is not null"
168
+ "[certification_application].declined = true implies [certification_application].decline_reason is not null"
169
+ }
170
+ activity_kind { selection }
171
+ roles { certification_body }
172
+ evidence {
173
+ application_review_record { description "The review record: sufficiency of information (7.3.1 a), resolved differences (b), the defined scope of certification (c), means/competence/capability confirmation (d/e), and — for no-prior-experience requests — the justification record (7.3.3) or the decline decision (7.3.4)." required true }
174
+ }
175
+ executor actor
176
+ source { doc "ISO/IEC 17065:2012, 7.3" clause "" }
177
+ }
178
+
179
+ process evaluation {
180
+ name "Evaluation"
181
+ summary "The certification body plans the evaluation activities, assigns personnel to each evaluation task it undertakes with internal resources (outsourced tasks per 6.2.2), provides the necessary information and documentation, and carries out the evaluation against the requirements covered by the scope of certification — informing the client of all nonconformities and documenting all results prior to review (7.4.9)."
182
+ validate_provision {
183
+ /req/iso-17065/process/evaluation-plan
184
+ /req/iso-17065/process/evaluation-results
185
+ }
186
+ signature {
187
+ in { certification_applications }
188
+ out { evaluation_plans evaluation_results }
189
+ }
190
+ invariants {
191
+ "[evaluation_results].documented_prior_to_review = true"
192
+ "[evaluation_task].assigned_personnel.count >= 1"
193
+ }
194
+ activity_kind { selection determination }
195
+ roles { certification_body }
196
+ evidence {
197
+ evaluation_plan { description "The plan for the evaluation activities (7.4.1) with the per-task personnel assignments (7.4.2)." required true }
198
+ evaluation_results_record { description "The documented results of all evaluation activities (7.4.9), produced prior to review, with the record of nonconformities communicated to the client (7.4.6) and any additional-task cycle (7.4.7/7.4.8)." required true }
199
+ }
200
+ executor actor
201
+ source { doc "ISO/IEC 17065:2012, 7.4" clause "" }
202
+ }
203
+
204
+ process review {
205
+ name "Review"
206
+ summary "The certification body assigns at least one person to review all information and results related to the evaluation — carried out by person(s) who have NOT been involved in the evaluation process (7.5.1) — and documents the recommendations for the certification decision (unless review and decision are completed concurrently by the same person, 7.5.2)."
207
+ validate_provision {
208
+ /req/iso-17065/process/review-independence
209
+ }
210
+ signature {
211
+ in { evaluation_results }
212
+ out { review_records }
213
+ }
214
+ invariants {
215
+ "[review_record].reviewer_ids.count >= 1"
216
+ "[review_record].recommendation is not null"
217
+ }
218
+ activity_kind { review }
219
+ roles { certification_body }
220
+ evidence {
221
+ review_record { description "The review record over all evaluation information and results, with the assigned reviewer(s) and the documented recommendation for the certification decision (7.5.2)." required true }
222
+ }
223
+ segregation {
224
+ constraint review_not_evaluation {
225
+ kind case_personnel_disjoint
226
+ clause "7.5.1"
227
+ pair { review evaluation }
228
+ statement "Within one certification case, the personnel assigned to the review shall not have been involved in the evaluation process for that case (ISO/IEC 17065:2012, 7.5.1)."
229
+ }
230
+ constraint review_consultancy_bar {
231
+ kind consultancy_bar
232
+ clause "4.2.10"
233
+ barred { consultancy }
234
+ statement "Within a period specified by the certification body, personnel shall not be used to review a product for which they have provided consultancy (ISO/IEC 17065:2012, 4.2.10; a specified period of two years is often used)."
235
+ }
236
+ }
237
+ executor actor
238
+ source { doc "ISO/IEC 17065:2012, 7.5" clause "" }
239
+ }
240
+
241
+ process decision {
242
+ name "Certification decision"
243
+ summary "The certification body — retaining responsibility and authority for its certification decisions (7.6.1) — assigns at least one person to make the certification decision based on all information related to the evaluation, its review, and any other relevant information, by person(s) who have NOT been involved in the evaluation (7.6.2), and notifies the client of a decision not to grant certification with the reasons (7.6.6)."
244
+ validate_provision {
245
+ /req/iso-17065/process/decision-independence
246
+ /req/iso-17065/process/decision-employment
247
+ }
248
+ signature {
249
+ in { evaluation_results review_records }
250
+ out { decision_records }
251
+ }
252
+ invariants {
253
+ "[decision_record].decider_ids.count >= 1"
254
+ "[decision_record].granted = false implies [decision_record].reasons is not null"
255
+ }
256
+ activity_kind { decision }
257
+ roles { certification_body }
258
+ evidence {
259
+ decision_record { description "The certification-decision record: the assigned decision person(s) or committee (5.1.4), the decision, and — on a decision not to grant — the reasons identified to the client (7.6.6)." required true }
260
+ }
261
+ segregation {
262
+ constraint decision_not_evaluation {
263
+ kind case_personnel_disjoint
264
+ clause "7.6.2"
265
+ pair { decision evaluation }
266
+ statement "Within one certification case, the personnel making the certification decision shall not have been involved in the process for evaluation for that case (ISO/IEC 17065:2012, 7.6.2)."
267
+ }
268
+ constraint decision_consultancy_bar {
269
+ kind consultancy_bar
270
+ clause "4.2.10"
271
+ barred { consultancy }
272
+ statement "Within a period specified by the certification body, personnel shall not be used to make a certification decision for a product for which they have provided consultancy (ISO/IEC 17065:2012, 4.2.10; a specified period of two years is often used)."
273
+ }
274
+ }
275
+ executor actor
276
+ source { doc "ISO/IEC 17065:2012, 7.6" clause "" }
277
+ }
278
+
279
+ process attestation {
280
+ name "Attestation (certification documentation + directory)"
281
+ summary "The certification body issues the formal certification documentation — only after, or concurrent with, the certification decision, fulfilled certification requirements, and the completed/signed certification agreement (7.7.3) — conveying the body, grant date (never preceding the decision date), client, scope of certification, term/expiry and scheme-required information (7.7.1), signed or otherwise authorized (7.7.2); and maintains the directory information on certified products (7.8)."
282
+ validate_provision {
283
+ /req/iso-17065/process/certification-documentation
284
+ /req/iso-17065/process/attestation-preconditions
285
+ /req/iso-17065/process/directory
286
+ }
287
+ signature {
288
+ in { decision_records }
289
+ out { certification_documents certified_product_directory }
290
+ }
291
+ invariants {
292
+ "[certification_document].date_granted >= [decision_record].decision_date"
293
+ "[certification_document].scope_of_certification is not null"
294
+ }
295
+ activity_kind { certification }
296
+ roles { certification_body }
297
+ evidence {
298
+ certification_document { description "The formal certification documentation with the 7.7.1 a–f content and the signature or defined authorization of the assigned person(s) (7.7.2)." required true }
299
+ issuance_preconditions_record { description "Evidence the 7.7.3 preconditions held at issuance: the grant/extension decision made, certification requirements fulfilled, the certification agreement completed/signed." required true }
300
+ directory_record { description "The maintained certified-product information (product, normative documents, client — 7.8.1) with validity information provided on request (7.8.2)." }
301
+ }
302
+ executor actor
303
+ source { doc "ISO/IEC 17065:2012, 7.7, 7.8" clause "" }
304
+ }
305
+
306
+ process surveillance {
307
+ name "Surveillance"
308
+ summary "Where the certification scheme requires surveillance (or 7.9.3 / 7.9.4 requires it), the certification body initiates surveillance of the certified product(s) in accordance with the scheme — mandatory periodic surveillance wherever a certification mark continues in use — fulfilling 7.4/7.5/7.6 whenever surveillance utilizes evaluation, review or a certification decision (7.9.2)."
309
+ validate_provision {
310
+ /req/iso-17065/process/surveillance
311
+ /req/iso-17065/process/surveillance-marked-products
312
+ }
313
+ signature {
314
+ in { certification_documents }
315
+ out { surveillance_records }
316
+ }
317
+ invariants {
318
+ "[certification_document].mark_in_continued_use = true implies [surveillance_record].periodic = true"
319
+ }
320
+ activity_kind { surveillance }
321
+ roles { certification_body }
322
+ evidence {
323
+ surveillance_record { description "The surveillance record per the scheme-defined criteria and process (7.9.1 Note 2), including the periodic surveillance of marked products where mark use continues (7.9.3/7.9.4)." required true }
324
+ }
325
+ executor actor
326
+ source { doc "ISO/IEC 17065:2012, 7.9" clause "" }
327
+ }
328
+
329
+ process changes {
330
+ name "Changes affecting certification"
331
+ summary "The certification body communicates new or revised scheme requirements to all clients and verifies their implementation (7.10.1), considers other changes affecting certification (including client-initiated ones, 7.10.2) and decides upon the appropriate action — re-entering evaluation, review, decision and re-issuance as required, with the rationale for exclusions recorded (7.10.3)."
332
+ validate_provision {
333
+ /req/iso-17065/process/changes
334
+ }
335
+ signature {
336
+ in { certification_documents }
337
+ out { change_records certification_documents }
338
+ }
339
+ invariants {
340
+ "[change_record].decided_action is not null"
341
+ }
342
+ activity_kind { decision certification }
343
+ roles { certification_body }
344
+ evidence {
345
+ change_record { description "The change record: the scheme-change communication and implementation verification (7.10.1), the action decided (7.10.2), and the rationale for any excluded 7.4–7.8 activity (7.10.3)." required true }
346
+ }
347
+ executor actor
348
+ source { doc "ISO/IEC 17065:2012, 7.10" clause "" }
349
+ }
350
+
351
+ process termination {
352
+ name "Termination, reduction, suspension or withdrawal of certification"
353
+ summary "On a substantiated nonconformity with certification requirements, the certification body considers and decides the appropriate action — continuation under conditions, scope reduction, suspension or withdrawal (7.11.1) — applying 7.4/7.5/7.6 when the action re-enters them (7.11.2), and makes all necessary modifications to certification documents, public information and mark authorizations so nothing indicates continued certification (7.11.3), with suspension-restoration communication (7.11.4–7.11.6) and reinstatement modifications (7.11.7)."
354
+ validate_provision {
355
+ /req/iso-17065/process/termination
356
+ }
357
+ signature {
358
+ in { certification_documents surveillance_records }
359
+ out { termination_records certification_documents }
360
+ }
361
+ invariants {
362
+ "[termination_record].action is not null"
363
+ "[termination_record].action = 'SUSPENSION' implies [termination_record].restoration_actions is not null"
364
+ }
365
+ activity_kind { suspension withdrawal }
366
+ roles { certification_body }
367
+ evidence {
368
+ termination_record { description "The termination/reduction/suspension/withdrawal record: the substantiated nonconformity, the action decided, and the modifications to documents, public information and mark authorizations (7.11.3); for suspensions, the restoration actions communicated to the client (7.11.4)." required true }
369
+ }
370
+ executor actor
371
+ source { doc "ISO/IEC 17065:2012, 7.11" clause "" }
372
+ }
373
+
374
+ process records {
375
+ name "Records"
376
+ summary "The certification body retains records demonstrating that all certification process requirements (this International Standard and the scheme's) have been effectively fulfilled, keeps them confidential in transport, transmission and transfer, and retains them at least for the current and previous re-evaluation cycle where the scheme re-evaluates within a determined cycle."
377
+ validate_provision {
378
+ /req/iso-17065/process/records
379
+ }
380
+ signature {
381
+ in { certification_applications evaluation_results review_records decision_records certification_documents }
382
+ out { certification_records }
383
+ }
384
+ invariants {
385
+ "[certification_records].retention_period is not null"
386
+ }
387
+ roles { certification_body }
388
+ evidence {
389
+ records_register { description "The certification-process records with their retention period (at least current + previous cycle where 7.12.3 applies) and confidentiality handling (7.12.2)." required true }
390
+ }
391
+ executor actor
392
+ source { doc "ISO/IEC 17065:2012, 7.12" clause "" }
393
+ }
394
+
395
+ process complaints {
396
+ name "Complaints and appeals"
397
+ summary "The certification body receives, evaluates and decides complaints and appeals under a documented process — confirming relevance, acknowledging receipt, gathering and verifying the information — with the resolving decision made by, or reviewed and approved by, person(s) NOT involved in the related certification activities (7.13.5) and never by personnel within two years of consultancy for or employment by that client (7.13.6), and gives formal notice of the outcome (7.13.7/7.13.8)."
398
+ validate_provision {
399
+ /req/iso-17065/process/complaints-process
400
+ /req/iso-17065/process/complaint-resolution-independence
401
+ /req/iso-17065/process/complaint-consultancy-bar
402
+ }
403
+ signature {
404
+ in { certification_documents certification_records }
405
+ out { complaint_records }
406
+ }
407
+ invariants {
408
+ "[complaint_record].acknowledged = true"
409
+ "[complaint_record].resolution_decider_ids.count >= 1"
410
+ }
411
+ activity_kind { complaint appeal }
412
+ roles { certification_body }
413
+ evidence {
414
+ complaint_record { description "The complaint/appeal record: receipt acknowledgement (7.13.3), the gathered and verified information (7.13.4), the resolving decision with its maker/reviewer/approver (7.13.5), and the formal notice of outcome and process end (7.13.7/7.13.8)." required true }
415
+ }
416
+ segregation {
417
+ constraint complaint_resolution_not_case {
418
+ kind case_personnel_disjoint
419
+ clause "7.13.5"
420
+ pair { complaints case_personnel }
421
+ statement "Within one complaint or appeal case, the personnel making, reviewing or approving the resolving decision shall not have been involved in the certification activities related to that complaint or appeal (ISO/IEC 17065:2012, 7.13.5)."
422
+ }
423
+ constraint complaint_consultancy_two_year_bar {
424
+ kind consultancy_bar
425
+ clause "7.13.6"
426
+ period P2Y
427
+ barred { consultancy employment }
428
+ statement "Personnel (including those acting in a managerial capacity) who have provided consultancy for a client, or been employed by a client, shall not be used to review or approve the resolution of a complaint or appeal for that client within two years following the end of the consultancy or employment (ISO/IEC 17065:2012, 7.13.6)."
429
+ }
430
+ }
431
+ executor actor
432
+ source { doc "ISO/IEC 17065:2012, 7.13" clause "" }
433
+ }
434
+
435
+ process_model functional_approach {
436
+ sequence { application application_review evaluation review decision attestation surveillance }
437
+ }