@@ -155,9 +155,10 @@ artifacts:
155155 type : design-decision
156156 title : spar-analysis
157157 description : >
158- 27 analysis passes implementing connectivity, scheduling, latency,
158+ 33+ analysis passes implementing connectivity, scheduling, latency,
159159 resource budget, EMV2, ARINC 653, legality rules, mode reachability,
160- and more. Trait-based Analysis framework with AnalysisRunner.
160+ AI/ML safety (ISO/PAS 8800), and more. Trait-based Analysis framework
161+ with AnalysisRunner.
161162 fields :
162163 rationale : >
163164 Trait-based Analysis framework allows modular registration of
@@ -823,3 +824,136 @@ artifacts:
823824 # ── SysML v2 Integration (v0.5.0) ───────────────────────────────────
824825
825826 # ARCH-SYSML2-001 merged into ARCH-SYSML2-002 and ARCH-SYSML2-003 (v0.4.0)
827+
828+ # ── v0.5.0 Architecture Decisions ──────────────────────────────────
829+
830+ - id : ARCH-EXTENDS
831+ type : design-decision
832+ title : Type inheritance via extends chain walking
833+ description : >
834+ collect_type_chain_features and collect_impl_chain walk the extends
835+ chain recursively with cycle detection. Features deduplicated by name.
836+ status : implemented
837+ fields :
838+ rationale : >
839+ Recursive chain walking mirrors the AADL spec semantics for extends.
840+ Cycle detection prevents infinite loops. Name-based deduplication
841+ ensures refined features override parent features correctly.
842+ tags : [v0.5.0]
843+ links :
844+ - type : satisfies
845+ target : REQ-MODEL-005
846+
847+ - id : ARCH-SYSML2-SCHEMA
848+ type : design-decision
849+ title : SysML v2 Rivet schema
850+ description : >
851+ schemas/sysml2.yaml defines sysml-requirement, sysml-component,
852+ sysml-interface, sysml-action artifact types for rivet integration.
853+ status : implemented
854+ fields :
855+ rationale : >
856+ Custom rivet artifact types enable SysML v2 elements to participate
857+ natively in traceability graphs. Schema-level typing ensures
858+ validation and consistent extraction output.
859+ tags : [v0.5.0, sysml2]
860+ links :
861+ - type : satisfies
862+ target : REQ-SYSML2-EXTRACT
863+
864+ - id : ARCH-AIML
865+ type : design-decision
866+ title : AI/ML analysis passes following ISO/PAS 8800
867+ description : >
868+ Six analysis modules for AI/ML component safety: inference deadline
869+ checking, fallback coverage, fallback timing, OOD coverage,
870+ model deployment validation, and redundancy verification. Each
871+ implements the Analysis trait and integrates with AnalysisRunner.
872+ status : implemented
873+ fields :
874+ rationale : >
875+ ISO/PAS 8800 mandates safety analysis for AI/ML components in
876+ automotive systems. Implementing as standard Analysis trait modules
877+ ensures they integrate with existing AnalysisRunner and benefit
878+ from the same reporting infrastructure.
879+ tags : [v0.5.0, analysis, ai-ml]
880+ links :
881+ - type : satisfies
882+ target : REQ-ANALYSIS-001
883+
884+ - id : ARCH-EMV2-STPA
885+ type : design-decision
886+ title : EMV2 fault tree to STPA hazard mapping
887+ description : >
888+ Bridge module mapping EMV2 composite error states to STPA hazards
889+ and propagation paths to loss scenarios. Enables safety analysis
890+ workflows spanning both EMV2 and STPA methodologies.
891+ status : implemented
892+ fields :
893+ rationale : >
894+ STPA and EMV2 address overlapping safety concerns from different
895+ perspectives. Bridging them avoids duplicate modeling effort and
896+ enables cross-methodology traceability in safety cases.
897+ tags : [v0.5.0, safety]
898+ links :
899+ - type : satisfies
900+ target : REQ-ANALYSIS-005
901+
902+ - id : ARCH-MODAL-FILTER
903+ type : design-decision
904+ title : Modal filtering with requires_modes flag
905+ description : >
906+ requires_modes flag stored in ItemTree during lowering.
907+ is_active_in_mode utility enables modal-aware connectivity
908+ and scheduling analysis without re-instantiation.
909+ status : implemented
910+ fields :
911+ rationale : >
912+ Storing requires_modes in ItemTree at lowering time avoids
913+ re-parsing CST during analysis. The is_active_in_mode utility
914+ provides a single filtering point for all modal-aware passes.
915+ tags : [v0.5.0, modes]
916+ links :
917+ - type : satisfies
918+ target : REQ-ANALYSIS-009
919+
920+ - id : ARCH-PROP-LOWERING
921+ type : design-decision
922+ title : Property CST lowering with text fallback parser
923+ description : >
924+ When CST lowering cannot determine property value type, a text-based
925+ fallback parser handles booleans, references, classifiers, ranges,
926+ lists, numerics with units, and enums. Covers legacy and mixed-version
927+ AADL property syntax gracefully.
928+ status : implemented
929+ fields :
930+ rationale : >
931+ CST lowering sometimes lacks enough context to determine property
932+ value types (especially for user-defined property sets). A text
933+ fallback parser provides graceful degradation while maintaining
934+ typed values for downstream analysis.
935+ tags : [v0.5.0, properties]
936+ links :
937+ - type : satisfies
938+ target : REQ-PROP-002
939+
940+ - id : ARCH-SECURITY-HARDEN
941+ type : design-decision
942+ title : Security hardening across rendering and CLI
943+ description : >
944+ 22 correctness and security fixes from adversarial scanning: XSS
945+ prevention via HTML entity escaping in SVG output, YAML/TOML
946+ injection prevention via safe serialization, path traversal guards
947+ on file operations, UTF-8 safe percent decoding, arena index
948+ bounds checks preventing panics on invalid input.
949+ status : implemented
950+ fields :
951+ rationale : >
952+ Adversarial scanning revealed input-driven vulnerabilities in
953+ rendering and CLI paths. Defense-in-depth approach hardens each
954+ layer independently: output escaping, input validation, and
955+ bounds checking.
956+ tags : [v0.5.0, security]
957+ links :
958+ - type : satisfies
959+ target : STPA-SEC-REQ-001
0 commit comments