Skip to content

Commit fa84c44

Browse files
Add machine-readable module inspection record need type
Adds the mod_insp need type to the metamodel with evidence and inspects extra links, documents the tool requirement, and adds option tests. Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
1 parent ad9844e commit fa84c44

3 files changed

Lines changed: 154 additions & 0 deletions

File tree

docs/internals/requirements/requirements.rst

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ This section provides an overview of current process requirements and their clar
4646
Req, 'tool_req__docs' in id and implemented == "YES" and "Requirements" in tags and status == "valid", 'tool_req__docs' in id and implemented == "PARTIAL" and "Requirements" in tags and status == "valid", 'tool_req__docs' in id and implemented == "NO" and "Requirements" in tags and status == "valid", 'tool_req__docs' in id and "Requirements" in tags and status != "valid"
4747
Arch, 'tool_req__docs' in id and implemented == "YES" and "Architecture" in tags and status == "valid", 'tool_req__docs' in id and implemented == "PARTIAL" and "Architecture" in tags and status == "valid", 'tool_req__docs' in id and implemented == "NO" and "Architecture" in tags and status == "valid", 'tool_req__docs' in id and "Architecture" in tags and status != "valid"
4848
DDesign, 'tool_req__docs' in id and implemented == "YES" and "Detailed Design & Code" in tags and status == "valid", 'tool_req__docs' in id and implemented == "PARTIAL" and "Detailed Design & Code" in tags and status == "valid", 'tool_req__docs' in id and implemented == "NO" and "Detailed Design & Code" in tags and status == "valid", 'tool_req__docs' in id and "Detailed Design & Code" in tags and status != "valid"
49+
Verif, 'tool_req__docs' in id and implemented == "YES" and "Verification Evidence" in tags and status == "valid", 'tool_req__docs' in id and implemented == "PARTIAL" and "Verification Evidence" in tags and status == "valid", 'tool_req__docs' in id and implemented == "NO" and "Verification Evidence" in tags and status == "valid", 'tool_req__docs' in id and "Verification Evidence" in tags and status != "valid"
4950
TVR, 'tool_req__docs' in id and implemented == "YES" and "Tool Verification Reports" in tags and status == "valid", 'tool_req__docs' in id and implemented == "PARTIAL" and "Tool Verification Reports" in tags and status == "valid", 'tool_req__docs' in id and implemented == "NO" and "Tool Verification Reports" in tags and status == "valid", 'tool_req__docs' in id and "Tool Verification Reports" in tags and status != "valid"
5051
Other, 'tool_req__docs' in id and implemented == "YES" and "Process / Other" in tags and status == "valid", 'tool_req__docs' in id and implemented == "PARTIAL" and "Process / Other" in tags and status == "valid", 'tool_req__docs' in id and implemented == "NO" and "Process / Other" in tags and status == "valid", 'tool_req__docs' in id and "Process / Other" in tags and status != "valid"
5152
SftyAn, 'tool_req__docs' in id and implemented == "YES" and "Safety Analysis" in tags and status == "valid", 'tool_req__docs' in id and implemented == "PARTIAL" and "Safety Analysis" in tags and status == "valid", 'tool_req__docs' in id and implemented == "NO" and "Safety Analysis" in tags and status == "valid", 'tool_req__docs' in id and "Safety Analysis" in tags and status != "valid"
@@ -820,6 +821,28 @@ Testing
820821
Docs-AS-Code shall provide a way to gather statistics on linkages to implementation(source_code_links) & tests(testlink) for all needs.
821822
It shall also be possible to filter these by type and use the provided statistics in the documentation (via diagrams drawn from it etc.)
822823

824+
🔎 Verification Evidence
825+
########################
826+
827+
.. tool_req:: Support machine-readable inspection records
828+
:id: tool_req__docs_inspection_record_need
829+
:tags: Verification Evidence
830+
:implemented: YES
831+
:version: 1
832+
:satisfies: gd_req__verification_checks
833+
:parent_covered: NO: process wording defines verification checks, while the tool models a first-class inspection record artifact.
834+
835+
Docs-as-Code shall support a machine-readable inspection record need type.
836+
837+
The need type shall:
838+
839+
* use ``mod_insp`` as directive type
840+
* classify the inspection by ``inspection_type`` and ``inspection_state``
841+
* record the checklist reference and reviewer list via ``checklist_ref`` and ``reviewers``
842+
* link the inspection to the verified module via ``belongs_to``
843+
* link the inspected artifacts via ``inspects``
844+
* allow links to backing evidence via ``evidence``
845+
823846
🧪 Tool Verification Reports
824847
############################
825848

src/extensions/score_metamodel/metamodel.yaml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -933,6 +933,47 @@ needs_types:
933933
fully_verifies: ANY
934934
partially_verifies: ANY
935935

