Package-level declarations

Extension points for user-authored analysis. Custom ArchRule implementations ship as a separate jar and are wired in via rules { custom("fqcn") } in the consumer's aalekh { } block.

Types

Link copied to clipboard

Discovers MetricProviders from the classpath and runs them against a graph, fail-silent.

Link copied to clipboard

Discovers and runs the narrative extension points, fail-silent.

Link copied to clipboard
data class ExtensionResult(val findings: List<Finding> = emptyList(), val classifications: Map<String, ModuleClassification> = emptyMap(), val failures: List<String> = emptyList())

The result of running third-party extensions against a graph.

Link copied to clipboard
interface FindingProvider

Extension point for contributing a finding - something Aalekh should say about the project.

Link copied to clipboard
data class MetricContribution(val systemValue: Double? = null, val moduleValues: Map<String, Double> = emptyMap())

The raw values a MetricProvider produces for one graph.

Link copied to clipboard
interface MetricProvider

Extension point for contributing a custom metric to Aalekh.

Link copied to clipboard
data class ModuleClassification(val layer: String? = null, val team: String? = null, val purpose: String? = null, val tags: Set<String> = emptySet(), val provenance: Provenance = Provenance.INFERRED)

What a ModuleClassifier knows about one module. Every field is optional; a classifier fills in only what its convention actually determines.

Link copied to clipboard

Extension point for teaching Aalekh your conventions.