@memoarchitect/ontology 0.6.5 → 0.8.22
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.
- package/README.md +4 -2
- package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +1 -1
- package/examples/connected-patient-monitor/model/catalog/project.sysml +24 -0
- package/examples/connected-patient-monitor/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/connected-patient-monitor/model/{viewpoints → catalog/viewpoints/unassigned/views}/connected_patient_monitor_overview.sysml +1 -1
- package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +7 -5
- package/examples/embedded-infusion-pump/model/catalog/project.sysml +24 -0
- package/examples/embedded-infusion-pump/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/embedded-infusion-pump/model/{viewpoints → catalog/viewpoints/unassigned/views}/embedded_infusion_pump_overview.sysml +1 -1
- package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +5 -5
- package/examples/functional-logical-physical/model/catalog/project.sysml +24 -0
- package/examples/functional-logical-physical/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/functional-logical-physical/model/{viewpoints → catalog/viewpoints/unassigned/views}/functional_logical_physical_overview.sysml +1 -1
- package/examples/gpca-pump/methodology/gpca_methodology.sysml +7 -8
- package/examples/gpca-pump/methodology/gpca_profiles.sysml +89 -11
- package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +19 -9
- package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +342 -100
- package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +27 -13
- package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +329 -272
- package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +57 -16
- package/examples/gpca-pump/model/catalog/gpca_context.sysml +12 -8
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +14 -10
- package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +1 -15
- package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +181 -264
- package/examples/gpca-pump/model/catalog/gpca_operational.sysml +95 -60
- package/examples/gpca-pump/model/catalog/gpca_physical.sysml +6 -11
- package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +102 -101
- package/examples/gpca-pump/model/catalog/gpca_risk.sysml +1 -1
- package/examples/gpca-pump/model/catalog/gpca_standards.sysml +161 -0
- package/examples/gpca-pump/model/catalog/gpca_system.sysml +47 -30
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +301 -354
- package/examples/gpca-pump/model/catalog/gpca_verification.sysml +116 -36
- package/examples/gpca-pump/model/catalog/project.sysml +26 -0
- package/examples/gpca-pump/model/catalog/viewpoints/context/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/context/views}/context_system_context_view.sysml +4 -4
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/cybersecurity_cybersecurity_view.sysml +4 -4
- package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/document_cyber_assessment_view.sysml +4 -4
- package/examples/gpca-pump/model/{views → catalog/viewpoints/cybersecurity/views}/document_threat_model_view.sysml +5 -5
- package/examples/gpca-pump/model/catalog/viewpoints/functional/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/functional/views}/functional_function_allocation_view.sysml +2 -2
- package/examples/gpca-pump/model/{views → catalog/viewpoints/functional/views}/functional_function_browser_view.sysml +3 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/behavior_action_flow_view.sysml +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/document_architecture_description_view.sysml +8 -8
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_device_interconnect_view.sysml +5 -5
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_logical_architecture_view.sysml +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_mode_state_view.sysml +4 -4
- package/examples/gpca-pump/model/{views → catalog/viewpoints/logical/views}/logical_system_decomposition_view.sysml +3 -3
- package/examples/gpca-pump/model/catalog/viewpoints/operational/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/operational/views}/operational_scenario_sequence_view.sysml +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/operational/views}/operational_use_case_view.sysml +4 -4
- package/examples/gpca-pump/model/catalog/viewpoints/physical/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/physical/views}/physical_physical_bom_view.sysml +2 -2
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/requirements/views}/document_dhf_index_view.sysml +8 -8
- package/examples/gpca-pump/model/{views → catalog/viewpoints/requirements/views}/requirements_requirements_trace_view.sysml +2 -2
- package/examples/gpca-pump/model/catalog/viewpoints/risk/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/document_hazard_analysis_view.sysml +8 -5
- package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/document_rmf_view.sysml +7 -5
- package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/risk_fmea_view.sysml +3 -3
- package/examples/gpca-pump/model/{views → catalog/viewpoints/risk/views}/risk_risk_chain_view.sysml +3 -3
- package/examples/gpca-pump/model/catalog/viewpoints/software/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/software/views}/document_sdd_view.sysml +4 -4
- package/examples/gpca-pump/model/{views → catalog/viewpoints/software/views}/software_software_architecture_view.sysml +5 -5
- package/examples/gpca-pump/model/catalog/viewpoints/usability/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/usability/views}/document_usability_view.sysml +8 -6
- package/examples/gpca-pump/model/catalog/viewpoints/verification/viewpoint.sysml +8 -0
- package/examples/gpca-pump/model/{views → catalog/viewpoints/verification/views}/document_vv_view.sysml +7 -5
- package/examples/gpca-pump/model/{views → catalog/viewpoints/verification/views}/verification_verification_coverage_view.sysml +3 -3
- package/examples/ivd-laboratory-system/model/catalog/project.sysml +24 -0
- package/examples/ivd-laboratory-system/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/ivd-laboratory-system/model/{viewpoints → catalog/viewpoints/unassigned/views}/ivd_laboratory_system_overview.sysml +1 -1
- package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +4 -2
- package/examples/manual-surgical-instrument/model/catalog/project.sysml +24 -0
- package/examples/manual-surgical-instrument/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/manual-surgical-instrument/model/{viewpoints → catalog/viewpoints/unassigned/views}/manual_surgical_instrument_overview.sysml +1 -1
- package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +6 -2
- package/examples/multidimensional-layers/model/catalog/project.sysml +24 -0
- package/examples/multidimensional-layers/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/multidimensional-layers/model/{viewpoints → catalog/viewpoints/unassigned/views}/multidimensional_layers_overview.sysml +1 -1
- package/examples/nested-architecture-dsm/README.md +49 -0
- package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +179 -0
- package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +165 -0
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +53 -0
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +89 -0
- package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +113 -0
- package/examples/nested-architecture-dsm/model/catalog/project.sysml +28 -0
- package/examples/nested-architecture-dsm/model/catalog/traces.sysml +48 -0
- package/examples/reusable-instrument/model/catalog/project.sysml +24 -0
- package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +11 -8
- package/examples/reusable-instrument/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/reusable-instrument/model/{viewpoints → catalog/viewpoints/unassigned/views}/reusable_instrument_overview.sysml +1 -1
- package/examples/ros-mobile-robot/README.md +40 -0
- package/examples/ros-mobile-robot/model/catalog/project.sysml +33 -0
- package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +296 -0
- package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/viewpoint.sysml +7 -0
- package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/views/ros_mobile_robot_overview.sysml +13 -0
- package/examples/software-only-medical-device/model/catalog/project.sysml +28 -0
- package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +11 -5
- package/examples/software-only-medical-device/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/software-only-medical-device/model/{viewpoints → catalog/viewpoints/unassigned/views}/software_only_medical_device_overview.sysml +1 -1
- package/examples/surgical-closure-workflow/model/catalog/project.sysml +24 -0
- package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +57 -57
- package/examples/surgical-closure-workflow/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/surgical-closure-workflow/model/{viewpoints → catalog/viewpoints/unassigned/views}/surgical_closure_workflow_overview.sysml +1 -1
- package/examples/surgical-robot/model/catalog/project.sysml +24 -0
- package/examples/surgical-robot/model/catalog/surgical_robot.sysml +6 -4
- package/examples/surgical-robot/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/surgical-robot/model/{viewpoints → catalog/viewpoints/unassigned/views}/surgical_robot_overview.sysml +1 -1
- package/examples/sysml-diagram-samples/README.md +7 -0
- package/examples/sysml-diagram-samples/dhf/documents/DOC-HAR-001.md +11 -0
- package/examples/sysml-diagram-samples/memo.package.yaml +11 -5
- package/examples/sysml-diagram-samples/model/catalog/project.sysml +33 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/action_flow_view.sysml +23 -20
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/context_view.sysml +11 -11
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.viewlayout +47 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +143 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +87 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.viewlayout +94 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +109 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.viewlayout +13 -0
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/requirements_view.sysml +6 -7
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +33 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +80 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +48 -0
- package/examples/sysml-diagram-samples/model/{samples → catalog/viewpoints/unassigned/views}/use_case_view.sysml +15 -9
- package/examples/sysml-diagram-samples/model/sysml_v2_activity_example.sysml +93 -0
- package/examples/temperature-alarm/model/catalog/project.sysml +24 -0
- package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +29 -21
- package/examples/temperature-alarm/model/catalog/viewpoints/unassigned/viewpoint.sysml +9 -0
- package/examples/temperature-alarm/model/{viewpoints → catalog/viewpoints/unassigned/views}/temperature_alarm_overview.sysml +1 -1
- package/examples/ui-screen-regions/README.md +117 -0
- package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +84 -0
- package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +212 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +61 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/drugSelectorRegion/drug-selector-expanded-2.4.1.png +0 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/mainScreenLayout/main-screen-2.4.1.png +0 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/screen-captures/settingsScreenLayout/settings-screen-2.4.1.png +0 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +51 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +27 -0
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +27 -0
- package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +59 -0
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +25 -0
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +178 -0
- package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +93 -0
- package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +75 -0
- package/examples/ui-screen-regions/model/catalog/project.sysml +45 -0
- package/examples/ui-screen-regions/model/catalog/relationships.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/traces.sysml +179 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/functional/viewpoint.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +62 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/viewpoint.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +62 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/risk/viewpoint.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +62 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/viewpoint.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/main_screen_layout.sysml +57 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/settings_screen_layout.sysml +52 -0
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml +54 -0
- package/extensions/LICENSES/MIT.txt +19 -0
- package/extensions/README.md +94 -0
- package/extensions/aadl/memo.package.yaml +18 -0
- package/extensions/aadl/src/aadl_extension.sysml +6 -0
- package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +147 -0
- package/extensions/aadl/src/methodology/aadl_methodology.sysml +17 -0
- package/extensions/aadl/src/runtime/memo_aadl_runtime.sysml +56 -0
- package/extensions/clinical/memo.package.yaml +18 -0
- package/extensions/clinical/src/methodology/clinical_methodology.sysml +22 -0
- package/extensions/cloud/memo.package.yaml +18 -0
- package/extensions/cloud/src/cloud_extension.sysml +44 -0
- package/extensions/cloud/src/methodology/cloud_methodology.sysml +17 -0
- package/extensions/container/memo.package.yaml +18 -0
- package/extensions/container/src/container_extension.sysml +37 -0
- package/extensions/container/src/methodology/container_methodology.sysml +17 -0
- package/extensions/messaging/memo.package.yaml +18 -0
- package/extensions/messaging/src/messaging_extension.sysml +64 -0
- package/extensions/messaging/src/methodology/messaging_methodology.sysml +17 -0
- package/extensions/ros/memo.package.yaml +18 -0
- package/extensions/ros/src/methodology/ros_methodology.sysml +25 -0
- package/extensions/ros/src/ros_extension.sysml +200 -0
- package/extensions/template/memo.package.yaml +17 -0
- package/extensions/template/src/extension.sysml +37 -0
- package/memo.manifest.yaml +15 -2
- package/methodologies/default/memo.package.yaml +19 -9
- package/methodologies/gpca/memo.package.yaml +18 -9
- package/ontology/memo.package.yaml +23 -8
- package/package.json +6 -6
- package/profile/memo.package.yaml +18 -9
- package/src/architecture/decisions/memo_decisions.sysml +28 -0
- package/src/architecture/functional/behavior/memo_behavior.sysml +50 -22
- package/src/architecture/functional/constraints/memo_constraints.sysml +3 -2
- package/src/architecture/functional/functions/memo_functions.sysml +93 -43
- package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +46 -24
- package/src/architecture/implementation/software/structure/memo_software_structure.sysml +52 -12
- package/src/architecture/implementation/ui/memo_ui.sysml +276 -53
- package/src/architecture/logical/interfaces/memo_interfaces.sysml +64 -13
- package/src/architecture/logical/structure/memo_logical_structure.sysml +92 -35
- package/src/architecture/operational/activities/memo_activities.sysml +10 -4
- package/src/architecture/operational/context/actors/memo_actors.sysml +5 -8
- package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +13 -30
- package/src/architecture/operational/context/use_context/memo_use_context.sysml +42 -16
- package/src/architecture/operational/scenarios/memo_scenarios.sysml +57 -23
- package/src/architecture/operational/use_cases/memo_use_cases.sysml +35 -26
- package/src/architecture/operational/workflows/memo_workflows.sysml +28 -15
- package/src/architecture/realization/deployment/memo_deployment.sysml +111 -16
- package/src/architecture/realization/physical/memo_physical_architecture.sysml +27 -2
- package/src/artifacts/configuration_management/memo_configuration_management.sysml +35 -0
- package/src/artifacts/core/memo_controlled_artifacts.sysml +35 -0
- package/src/artifacts/documents/risk_management/memo_risk_management.sysml +12 -0
- package/src/artifacts/standards/cfr_21_820.sysml +116 -0
- package/src/artifacts/standards/fda_cybersecurity_2023.sysml +80 -0
- package/src/artifacts/standards/iec_60601_1.sysml +149 -0
- package/src/artifacts/standards/iec_60601_1_2.sysml +56 -0
- package/src/artifacts/standards/iec_60812.sysml +51 -0
- package/src/artifacts/standards/iec_62304.sysml +210 -0
- package/src/artifacts/standards/iec_62366_1.sysml +113 -0
- package/src/artifacts/standards/iec_81001_5_1.sysml +84 -0
- package/src/artifacts/standards/iso_13485.sysml +113 -0
- package/src/artifacts/standards/iso_14971.sysml +94 -0
- package/src/artifacts/standards/iso_iec_ieee_42010.sysml +42 -0
- package/src/artifacts/standards/memo_artifacts_standards_traceability.sysml +132 -0
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-input.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-output.md +5 -5
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-review.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-validation.md +2 -2
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/design-verification.md +2 -2
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/dhf-index.md +2 -2
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/transfer-plan.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/user-needs.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/vv-plan.md +3 -3
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/vv-report.md +4 -4
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/incident-response.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/postmarket-surveillance.md +3 -2
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/security-arch.md +2 -2
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/threat-model.md +4 -4
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/fda-cybersecurity/vuln-assessment.md +4 -3
- package/src/artifacts/templates/dhf/iec-60601/hrs.md +170 -0
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/detailed-design.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/integration-test.md +3 -3
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sad.md +6 -5
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sbom.md +3 -2
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sdp.md +5 -4
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/soup.md +4 -2
- package/src/artifacts/templates/dhf/iec-62304/srs.md +172 -0
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/sw-traceability.md +3 -3
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/system-test.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/summative-eval.md +1 -1
- package/src/artifacts/templates/dhf/iec-62366/task-analysis.md +93 -0
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/ue-plan.md +1 -1
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/urra.md +3 -3
- package/src/artifacts/templates/dhf/iso-14971/fmea.md +116 -0
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/har.md +3 -3
- package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/rmp.md +2 -2
- package/src/artifacts/templates/dhf/system/sad.md +173 -0
- package/src/artifacts/templates/dhf/system/standards-checklist.md +87 -0
- package/src/artifacts/templates/dhf/system/standards-traceability.md +125 -0
- package/src/artifacts/templates/dhf/system/syrs.md +128 -0
- package/src/assurance/cybersecurity/memo_cybersecurity.sysml +39 -20
- package/src/assurance/human_factors/memo_human_factors.sysml +29 -22
- package/src/assurance/requirements/memo_requirements.sysml +5 -2
- package/src/assurance/requirements/needs/memo_needs.sysml +1 -1
- package/src/assurance/safety_risk/analysis/memo_fmea.sysml +118 -13
- package/src/assurance/safety_risk/memo_risk.sysml +78 -7
- package/src/assurance/safety_risk/postmarket_surveillance/memo_postmarket_surveillance.sysml +27 -0
- package/src/assurance/verification_validation/clinical_evaluation/memo_clinical_evaluation.sysml +11 -0
- package/src/assurance/verification_validation/memo_assurance.sysml +17 -21
- package/src/core/annotations/memo_annotations.sysml +96 -0
- package/src/core/common/memo_common.sysml +140 -18
- package/src/core/consistency_rules/consistency_rules.sysml +7 -0
- package/src/core/dimensions/dimensions.sysml +17 -1
- package/src/core/enumerations/memo_enumerations.sysml +101 -20
- package/src/core/methodology_scope/methodology_scope.sysml +7 -15
- package/src/core/relationships/memo_relationships.sysml +199 -194
- package/src/memo_namespaces.sysml +127 -67
- package/src/methodology/core/memo_core.sysml +69 -2
- package/src/methodology/profiles/memo_profiles.sysml +31 -41
- package/src/methodology/workflow/memo_workflow.sysml +7 -2
- package/src/rules/closure/closure_rules.sysml +104 -31
- package/src/rules/coverage/coverage_rules.sysml +4 -256
- package/src/rules/crosslayer/cross_layer_rules.sysml +6 -15
- package/src/rules/lifecycle/lifecycle_rules.sysml +4 -39
- package/src/rules/ontology/ontology_invariants.sysml +243 -74
- package/src/rules/quantitative/quantitative_rules.sysml +8 -8
- package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +10 -3
- package/src/viewpoints/clinical/clinical_viewpoint.sysml +4 -2
- package/src/viewpoints/clinical/{clinical_evidence_view → views/clinical_evidence_view}/clinical_evidence_view.sysml +2 -2
- package/src/viewpoints/context/context_viewpoint.sysml +4 -2
- package/src/viewpoints/context/{system_context_view → views/system_context_view}/system_context_view.sysml +2 -2
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +4 -2
- package/src/viewpoints/cybersecurity/{cybersecurity_assessment_view → views/cybersecurity_assessment_view}/cybersecurity_assessment_view.sysml +2 -2
- package/src/viewpoints/cybersecurity/{threat_model_view → views/threat_model_view}/threat_model_view.sysml +2 -2
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +5 -0
- package/src/viewpoints/functional/functional_viewpoint.sysml +4 -2
- package/src/viewpoints/functional/{function_allocation_view → views/function_allocation_view}/function_allocation_view.sysml +3 -3
- package/src/viewpoints/functional/{system_functional_tree_view → views/system_functional_tree_view}/system_functional_tree_view.sysml +3 -3
- package/src/viewpoints/logical/logical_viewpoint.sysml +3 -1
- package/src/viewpoints/logical/{logical_architecture_view → views/logical_architecture_view}/logical_architecture_view.sysml +2 -2
- package/src/viewpoints/operational/operational_viewpoint.sysml +4 -2
- package/src/viewpoints/operational/{use_case_view → views/use_case_view}/use_case_view.sysml +3 -3
- package/src/viewpoints/physical/physical_viewpoint.sysml +3 -1
- package/src/viewpoints/physical/{network_topology_view → views/network_topology_view}/network_topology_view.sysml +2 -2
- package/src/viewpoints/physical/{physical_bom_view → views/physical_bom_view}/physical_bom_view.sysml +2 -2
- package/src/viewpoints/rendering/memo_rendering.sysml +354 -0
- package/src/viewpoints/requirements/requirements_viewpoint.sysml +3 -1
- package/src/viewpoints/requirements/{requirements_traceability_view → views/requirements_traceability_view}/requirements_traceability_view.sysml +2 -2
- package/src/viewpoints/risk/risk_viewpoint.sysml +3 -1
- package/src/viewpoints/risk/{risk_chain_view → views/risk_chain_view}/risk_chain_view.sysml +2 -2
- package/src/viewpoints/software/software_viewpoint.sysml +3 -1
- package/src/viewpoints/software/{software_architecture_view → views/software_architecture_view}/software_architecture_view.sysml +2 -2
- package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +28 -0
- package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +23 -0
- package/src/viewpoints/usability/usability_viewpoint.sysml +3 -1
- package/src/viewpoints/usability/{usability_engineering_view → views/usability_engineering_view}/usability_engineering_view.sysml +2 -2
- package/src/viewpoints/verification/verification_viewpoint.sysml +4 -2
- package/src/viewpoints/verification/{verification_coverage_view → views/verification_coverage_view}/verification_coverage_view.sysml +3 -3
- package/templates/connected-device/memo.package.yaml +11 -5
- package/templates/connected-device/model/catalog/project.sysml +28 -0
- package/templates/connected-device/syside.toml +1 -1
- package/templates/default/memo.package.yaml +11 -5
- package/templates/default/model/catalog/project.sysml +28 -0
- package/templates/default/syside.toml +1 -1
- package/templates/infusion-pump/memo.package.yaml +11 -5
- package/templates/infusion-pump/model/catalog/project.sysml +28 -0
- package/templates/infusion-pump/syside.toml +1 -1
- package/templates/monitoring-device/memo.package.yaml +11 -5
- package/templates/monitoring-device/model/catalog/project.sysml +28 -0
- package/templates/monitoring-device/syside.toml +1 -1
- package/templates/samd/memo.package.yaml +11 -5
- package/templates/samd/model/catalog/project.sysml +28 -0
- package/templates/samd/syside.toml +1 -1
- package/examples/connected-patient-monitor/model/connected_patient_monitor.sysml +0 -3
- package/examples/embedded-infusion-pump/model/embedded_infusion_pump.sysml +0 -3
- package/examples/extensions/README.md +0 -16
- package/examples/extensions/clinical/memo.package.yaml +0 -9
- package/examples/extensions/clinical/src/methodology/clinical_methodology.sysml +0 -14
- package/examples/extensions/template/memo.package.yaml +0 -9
- package/examples/extensions/template/src/extension.sysml +0 -15
- package/examples/functional-logical-physical/model/functional_logical_physical.sysml +0 -3
- package/examples/gpca-pump/memo.config.yaml +0 -9
- package/examples/gpca-pump/methodology/gpca_scope.sysml +0 -25
- package/examples/ivd-laboratory-system/model/ivd_laboratory_system.sysml +0 -3
- package/examples/manual-surgical-instrument/model/manual_surgical_instrument.sysml +0 -3
- package/examples/multidimensional-layers/model/multidimensional_layers.sysml +0 -4
- package/examples/reusable-instrument/model/reusable_instrument.sysml +0 -4
- package/examples/software-only-medical-device/model/software_only_medical_device.sysml +0 -4
- package/examples/surgical-closure-workflow/model/surgical_closure_workflow.sysml +0 -4
- package/examples/surgical-robot/model/surgical_robot.sysml +0 -4
- package/examples/sysml-diagram-samples/model/samples/functional_flow_view.sysml +0 -164
- package/examples/sysml-diagram-samples/model/samples/interconnection_view.sysml +0 -94
- package/examples/sysml-diagram-samples/model/samples/operational_behaviour_view.sysml +0 -135
- package/examples/sysml-diagram-samples/model/samples/state_transition_view.sysml +0 -109
- package/examples/sysml-diagram-samples/model/samples/tree_view.sysml +0 -56
- package/examples/temperature-alarm/model/temperature_alarm.sysml +0 -4
- package/ontology/memo.rendering.yaml +0 -84
- package/src/compliance/artifacts/memo_artifacts.sysml +0 -12
- package/src/compliance/change/memo_change.sysml +0 -17
- package/src/compliance/dhf-templates/iec-62304/srs.md +0 -138
- package/src/compliance/dhf-templates/iec-62366/task-analysis.md +0 -57
- package/src/compliance/dhf-templates/iso-14971/fmea.md +0 -93
- package/src/compliance/document_views/memo_document_views.sysml +0 -7
- package/src/compliance/iso14971/risk_management_file.sysml +0 -16
- package/src/compliance/postmarket/memo_postmarket.sysml +0 -16
- /package/{examples/extensions → extensions}/clinical/src/clinical_extension.sysml +0 -0
- /package/{examples/extensions → extensions}/clinical/src/procedures/memo_clinical_procedures.sysml +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/21cfr820/change-record.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62304/change-control.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/formative-eval.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/ui-spec.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iec-62366/use-spec.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/fta.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/risk-benefit.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/risk-matrix.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/iso-14971/rmr.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/approval-block.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/document-control-header.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/references-section.md +0 -0
- /package/src/{compliance/dhf-templates → artifacts/templates/dhf}/shared/snippets/revision-history-table.md +0 -0
- /package/templates/connected-device/{src → model/catalog}/architecture/system.sysml +0 -0
- /package/templates/connected-device/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
- /package/templates/connected-device/{src → model/catalog}/assurance/requirements.sysml +0 -0
- /package/templates/default/{src → model/catalog}/architecture/system.sysml +0 -0
- /package/templates/default/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
- /package/templates/default/{src → model/catalog}/assurance/requirements.sysml +0 -0
- /package/templates/infusion-pump/{src → model/catalog}/architecture/system.sysml +0 -0
- /package/templates/infusion-pump/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
- /package/templates/infusion-pump/{src → model/catalog}/assurance/requirements.sysml +0 -0
- /package/templates/monitoring-device/{src → model/catalog}/architecture/system.sysml +0 -0
- /package/templates/monitoring-device/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
- /package/templates/monitoring-device/{src → model/catalog}/assurance/requirements.sysml +0 -0
- /package/templates/samd/{src → model/catalog}/architecture/system.sysml +0 -0
- /package/templates/samd/{src/artifacts/artifacts.sysml → model/catalog/artifacts/catalog.sysml} +0 -0
- /package/templates/samd/{src → model/catalog}/assurance/requirements.sysml +0 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: task-analysis
|
|
3
|
+
title: Task Analysis
|
|
4
|
+
standard: IEC 62366-1:2015+AMD1:2020
|
|
5
|
+
clauses: ["5.4"]
|
|
6
|
+
required_for: ["CE", "MDR"]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
{{include:shared/snippets/document-control-header.md}}
|
|
10
|
+
|
|
11
|
+
{{toc}}
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 1. Purpose
|
|
16
|
+
|
|
17
|
+
Documents task analysis for **{{project.product}}** per IEC 62366-1:2015+AMD1:2020 §5.4, identifying the tasks users perform — through software user interfaces and through physical interaction with the equipment — and which of them could cause a hazardous situation if performed incorrectly.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 2. User Tasks
|
|
22
|
+
|
|
23
|
+
This section is generated from the system model. The table below lists the user tasks and task steps currently defined:
|
|
24
|
+
|
|
25
|
+
```memo-query
|
|
26
|
+
kind: [UserTask, TaskStep]
|
|
27
|
+
display: table
|
|
28
|
+
columns: name, layer, doc
|
|
29
|
+
sort: name
|
|
30
|
+
empty: "No UserTask or TaskStep elements defined."
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### 2.1 Task Boundary — What Each Task Acts Through
|
|
34
|
+
|
|
35
|
+
A task is cyber-physical when the element it is allocated to is a user interface, an operator interface element, or a port. The set below is derived by traversing `allocatedTo` from the tasks above, so it follows the model rather than the wording of a task name.
|
|
36
|
+
|
|
37
|
+
```memo-query
|
|
38
|
+
kind: [UserTask, TaskStep]
|
|
39
|
+
traverse: outgoing allocatedTo
|
|
40
|
+
display: table
|
|
41
|
+
columns: name, kind, layer, doc
|
|
42
|
+
sort: name
|
|
43
|
+
empty: "No tasks are allocated to an interface element. Add AllocatedTo links from UserTask to the UI, operator interface, or port the task acts through."
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### 2.2 Operator-Facing Boundary Elements
|
|
47
|
+
|
|
48
|
+
The user-facing elements a task can act through, hardware and software alike:
|
|
49
|
+
|
|
50
|
+
```memo-query
|
|
51
|
+
kind: [UserInterface, OperatorInterfaceElement, Interface, MemoPort, PhysicalPort]
|
|
52
|
+
display: table
|
|
53
|
+
columns: name, kind, layer, doc
|
|
54
|
+
sort: name
|
|
55
|
+
empty: "No user interface or operator interface elements defined."
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## 3. Critical Tasks
|
|
61
|
+
|
|
62
|
+
A task is critical when incorrect performance can lead to a hazardous situation. The table below is derived by traversing `causes` from the task set — the `useErrorLeadsToHazard` edge of IEC 62366-1 §5.4:
|
|
63
|
+
|
|
64
|
+
```memo-query
|
|
65
|
+
kind: [UserTask, TaskStep]
|
|
66
|
+
traverse: outgoing causes
|
|
67
|
+
display: table
|
|
68
|
+
columns: name, kind, layer, doc
|
|
69
|
+
sort: name
|
|
70
|
+
empty: "No hazardous situations linked to user tasks. Add Causes links (causeKind = useErrorLeadsToHazard) from UserTask to HazardousSituation."
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Complete this section for **{{project.product}}** using the guidance below.
|
|
74
|
+
|
|
75
|
+
_[TODO: Identify which tasks are critical (could lead to hazardous situation if performed incorrectly)]_
|
|
76
|
+
|
|
77
|
+
| Task | Critical | Hazardous Situation if Error | Mitigation |
|
|
78
|
+
| --- | --- | --- | --- |
|
|
79
|
+
| | | | |
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## 4. Task Flow Analysis
|
|
84
|
+
|
|
85
|
+
The diagram below is rendered from the corresponding model view and reflects the current state of the model:
|
|
86
|
+
|
|
87
|
+
{{diagram:task-flow}}
|
|
88
|
+
|
|
89
|
+
_[TODO: Document sequential and parallel task flows with decision points]_
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
{{include:shared/snippets/revision-history-table.md}}
|
|
@@ -39,7 +39,7 @@ _[TODO: Describe all use environments: clinical, home, ambulatory, etc.]_
|
|
|
39
39
|
This section is generated from the system model. The table below lists the **Use-Related Hazards** elements currently defined:
|
|
40
40
|
|
|
41
41
|
```memo-query
|
|
42
|
-
kind: [UseCase,
|
|
42
|
+
kind: [UseCase, UserTask]
|
|
43
43
|
display: table
|
|
44
44
|
columns: name, layer, doc
|
|
45
45
|
sort: name
|
|
@@ -23,7 +23,7 @@ This Use-Related Risk Analysis (URRA) identifies use errors and use-related haza
|
|
|
23
23
|
This section is generated from the system model. The table below lists the **Use Scenarios** elements currently defined:
|
|
24
24
|
|
|
25
25
|
```memo-query
|
|
26
|
-
kind: [UseCase,
|
|
26
|
+
kind: [UseCase, UserTask]
|
|
27
27
|
display: table
|
|
28
28
|
columns: name, layer, doc
|
|
29
29
|
sort: name
|
|
@@ -38,7 +38,7 @@ This section is generated from the system model. The table below lists the **Use
|
|
|
38
38
|
|
|
39
39
|
```memo-query
|
|
40
40
|
kind: [Hazard, HazardousSituation]
|
|
41
|
-
where: layer == "
|
|
41
|
+
where: layer == "human-factors"
|
|
42
42
|
display: table
|
|
43
43
|
columns: name, doc, layer
|
|
44
44
|
sort: name
|
|
@@ -60,7 +60,7 @@ _[TODO: Identify the critical tasks whose failure could cause a hazardous situat
|
|
|
60
60
|
This section is generated from the system model. The table below lists the **Mitigation Measures** elements currently defined:
|
|
61
61
|
|
|
62
62
|
```memo-query
|
|
63
|
-
kind: [RiskControlMeasure,
|
|
63
|
+
kind: [RiskControlMeasure, Requirement]
|
|
64
64
|
display: table
|
|
65
65
|
columns: name, layer, doc
|
|
66
66
|
sort: name
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: fmea
|
|
3
|
+
title: Failure Mode and Effects Analysis
|
|
4
|
+
standard: IEC 60812:2018
|
|
5
|
+
clauses: ["5", "6", "7", "ISO 14971:2019 §7"]
|
|
6
|
+
required_for: ["CE", "FDA_510k", "FDA_PMA"]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
{{include:shared/snippets/document-control-header.md}}
|
|
10
|
+
|
|
11
|
+
{{toc}}
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 1. Purpose and Scope
|
|
16
|
+
|
|
17
|
+
This FMEA documents failure modes for **{{project.product}}** components, their effects, severity, and mitigations, across the hardware layer, the software layer, and the boundary between them. IEC 60812 is the analysis method; the results feed the ISO 14971 risk management process.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 2. Component Inventory
|
|
22
|
+
|
|
23
|
+
This section is generated from the system model. The table below lists the components in scope of this analysis:
|
|
24
|
+
|
|
25
|
+
```memo-query
|
|
26
|
+
kind: [PhysicalAssembly, HardwareAssembly, PhysicalComponent, HardwareComponent, SoftwareSystem, SoftwareComponent, SoftwareModule]
|
|
27
|
+
display: table
|
|
28
|
+
columns: name, kind, layer, doc
|
|
29
|
+
sort: name
|
|
30
|
+
empty: "No components defined. Add hardware or software architecture elements."
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 3. FMEA Worksheet
|
|
36
|
+
|
|
37
|
+
Each subsection traverses `hasFailureMode` from a set of architecture elements, so a failure mode appears under hardware, software, or the interface according to **what it is attached to in the model** — not according to what it is called.
|
|
38
|
+
|
|
39
|
+
### 3.1 Hardware Failure Modes
|
|
40
|
+
|
|
41
|
+
Physical component failures: electrical shorts, mechanical wear, sensor drift, power loss.
|
|
42
|
+
|
|
43
|
+
```memo-query
|
|
44
|
+
kind: [PhysicalAssembly, HardwareAssembly, PhysicalSubassembly, PhysicalComponent, HardwareComponent, ElectricalComponent, ElectronicComponent, ThermalComponent, FluidicComponent]
|
|
45
|
+
traverse: outgoing hasFailureMode
|
|
46
|
+
display: table
|
|
47
|
+
columns: name, effect, severityRating, probability, doc
|
|
48
|
+
sort: name
|
|
49
|
+
empty: "No hardware failure modes defined. Link FailureMode elements to hardware components with HasFailureMode."
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### 3.2 Software Failure Modes
|
|
53
|
+
|
|
54
|
+
Software failures: logic errors, memory exhaustion, data corruption, timing violations.
|
|
55
|
+
|
|
56
|
+
```memo-query
|
|
57
|
+
kind: [SoftwareSystem, SoftwareComponent, SoftwareModule]
|
|
58
|
+
traverse: outgoing hasFailureMode
|
|
59
|
+
display: table
|
|
60
|
+
columns: name, effect, severityRating, probability, doc
|
|
61
|
+
sort: name
|
|
62
|
+
empty: "No software failure modes defined. Link FailureMode elements to software items with HasFailureMode."
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### 3.3 Hardware-Software Interface Failure Modes
|
|
66
|
+
|
|
67
|
+
Failures at the boundary between hardware and software — sensor data misinterpreted, actuator commands lost, protocol desynchronisation. The boundary is queried through the interface and port types, never by matching a name.
|
|
68
|
+
|
|
69
|
+
```memo-query
|
|
70
|
+
kind: [InterfaceElement, MemoPort]
|
|
71
|
+
traverse: incoming hasFailureMode
|
|
72
|
+
display: table
|
|
73
|
+
columns: name, effect, severityRating, probability, doc
|
|
74
|
+
sort: name
|
|
75
|
+
empty: "No interface failure modes defined. Link FailureMode elements to interfaces or ports with HasFailureMode."
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### 3.4 Interface Inventory
|
|
79
|
+
|
|
80
|
+
The boundary elements the section above analyses:
|
|
81
|
+
|
|
82
|
+
```memo-query
|
|
83
|
+
kind: [InterfaceElement, MemoPort]
|
|
84
|
+
display: table
|
|
85
|
+
columns: name, kind, layer, doc
|
|
86
|
+
sort: name
|
|
87
|
+
empty: "No interfaces or ports defined."
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## 4. Risk Controls for FMEA Items
|
|
93
|
+
|
|
94
|
+
Risk control measures defined for **{{project.product}}**. A failure mode with no risk control belongs in §5.
|
|
95
|
+
|
|
96
|
+
```memo-query
|
|
97
|
+
kind: RiskControlMeasure
|
|
98
|
+
display: table
|
|
99
|
+
columns: name, layer, doc
|
|
100
|
+
sort: name
|
|
101
|
+
empty: "No risk controls defined."
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## 5. Unmitigated Failures
|
|
107
|
+
|
|
108
|
+
Complete this section for **{{project.product}}** using the guidance below.
|
|
109
|
+
|
|
110
|
+
_[TODO: List any failure modes without risk controls and justify residual risk per ISO 14971:2019 §7.4 and §8]_
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
{{include:shared/snippets/revision-history-table.md}}
|
|
115
|
+
|
|
116
|
+
{{include:shared/snippets/approval-block.md}}
|
|
@@ -50,7 +50,7 @@ All foreseeable hazards arising from the device, its intended use, and reasonabl
|
|
|
50
50
|
|
|
51
51
|
```memo-query
|
|
52
52
|
kind: Hazard
|
|
53
|
-
where:
|
|
53
|
+
where: hazardType == "HazardTypeKind::energyExposure"
|
|
54
54
|
display: table
|
|
55
55
|
columns: name, doc, layer
|
|
56
56
|
sort: name
|
|
@@ -61,7 +61,7 @@ empty: "No energy hazards identified."
|
|
|
61
61
|
|
|
62
62
|
```memo-query
|
|
63
63
|
kind: Hazard
|
|
64
|
-
where:
|
|
64
|
+
where: hazardType == "HazardTypeKind::biologicalContamination"
|
|
65
65
|
display: table
|
|
66
66
|
columns: name, doc, layer
|
|
67
67
|
empty: "No biological/chemical hazards identified."
|
|
@@ -114,7 +114,7 @@ empty: "No harm elements defined. Add Harm elements linked to HazardousSituation
|
|
|
114
114
|
|
|
115
115
|
```memo-query
|
|
116
116
|
kind: RiskControlMeasure
|
|
117
|
-
where:
|
|
117
|
+
where: controlKind == "RiskControlKind::inherentSafeDesign"
|
|
118
118
|
display: table
|
|
119
119
|
columns: name, doc, layer
|
|
120
120
|
empty: "No inherent safety controls."
|
|
@@ -64,7 +64,7 @@ Complete the table below for **{{project.product}}**:
|
|
|
64
64
|
### 4.1 Severity Levels
|
|
65
65
|
|
|
66
66
|
```memo-query
|
|
67
|
-
kind:
|
|
67
|
+
kind: Requirement
|
|
68
68
|
display: table
|
|
69
69
|
columns: name, doc, layer
|
|
70
70
|
empty: "No risk acceptability criteria defined. Add RiskAcceptabilityCriteria elements to the model."
|
|
@@ -83,7 +83,7 @@ Residual risk is acceptable when:
|
|
|
83
83
|
|
|
84
84
|
```memo-query
|
|
85
85
|
kind: Hazard
|
|
86
|
-
where: layer == "
|
|
86
|
+
where: layer == "safety_risk"
|
|
87
87
|
display: count
|
|
88
88
|
label: Total hazards in model
|
|
89
89
|
```
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: sad-system
|
|
3
|
+
title: System Architecture Description
|
|
4
|
+
standard: ISO/IEC/IEEE 42010:2022
|
|
5
|
+
clauses: ["5", "6", "IEC 62304:2006+AMD1:2015 §5.3", "IEC 60601-1:2005+AMD1:2012+AMD2:2020 §4.2"]
|
|
6
|
+
required_for: ["CE", "FDA_510k", "MDR"]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
{{include:shared/snippets/document-control-header.md}}
|
|
10
|
+
|
|
11
|
+
{{toc}}
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 1. Purpose
|
|
16
|
+
|
|
17
|
+
This System Architecture Description (SAD) defines the overall cyber-physical architecture of **{{project.product}}** per ISO/IEC/IEEE 42010:2022 and satisfies architecture requirements across IEC 62304 §5.3 (software) and IEC 60601-1 (hardware).
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 2. System Overview
|
|
22
|
+
|
|
23
|
+
A high-level view of the **{{project.product}}** system, drawn live from the architecture model:
|
|
24
|
+
|
|
25
|
+
```memo-query
|
|
26
|
+
kind: [SoftwareSystem, HardwareAssembly, PhysicalAssembly]
|
|
27
|
+
display: table
|
|
28
|
+
columns: name, layer, doc
|
|
29
|
+
sort: name
|
|
30
|
+
empty: "No system-level elements defined."
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
**Total elements:**
|
|
34
|
+
|
|
35
|
+
```memo-query
|
|
36
|
+
kind: [SoftwareSystem, SoftwareComponent, SoftwareModule, HardwareAssembly, PhysicalAssembly, PhysicalSubassembly, HardwareComponent, PhysicalComponent]
|
|
37
|
+
display: count
|
|
38
|
+
label: Total system elements
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## 3. SEI Viewpoints
|
|
44
|
+
|
|
45
|
+
This architecture is described using the Software Engineering Institute (SEI) Views and Beyond approach, adapted for cyber-physical systems.
|
|
46
|
+
|
|
47
|
+
### 3.1 Module View (Implementation Structure)
|
|
48
|
+
|
|
49
|
+
The static structure of the system's implementation units. Hardware and software are sibling directories in the `implementation` layer, so the two subsections are distinguished by **kind**, not by a layer filter — there is no hardware layer and no software layer.
|
|
50
|
+
|
|
51
|
+
#### 3.1.1 Software Implementation Units (IEC 62304 §5.3.1)
|
|
52
|
+
|
|
53
|
+
```memo-query
|
|
54
|
+
kind: [SoftwareSystem, SoftwareComponent, SoftwareModule]
|
|
55
|
+
display: table
|
|
56
|
+
columns: name, layer, doc
|
|
57
|
+
sort: name
|
|
58
|
+
empty: "No software implementation units defined."
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
#### 3.1.2 Hardware Implementation Units
|
|
62
|
+
|
|
63
|
+
```memo-query
|
|
64
|
+
kind: [PhysicalAssembly, HardwareAssembly, PhysicalSubassembly, PhysicalComponent, HardwareComponent]
|
|
65
|
+
display: table
|
|
66
|
+
columns: name, layer, doc
|
|
67
|
+
sort: name
|
|
68
|
+
empty: "No hardware implementation units defined."
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### 3.2 Component-and-Connector (C&C) View (Runtime Execution)
|
|
72
|
+
|
|
73
|
+
Runtime behaviour: the components executing in the system and the connectors through which they interact.
|
|
74
|
+
|
|
75
|
+
#### 3.2.1 Runtime Environments
|
|
76
|
+
|
|
77
|
+
```memo-query
|
|
78
|
+
kind: [RuntimeEnvironment, DeploymentUnit]
|
|
79
|
+
display: table
|
|
80
|
+
columns: name, layer, doc
|
|
81
|
+
sort: name
|
|
82
|
+
empty: "No runtime environments or deployment units defined."
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
#### 3.2.2 Interfaces and Data Flows
|
|
86
|
+
|
|
87
|
+
Cyber-physical interactions and data flows between components:
|
|
88
|
+
|
|
89
|
+
```memo-query
|
|
90
|
+
kind: [Interface, LogicalInterface, ComponentExchange, InterfaceElement, MemoPort, DataPort, SensorPort, CommandPort, SoftwarePort, PhysicalPort, LogicalPort]
|
|
91
|
+
display: table
|
|
92
|
+
columns: name, kind, layer, doc
|
|
93
|
+
sort: name
|
|
94
|
+
empty: "No interfaces, ports or component exchanges defined."
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### 3.3 Allocation View (Environment Mapping)
|
|
98
|
+
|
|
99
|
+
Software elements mapped to their execution environments.
|
|
100
|
+
|
|
101
|
+
#### 3.3.1 Deployment Units
|
|
102
|
+
|
|
103
|
+
```memo-query
|
|
104
|
+
kind: DeploymentUnit
|
|
105
|
+
traverse: outgoing deploysTo
|
|
106
|
+
display: table
|
|
107
|
+
columns: name, kind, layer, doc
|
|
108
|
+
sort: name
|
|
109
|
+
empty: "No deployments defined. Add DeploysTo links from DeploymentUnit to the processing node."
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## 4. Architecture Decisions & Segregation
|
|
115
|
+
|
|
116
|
+
Significant architecture decisions, alternatives considered, and rationale — including decisions driven by risk control measures (ISO 14971) or cybersecurity considerations.
|
|
117
|
+
|
|
118
|
+
### 4.1 Segregation of Safety Classes (IEC 62304 §5.3.5)
|
|
119
|
+
|
|
120
|
+
_[TODO: Describe how safety-critical items are segregated from non-safety-critical items, and the rationale for the integrity of each boundary]_
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## 5. SOUP Components
|
|
125
|
+
|
|
126
|
+
Software of Unknown Provenance used by **{{project.product}}**, derived by traversing `dependsOnSoup` from the software items. MEMO has no `SOUPComponent` kind: SOUP is a *relationship* a project's own software item has to a third-party item, which is why it is traversed rather than typed.
|
|
127
|
+
|
|
128
|
+
```memo-query
|
|
129
|
+
kind: [SoftwareSystem, SoftwareComponent, SoftwareModule]
|
|
130
|
+
traverse: outgoing dependsOnSoup
|
|
131
|
+
display: table
|
|
132
|
+
columns: name, kind, layer, doc
|
|
133
|
+
sort: name
|
|
134
|
+
empty: "No SOUP identified. Add DependsOnSoup links from software items to the SOUP they depend on."
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## 6. Standards Compliance and Traceability
|
|
140
|
+
|
|
141
|
+
Maps architectural elements to the regulatory clauses they claim, for compliance audits. Both tables are relationship tables — rows are `ConformsTo` links, with columns drawn from both endpoints. Each is scoped to one standard by the clause's declaring package, since the standards library is one package per standard; a clause *number* would not do it, because "5" is a clause of seven of the standards MEMO ships.
|
|
142
|
+
|
|
143
|
+
### 6.1 Compliance with IEC 62304
|
|
144
|
+
|
|
145
|
+
```memo-query
|
|
146
|
+
select: relationships
|
|
147
|
+
kind: conformsTo
|
|
148
|
+
where: target.package == "memo_artifacts_standards_iec_62304"
|
|
149
|
+
display: table
|
|
150
|
+
columns: source, source.kind, target.clauseNumber, target.title
|
|
151
|
+
sort: target.clauseNumber
|
|
152
|
+
empty: "No IEC 62304 compliance traces defined."
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### 6.2 Compliance with IEC 60601-1
|
|
156
|
+
|
|
157
|
+
```memo-query
|
|
158
|
+
select: relationships
|
|
159
|
+
kind: conformsTo
|
|
160
|
+
where: target.package == "memo_artifacts_standards_iec_60601_1"
|
|
161
|
+
display: table
|
|
162
|
+
columns: source, source.kind, target.clauseNumber, target.title
|
|
163
|
+
sort: target.clauseNumber
|
|
164
|
+
empty: "No IEC 60601-1 compliance traces defined."
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
{{include:shared/snippets/revision-history-table.md}}
|
|
170
|
+
|
|
171
|
+
{{include:shared/snippets/approval-block.md}}
|
|
172
|
+
|
|
173
|
+
{{include:shared/snippets/references-section.md}}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: standards-checklist
|
|
3
|
+
title: Standards Conformance Checklist
|
|
4
|
+
standard: ISO 13485:2016
|
|
5
|
+
clauses: ["4.2", "7.3.10"]
|
|
6
|
+
required_for: ["CE", "FDA_510k", "FDA_PMA", "MDR"]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
{{include:shared/snippets/document-control-header.md}}
|
|
10
|
+
|
|
11
|
+
{{toc}}
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 1. Purpose
|
|
16
|
+
|
|
17
|
+
This checklist is the clause-by-clause conformance record for **{{project.product}}**. It lists every clause the project's declared regulatory regimes require, states whether the project claims it, and — where it does — names the element that carries the claim and the evidence behind it.
|
|
18
|
+
|
|
19
|
+
It replaces a hand-maintained conformance matrix. The difference that matters is that this one **cannot silently go empty**: it is generated from the clause library, so a clause nobody has claimed appears as a row marked *Gap*, not as an absent line.
|
|
20
|
+
|
|
21
|
+
**How to read this document.**
|
|
22
|
+
|
|
23
|
+
| Status | Meaning |
|
|
24
|
+
| --- | --- |
|
|
25
|
+
| ✅ Evidenced | Something claims the clause, and that claim reaches verification, a risk control, or an approved controlled document. |
|
|
26
|
+
| 🟡 Claimed | Something claims the clause, but no evidence is linked to it yet. |
|
|
27
|
+
| ❌ Gap | Nothing in the project claims the clause. |
|
|
28
|
+
|
|
29
|
+
A **Gap** is not a defect in the model. Coverage is profile-dependent — that is why it is a report and not a consistency rule, and why `memo_rules_coverage` is deliberately empty. A gap says the project has not claimed that clause *yet*, which is the normal state of a project in flight.
|
|
30
|
+
|
|
31
|
+
**Scope.** The clauses below are those of the standards the project's `regulatoryRegime` declaration pulls in. Method and reference standards that no regime mandates — the FMEA method, the architecture-description standard — are listed separately in §4; their clauses are claimable but not required, so they have no gap count.
|
|
32
|
+
|
|
33
|
+
`memo standards check` prints the same numbers at the command line, from the same computation.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## 2. Coverage Summary
|
|
38
|
+
|
|
39
|
+
```memo-standards
|
|
40
|
+
display: summary
|
|
41
|
+
empty: "No standards are in scope. Declare `regulatoryRegime` on the project's ProjectMethodBinding."
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## 3. Clause-by-Clause Record
|
|
47
|
+
|
|
48
|
+
Every required clause, including the ones nothing claims. The unclaimed rows are the point of the document.
|
|
49
|
+
|
|
50
|
+
```memo-standards
|
|
51
|
+
display: checklist
|
|
52
|
+
status: all
|
|
53
|
+
empty: "No standards are in scope for the declared regimes."
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## 4. Standards Not Required by the Declared Regimes
|
|
59
|
+
|
|
60
|
+
Method and reference standards, and packs outside this project's submission targets. A clause claimed here is real traceability; it is simply not something a regime obliges this project to claim, so nothing here is counted as a gap.
|
|
61
|
+
|
|
62
|
+
```memo-standards
|
|
63
|
+
display: checklist
|
|
64
|
+
scope: unrequired
|
|
65
|
+
status: claimed
|
|
66
|
+
empty: "No clauses are claimed outside the required standards."
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## 5. Open Gaps
|
|
72
|
+
|
|
73
|
+
The working list. Each row is a clause a declared regime requires and nothing in the project claims.
|
|
74
|
+
|
|
75
|
+
```memo-standards
|
|
76
|
+
display: checklist
|
|
77
|
+
status: gaps
|
|
78
|
+
empty: "No open gaps — every required clause is claimed."
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
{{include:shared/snippets/revision-history-table.md}}
|
|
84
|
+
|
|
85
|
+
{{include:shared/snippets/approval-block.md}}
|
|
86
|
+
|
|
87
|
+
{{include:shared/snippets/references-section.md}}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: standards-traceability
|
|
3
|
+
title: Standards Traceability Matrix
|
|
4
|
+
standard: ISO 13485:2016
|
|
5
|
+
clauses: ["7.3.9", "IEC 62304:2006+AMD1:2015 §5.1", "IEC 60601-1:2005+AMD1:2012+AMD2:2020 §4.2", "ISO 14971:2019 §4.4"]
|
|
6
|
+
required_for: ["CE", "FDA_510k", "MDR"]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
{{include:shared/snippets/document-control-header.md}}
|
|
10
|
+
|
|
11
|
+
{{toc}}
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 1. Purpose
|
|
16
|
+
|
|
17
|
+
This Standards Traceability Matrix cross-references the requirements and architectural elements of the **{{project.product}}** cyber-physical system against the clauses of applicable regulatory standards. It is the automated compliance checklist an auditor reads.
|
|
18
|
+
|
|
19
|
+
**How to read this document.** Every table below is *relationship-shaped*: a row is a `ConformsTo` link, with the clause on one end and the conforming element on the other. `select: relationships` makes the link the row, so both ends are addressable as columns.
|
|
20
|
+
|
|
21
|
+
Each section is scoped to one standard by the clause's declaring package — the standards library is one package per standard, which makes `target.package` an exact per-standard selector. A clause *number* is not one: "5" is a clause of seven of the standards MEMO ships, so a matrix filtered on clause number would silently mix IEC 62304 §5 with ISO 14971 §5.
|
|
22
|
+
|
|
23
|
+
A clause with no `ConformsTo` link is a gap. Enumerating the gaps is `memo standards check`, not this document — this document shows what the project *does* claim.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## 2. IEC 62304 Software Lifecycle Processes
|
|
28
|
+
|
|
29
|
+
Maps IEC 62304 clauses to the system elements that satisfy them.
|
|
30
|
+
|
|
31
|
+
```memo-query
|
|
32
|
+
select: relationships
|
|
33
|
+
kind: conformsTo
|
|
34
|
+
where: target.package == "memo_artifacts_standards_iec_62304"
|
|
35
|
+
display: table
|
|
36
|
+
columns: target.clauseNumber, target.title, source, source.kind
|
|
37
|
+
sort: target.clauseNumber
|
|
38
|
+
empty: "No IEC 62304 compliance traces defined."
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 2.1 Document Traceability (IEC 62304)
|
|
42
|
+
|
|
43
|
+
```memo-query
|
|
44
|
+
select: relationships
|
|
45
|
+
kind: tracesToDocument
|
|
46
|
+
where: source.package == "memo_artifacts_standards_iec_62304"
|
|
47
|
+
display: table
|
|
48
|
+
columns: source.clauseNumber, source.title, target, sectionReference
|
|
49
|
+
sort: source.clauseNumber
|
|
50
|
+
empty: "No IEC 62304 document traces defined."
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## 3. IEC 60601-1 Medical Electrical Equipment Safety
|
|
56
|
+
|
|
57
|
+
Maps IEC 60601-1 clauses to the hardware elements and requirements that satisfy them.
|
|
58
|
+
|
|
59
|
+
```memo-query
|
|
60
|
+
select: relationships
|
|
61
|
+
kind: conformsTo
|
|
62
|
+
where: target.package == "memo_artifacts_standards_iec_60601_1"
|
|
63
|
+
display: table
|
|
64
|
+
columns: target.clauseNumber, target.title, source, source.kind
|
|
65
|
+
sort: target.clauseNumber
|
|
66
|
+
empty: "No IEC 60601-1 compliance traces defined."
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### 3.1 Document Traceability (IEC 60601-1)
|
|
70
|
+
|
|
71
|
+
```memo-query
|
|
72
|
+
select: relationships
|
|
73
|
+
kind: tracesToDocument
|
|
74
|
+
where: source.package == "memo_artifacts_standards_iec_60601_1"
|
|
75
|
+
display: table
|
|
76
|
+
columns: source.clauseNumber, source.title, target, sectionReference
|
|
77
|
+
sort: source.clauseNumber
|
|
78
|
+
empty: "No IEC 60601-1 document traces defined."
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## 4. ISO 14971 Risk Management
|
|
84
|
+
|
|
85
|
+
Maps ISO 14971 risk management clauses to their conforming elements — the risk management plan, the hazard analysis, the risk controls.
|
|
86
|
+
|
|
87
|
+
```memo-query
|
|
88
|
+
select: relationships
|
|
89
|
+
kind: conformsTo
|
|
90
|
+
where: target.package == "memo_artifacts_standards_iso_14971"
|
|
91
|
+
display: table
|
|
92
|
+
columns: target.clauseNumber, target.title, source, source.kind
|
|
93
|
+
sort: target.clauseNumber
|
|
94
|
+
empty: "No ISO 14971 compliance traces defined."
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## 5. Standards and Clauses in Scope
|
|
100
|
+
|
|
101
|
+
The clause library itself, as element queries — the standards this project's documents cite, and the clauses available to claim.
|
|
102
|
+
|
|
103
|
+
```memo-query
|
|
104
|
+
kind: RegulatoryStandard
|
|
105
|
+
display: table
|
|
106
|
+
columns: name, designation, edition, issuer
|
|
107
|
+
sort: designation
|
|
108
|
+
empty: "No standards declared. Add RegulatoryStandard instances for the standards this project claims."
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
```memo-query
|
|
112
|
+
kind: StandardClause
|
|
113
|
+
display: table
|
|
114
|
+
columns: clauseNumber, title, normativeStrength, doc
|
|
115
|
+
sort: clauseNumber
|
|
116
|
+
empty: "No standard clauses declared. Add StandardClause instances for the clauses this project claims."
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
{{include:shared/snippets/revision-history-table.md}}
|
|
122
|
+
|
|
123
|
+
{{include:shared/snippets/approval-block.md}}
|
|
124
|
+
|
|
125
|
+
{{include:shared/snippets/references-section.md}}
|