936+
# Formal inspection evidence modeled as a first-class artifact.
937+
# req-Id: tool_req__docs_inspection_record_need
938+
mod_insp:
939+
title: Module Inspection Record
940+
prefix: mod_insp__
941+
mandatory_options:
942+
# req-Id: tool_req__docs_common_attr_safety
943+
safety: ^(QM|ASIL_B)$
944+
# req-Id: tool_req__docs_common_attr_security
945+
security: ^(YES|NO)$
946+
# req-Id: tool_req__docs_common_attr_status
947+
status: ^(valid|invalid)$
948+
# req-Id: tool_req__docs_inspection_record_need
949+
inspection_type: ^(requirements|architecture|implementation|traceability|safety_analysis|security_analysis|other)$
950+
inspection_state: ^(planned|in_review|rework_required|approved)$
951+
checklist_ref: ^.*$
952+
reviewers: ^.*$
953+
optional_options:
954+
checklist_type: ^(req|arc|impl|safety|security|custom)$
955+
moderator: ^.*$
956+
approver: ^.*$
957+
findings_total: ^[0-9]+$
958+
findings_open: ^[0-9]+$
959+
pr_link: ^https://github\.com/[^/]+/[^/]+/pull/\d+$
960+
correction_issue: ^https://github\.com/[^/]+/[^/]+/issues/\d+$
961+
inspection_date: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
962+
mandatory_links:
963+
# req-Id: tool_req__docs_inspection_record_need
964+
belongs_to: mod
965+
inspects: ANY
966+
optional_links:
967+
# req-Id: tool_req__docs_inspection_record_need
968+
contains: ANY
969+
evidence: ANY
970+
approved_by: role
971+
supported_by: role
972+
tags:
973+
- inspection
974+
- verification_evidence
975+
parts: 3
976+
936977

937978
# https://eclipse-score.github.io/process_description/main/permalink.html?id=gd_temp__change_decision_record
938979
dec_rec:
@@ -1068,6 +1109,14 @@ needs_extra_links:
10681109
incoming: partially_verified_by
10691110
outgoing: partially_verifies
10701111

1112+
evidence:
1113+
incoming: evidence_for
1114+
outgoing: evidence
1115+
1116+
inspects:
1117+
incoming: inspected_by
1118+
outgoing: inspects
1119+
10711120

10721121
##############################################################
10731122
# Graph Checks
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
..
2+
# *******************************************************************************
3+
# Copyright (c) 2026 Contributors to the Eclipse Foundation
4+
#
5+
# See the NOTICE file(s) distributed with this work for additional
6+
# information regarding copyright ownership.
7+
#
8+
# This program and the accompanying materials are made available under the
9+
# terms of the Apache License Version 2.0 which is available at
10+
# https://www.apache.org/licenses/LICENSE-2.0
11+
#
12+
# SPDX-License-Identifier: Apache-2.0
13+
# *******************************************************************************
14+
#CHECK: check_options
15+
16+
17+
.. Base architecture and requirement objects used by inspection record tests
18+
19+
.. feat:: Inspection Feature
20+
:id: feat__inspection_feature
21+
:security: YES
22+
:safety: ASIL_B
23+
:status: valid
24+
25+
.. comp:: Inspection Component
26+
:id: comp__inspection_component
27+
:security: YES
28+
:safety: ASIL_B
29+
:status: valid
30+
:belongs_to: feat__inspection_feature
31+
32+
.. mod:: Inspection Module
33+
:id: mod__inspection_module
34+
:security: YES
35+
:safety: ASIL_B
36+
:status: valid
37+
:includes: comp__inspection_component
38+
39+
.. comp_req:: Inspection Requirement
40+
:id: comp_req__inspection__sample
41+
:reqtype: Functional
42+
:security: YES
43+
:safety: ASIL_B
44+
:status: valid
45+
46+
Requirement text for inspection record tests.
47+
48+
49+
.. Valid machine-readable inspection record need
50+
#EXPECT-NOT[+2]: does not follow pattern
51+
52+
.. mod_insp:: Inspection Record Valid
53+
:id: mod_insp__inspection__valid
54+
:safety: ASIL_B
55+
:security: YES
56+
:status: valid
57+
:inspection_type: requirements
58+
:inspection_state: approved
59+
:checklist_ref: gd_chklst__req_inspection
60+
:reviewers: reviewer_a,reviewer_b
61+
:checklist_type: req
62+
:findings_total: 1
63+
:findings_open: 0
64+
:inspection_date: 2026-06-24
65+
:belongs_to: mod__inspection_module
66+
:inspects: comp_req__inspection__sample
67+
68+
69+
.. Invalid inspection_state value in module inspection record
70+
#EXPECT[+2]: mod_insp__inspection__bad_state.inspection_state (approved_late): does not follow pattern
71+
72+
.. mod_insp:: Inspection Record Invalid State
73+
:id: mod_insp__inspection__bad_state
74+
:safety: ASIL_B
75+
:security: YES
76+
:status: invalid
77+
:inspection_type: architecture
78+
:inspection_state: approved_late
79+
:checklist_ref: gd_chklst__arch_inspection_checklist
80+
:reviewers: reviewer_a
81+
:belongs_to: mod__inspection_module
82+
:inspects: comp_req__inspection__sample

0 commit comments

Comments
 (0)