Skip to main content

Module finding

Module finding 

Source
Expand description

The located, collect-all lint-finding types (LintFinding/Severity/LintReport). The located, collect-all lint-finding types (DIA-02 finding shape).

RELOCATED into workbook-runtime (Phase 11, Plan 05): the runtime executor’s run() returns a Box<LintFinding> on a dependency cycle, so the finding types must live on the umya-free runtime side. workbook-compiler re-exports these from pmcp_workbook_runtime so its dialect::{LintFinding, LintReport, Severity} surface (and every crate::dialect::* consumer) is unchanged.

A LintFinding is the linter’s atomic output unit: a severity tier, a stable slash-namespaced rule id, a sheet + optional cell LOCATION, a human message, and BA-actionable repair text. A LintReport is the collect-all aggregate: the linter never stops at the first problem — it accumulates EVERY finding and answers LintReport::has_errors as the conformance gate (D-05: only Error severity blocks; Warning/Info do not).

These three derive serde::Serialize + serde::Deserialize + schemars::JsonSchema because they serialize to (and round-trip back from) the lint-report artifact + snapshot that Phases 8–11 and the BA consume (Deserialize added per D-08 so a served LintReport JSON parses back into the typed struct).

Structs§

LintFinding
A single located dialect finding (DIA-02). The rule is a stable slash-namespaced id (e.g. "whitelist/unsupported-fn", "structure/hidden-sheet", "manifest/role-conflict"); repair carries BA-actionable fix text so a non-engineer can act without a round-trip.
LintReport
The collect-all aggregate of every LintFinding from one lint pass (mirrors CatalogError::Load(Vec<_>)). The linter accumulates into one report; LintReport::has_errors is the conformance gate (D-05).

Enums§

Severity
The severity tier of a LintFinding. Only Severity::Error gates conformance (LintReport::has_errors); Warning/Info are advisory (D-05).