Finding

constructor(id: String, category: FindingCategory, severity: Severity, title: String, detail: String, evidence: List<Evidence> = emptyList(), subjects: List<String> = emptyList(), provenance: Provenance = Provenance.COMPUTED, confidence: Confidence? = null, action: String? = null)(source)

Parameters

id

Stable kebab-case identifier, e.g. "central-dependency". A public contract like ArchRule.id: it appears in exports and can be suppressed, so it must not change after release.

category

Section this finding belongs to.

severity

How much attention it deserves. INFO findings are descriptive - most of the narrative is INFO - while WARNING and ERROR mark things worth acting on. A finding never fails a build; that is what ArchRule is for.

title

One short line, suitable as a heading.

detail

One or two full sentences explaining the finding in plain language.

evidence

The measurements behind it, in the order they support the claim.

subjects

Module paths this finding concerns, most relevant first, for navigation.

provenance

The weakest tier among the finding's inputs - a claim is only as certain as its least certain ingredient.

confidence
action

What to do about it, when there is a defensible answer. Null for purely descriptive findings - inventing an action for every observation is how advice becomes noise.