Finding

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

One human-readable statement about the project - the unit every narrative, recommendation, and generated document is rendered from.

Findings are assembled from templates, so the same graph always produces byte-identical text, which is what makes them safe to commit, diff, and assert on in CI. A finding states one thing, names the modules it concerns so the reader can navigate to them, and carries its evidence.

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.

Constructors

Link copied to clipboard
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)

Properties

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val id: String
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard