All modules:

Link copied to clipboard

Pure graph algorithms and the architecture-rule engine. Every function is deterministic and I/O-free, so the unit tests (including Kotest property tests over graph shapes) run in milliseconds. Consumes an aalekh-model ModuleDependencyGraph and produces analysis results, violations, and metrics — no Gradle types appear here.

Link copied to clipboard

The Gradle plugin itself — the only module that may touch the Gradle API. Applies the settings / project plugins, exposes the aalekh { } DSL, extracts the module graph from the Gradle project model, and wires the aalekh* tasks. Ships to the Gradle Plugin Portal (the other three modules go to Maven Central).

Link copied to clipboard

The serializable vocabulary of Aalekh. Pure @Serializable data classes with no analysis and no I/O, depending only on kotlinx-serialization-json. Every type here crosses the configuration → execution boundary as JSON (build/tmp/aalekh/graph.json), so each field is part of a cross-process contract, not an implementation detail.

Link copied to clipboard

The report generators. Turns an analyzed ModuleDependencyGraph into the interactive HTML report and the machine-readable exports (JSON, JUnit XML, SARIF, CSV, DOT, Mermaid). Still Gradle-free and I/O-light: generators return strings and byte content that the Gradle tasks write to disk.