pub struct HealthOutput<Report, Group> {
pub schema_version: SchemaVersion,
pub version: ToolVersion,
pub elapsed_ms: ElapsedMs,
pub report: Report,
pub grouped_by: Option<GroupByMode>,
pub groups: Option<Vec<Group>>,
pub group_filter: Option<Vec<String>>,
pub gate_outcomes: Option<GateOutcomes>,
pub request_outcomes: Option<RequestOutcomes>,
pub meta: Option<Meta>,
pub workspace_diagnostics: Vec<WorkspaceDiagnostic>,
pub next_steps: Vec<NextStep>,
}Expand description
Envelope emitted by fallow health --format json (plus the health block
inside the combined and audit envelopes).
The body is HealthReport flattened into the envelope so every report
field (findings, summary, vital_signs, hotspots, actions_meta,
…) lives at the top level. Grouped runs populate grouped_by +
groups with per-bucket recomputed metrics. The actions_meta
breadcrumb is modeled on HealthReport as an Option<HealthActionsMeta>
and is set at construction time by the report builder when the active
HealthActionContext requests suppress-line omission, so the schema
documents the field and serde populates it natively.
Fields§
§schema_version: SchemaVersionHealth output schema version.
version: ToolVersionFallow CLI version that produced this output.
elapsed_ms: ElapsedMsWall-clock analysis duration in milliseconds.
report: ReportHealth report body, flattened into the envelope root.
grouped_by: Option<GroupByMode>Grouping mode when --group-by was passed.
groups: Option<Vec<Group>>Per-bucket recomputed metrics; present only in grouped output.
group_filter: Option<Vec<String>>The --group selector patterns, as given, when the run kept only some
groups. A group that is not in groups was filtered out by this
selector. The project-level sections are not filtered.
gate_outcomes: Option<GateOutcomes>The verdict of every gate this run evaluated, keyed by name. The CLI
always emits it, with the command’s default exit rule in it also when
no flag armed a gate, so a CI integration reads the verdict instead of
guessing from a process status it usually cannot see. A gate fails the
build when status is fail AND enforced is true. The typed
programmatic API runs no CLI gate and leaves it absent. See
crate::GateOutcomes.
request_outcomes: Option<RequestOutcomes>Every narrowing or shaping request this run RECEIVED, keyed by name,
absent when it was asked for nothing. An entry whose status is not
applied means the run could not do what it was asked and reported
something WIDER instead, so what follows is a valid report of a scope
nobody requested. Honoured requests are published too, with
status: "applied", so an absent object means “nothing was asked for”,
never “nothing failed”. See crate::RequestOutcomes.
meta: Option<Meta>_meta block with metric definitions, when --explain was passed.
workspace_diagnostics: Vec<WorkspaceDiagnostic>Workspace-discovery, source-discovery, and analysis-stage diagnostics
for the run. See CheckOutput::workspace_diagnostics for the full
contract: the kinds each stage records, project-root-relative paths,
omitted when empty.
next_steps: Vec<NextStep>Read-only follow-up commands computed from this run’s findings. See
CheckOutput::next_steps for the contract.