docs: add module documentation in AsciiDoc with PlantUML diagrams
Generated by per-group subagents covering all 52 modules across: core (18), infrastructure (10), apps (5), interfaces (3), plugins (7), testing (9) Documentation format: - AsciiDoc (.adoc) files in docs/modules/<group>/ - PlantUML (.puml) files in docs/diagrams/ - .adoc files reference diagrams via include:: directives Each doc covers: purpose, responsibilities, non-responsibilities, key types, event flow, integration points, invariants, PlantUML diagram, known issues, and open questions.
This commit is contained in:
@@ -0,0 +1,113 @@
|
||||
@startuml
|
||||
package "core:transitions" {
|
||||
data class WorkflowGraph {
|
||||
+ id: String
|
||||
+ stages: Map
|
||||
+ transitions: Set
|
||||
+ start: StageId
|
||||
}
|
||||
|
||||
data class StageConfig {
|
||||
+ requiredCapabilities
|
||||
+ tokenBudget
|
||||
+ generationConfig
|
||||
+ allowedTools
|
||||
+ produces
|
||||
}
|
||||
|
||||
data class TransitionEdge {
|
||||
+ id: TransitionId
|
||||
+ from: StageId
|
||||
+ to: StageId
|
||||
+ condition: TransitionCondition
|
||||
}
|
||||
|
||||
fun interface TransitionCondition {
|
||||
+ evaluate(EvaluationContext): Boolean
|
||||
}
|
||||
|
||||
interface TransitionResolver {
|
||||
+ resolve(WorkflowGraph, EvaluationContext): TransitionDecision
|
||||
}
|
||||
|
||||
class DefaultTransitionResolver
|
||||
|
||||
sealed interface TransitionDecision {
|
||||
data class Move
|
||||
data object Stay
|
||||
data class Blocked
|
||||
data object NoMatch
|
||||
}
|
||||
|
||||
data class EvaluationContext {
|
||||
+ sessionId
|
||||
+ currentStage
|
||||
+ artifacts
|
||||
+ variables
|
||||
}
|
||||
|
||||
fun interface TransitionConditionEvaluator
|
||||
fun interface PromptResolver
|
||||
|
||||
interface StageExecutor
|
||||
interface StageExecutionEventMapper
|
||||
|
||||
data class StageExecutionRequest
|
||||
sealed interface StageExecutionResult {
|
||||
data class Success
|
||||
data class Failure
|
||||
}
|
||||
|
||||
DefaultTransitionResolver ..|> TransitionResolver
|
||||
DefaultTransitionResolver --> TransitionConditionEvaluator
|
||||
DefaultTransitionResolver --> TransitionOrdering
|
||||
|
||||
WorkflowGraph *-- StageConfig
|
||||
WorkflowGraph *-- TransitionEdge
|
||||
TransitionEdge *-- TransitionCondition
|
||||
|
||||
TransitionResolver --> TransitionDecision
|
||||
TransitionResolver --> EvaluationContext
|
||||
|
||||
StageExecutionEventMapper --> StageExecutionRequest
|
||||
StageExecutionEventMapper --> StageExecutionResult
|
||||
StageExecutionEventMapper --> EventPayload
|
||||
|
||||
package "conditions" {
|
||||
class AlwaysTrue
|
||||
class VariableEquals
|
||||
class ArtifactPresent
|
||||
class ArtifactAbsent
|
||||
class ArtifactValidated
|
||||
class AllOf
|
||||
class AnyOf
|
||||
class Not
|
||||
}
|
||||
|
||||
AlwaysTrue ..|> TransitionCondition
|
||||
VariableEquals ..|> TransitionCondition
|
||||
ArtifactPresent ..|> TransitionCondition
|
||||
AllOf ..|> TransitionCondition
|
||||
|
||||
package "cycle detection" {
|
||||
class CycleExtractor
|
||||
class CycleDfs
|
||||
class DeterministicAdjacencyBuilder
|
||||
object CycleCanonicalizer
|
||||
data class DetectedCycle
|
||||
}
|
||||
|
||||
package "cycle policy" {
|
||||
sealed interface CyclePolicy {
|
||||
data class Retry
|
||||
data class Refinement
|
||||
data class Approval
|
||||
}
|
||||
data class CycleSignature
|
||||
data class CyclePolicyBinding
|
||||
class CyclePolicyResolver
|
||||
class PolicyValidation
|
||||
}
|
||||
}
|
||||
|
||||
@enduml
|
||||
Reference in New Issue
Block a user