WoGu

Architecture

The modules that make up WoGu, and how they depend on each other.

For the visual pipeline — from a developer's workflow code to a production deploy — see the Architecture page. This page covers the module layout underneath it.

Modules

Module What it is
wogu-api The SPI: WorkflowValidator, Rule, RuleCategory, RuleResult, ValidationContext, ValidationSummary, Violation, Severity. Zero dependency on any engine, parser, or build tool.
wogu-core The ValidationEngine: discovers WorkflowValidator implementations via ServiceLoader, runs them, aggregates results. Renders the shared console output. No compile-time reference to any specific validator or rule.
wogu-temporal Temporal Java SDK rules, declared as YAML and executed by a generic rule engine, plus the call-graph analyzer, the workflow scanner, and the logic that recognizes an Activity boundary.
wogu-report Renders a ValidationSummary as a single, self-contained index.html. Depends only on wogu-api, so it renders any engine's output without change.
wogu-maven-plugin The wogu:validate Maven goal, bound to verify by default.
wogu-gradle-plugin The woguValidate Gradle task.

Dependency direction

wogu-temporal — and any future engine module — depends only on wogu-api. wogu-core and wogu-report also depend only on wogu-api, and discover or render engine output reflectively. The two build-tool plugins are the only places that wire a specific set of engine jars onto the classpath, so adding support for a new engine to an existing build is a dependency addition, not a code change to the engine or the report.

Depends on wogu-api only Depends on wogu-core + wogu-report + wogu-temporal
wogu-core, wogu-report, wogu-temporal wogu-maven-plugin, wogu-gradle-plugin

This is what makes the rule engine additive: a new rule is a YAML file plus a documentation page, never a change to the engine, the report, or either plugin. See Custom Rules for how a rule is authored.