Skip to content

ADR 003: Result Model

Status

Accepted

Context

Legacy reporting mixed presentation concerns with execution state, which made it difficult to evolve reporters and runtime behavior independently.

Decision

Make ValidationRunResult the canonical runtime output and separate:

  • per-check verdicts through CheckResult
  • issue evidence through ValidationIssue
  • runtime failures through ExecutionIssue

The legacy Report remains as an adapter.

Consequences

  • reporters can move toward a stable structured model
  • runtime failures are no longer hidden inside presentation types
  • compatibility remains available during migration