Add module inspection report aggregator with completeness check - #682
Add module inspection report aggregator with completeness check#682FScholPer wants to merge 1 commit into
Conversation
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
License Check Results🚀 The license check job ran with the Bazel command: bazel run --lockfile_mode=error //src:license-checkStatus: Click to expand output |
|
The created documentation from the pull request is available at: docu-html |
| :belongs_to: mod__inspection_report_graph_module | ||
| :inspects: comp_req__inspection_report_graph__sample | ||
|
|
||
| #EXPECT[+2]: Inspection report is missing approved inspection(s) for: architecture |
There was a problem hiding this comment.
This PR is using an outdated method for file-based tests. See https://eclipse-score.github.io/docs-as-code/main/internals/extensions/rst_filebased_testing.html
aschemmel-tech
left a comment
There was a problem hiding this comment.
See inline comments
| status: ^(valid|invalid)$ | ||
| # req-Id: tool_req__docs_inspection_report_need | ||
| # comma-separated subset of the three checklist categories the module must cover | ||
| expected_inspections: ^(requirements|architecture|implementation)(,(requirements|architecture|implementation))*$ |
There was a problem hiding this comment.
So you want to select which inspection types are needed because we may tailor this for some modules? So the template would have ":expected_inspections: requirements, architecture, implementation" pre-filled?
| contains: mod_insp | ||
| optional_links: | ||
| # req-Id: tool_req__docs_inspection_report_need | ||
| evidence: ANY |
There was a problem hiding this comment.
evidence for what should this be?
|
|
||
| * aggregate inspection records via ``contains`` and belong to the module via ``belongs_to`` | ||
| * declare the required checklist categories via ``expected_inspections`` | ||
| * be gated so every expected inspection type has a contained, approved inspection record |
There was a problem hiding this comment.
does this make sense to have? This would only cover completeness (for requirements) if you have only one component in the module, for architecture it is never complete because you have feature and component architecture inspections ... So rather you need to do this check with the knowledge of what documents (or even better workproduct) needs you created. Every inspected needs workproduct should have a "inspected" tag or status according to our process.
📌 Description
Relates to #611
Adds an aggregator on top of
mod_insp(from #661) that makes inspection completeness machine-checkable, grounded in the process concept (Review and Inspection Concept), which defines inspections over three checklist types:requirements/architecture/implementation.mod_inspis the atomic record (one per inspected work product). To prove that a module's report actually contains every inspection it is expected to have, we need an element that aggregates the records and a check that gates coverage. The existing config-drivengraph_checkscan only assert conditions on a linked need — they cannot express coverage/cardinality — so this adds a small Python@graph_check.metamodel.yaml: newmod_insp_reportneed type (prefix: mod_ispr__):mandatory_options:safety/security/status+expected_inspections(comma-separated subset ofrequirements|architecture|implementation— the checklist categories the module must cover).mandatory_links:belongs_to: mod,contains: mod_insp; optionalevidence.checks/graph_checks.py: newcheck_inspection_report_completeness. For eachmod_insp_report, a declaredexpected_inspectionstype counts as covered only if acontains-linked need is amod_inspwithinspection_state == approvedandstatus == valid. Missing types produce a warning, e.g.:requirements.rst:tool_req__docs_inspection_report_need.rst/options/test_options_inspection_report.rst(valid report + invalidexpected_inspections),rst/graph/test_inspection_report.rst(incomplete → warns, complete → clean), and unit tests intest_graph_checks.py.Design note (open for review): the completeness rule is intentionally the declared expected set (
expected_inspections) vs. the contained approved records — deterministic and testable. Auto-deriving the expected set from the module's own work products (itscomp_req/comp_arc/… needs) is a possible level-2 follow-up.🚨 Impact Analysis
✅ Checklist
Frank Scholter Peres frank.scholter_peres@mercedes-benz.com, Mercedes-Benz Tech Innovation GmbH
Provider Information