@startuml interface Validator interface SemanticRule class ValidationPipeline class GraphValidator class TransitionValidator class SessionValidator class SemanticValidator class CyclePolicyBindingRule class ArtifactPayloadValidator class ApprovalTrigger class ValidationOutcome class ValidationReport class ValidationSection class ValidationIssue class ValidationContext package "core:transitions" <> { [WorkflowGraph] [DetectedCycle] [CyclePolicyBinding] [TransitionEdge] } package "core:artifacts" <> { [FileWrittenArtifact] [ProcessResultArtifact] } package "core:artifacts-store" <> { [ArtifactStore] } Validator <|.. GraphValidator Validator <|.. TransitionValidator Validator <|.. SessionValidator Validator <|.. SemanticValidator Validator <|.. ArtifactPayloadValidator SemanticValidator --> "rules" SemanticRule SemanticRule <|.. CyclePolicyBindingRule ValidationPipeline --> "validators" Validator ValidationPipeline --> ApprovalTrigger ValidationPipeline ..> ValidationOutcome ValidationOutcome --> ValidationReport ValidationOutcome ..> ApprovalRequest ValidationReport --> "sections" ValidationSection ValidationSection --> "issues" ValidationIssue ValidationIssue --> ValidationSeverity ValidationIssue --> ValidationLocation GraphValidator ..> "core:transitions" TransitionValidator ..> "core:transitions" SessionValidator ..> "core:sessions" CyclePolicyBindingRule ..> "core:transitions" ArtifactPayloadValidator ..> "core:artifacts" ArtifactPayloadValidator ..> "core:artifacts-store" ValidationContext ..> "core:transitions" ValidationContext ..> "core:sessions" @enduml