pub struct Outcomes {
pub autonomy_ratio: AutonomyRatio,
pub grant_latency: GrantLatency,
pub escalations: Vec<EscalationRow>,
pub cost_per_change: CostPerChange,
pub cycle_time: CycleTime,
pub task_classes: Vec<TaskClassRow>,
pub context_reuse: Vec<ContextReuseRow>,
pub rubber_stamp: RubberStampReport,
pub gate_score_flags: GateScoreFlagsReport,
pub divergences: Option<DivergenceOutcomes>,
pub comparison: Option<ComparisonReport>,
}Fields§
§autonomy_ratio: AutonomyRatio§grant_latency: GrantLatency§escalations: Vec<EscalationRow>§cost_per_change: CostPerChangecostUsd per merged non-meta commit (outcomes-view lagging metric).
cycle_time: CycleTimemission.created → terminal, minus paused spans (dashboard rule).
task_classes: Vec<TaskClassRow>The same fold grouped by task class (ticket
outcomes-report-task-class): one row per class recovered from
mission.created goals, plus an explicit “unclassified” row for
missions whose goal carries none. Sorted by class name with
“unclassified” last.
context_reuse: Vec<ContextReuseRow>Context-reuse split per backend (fresh vs cache-read vs cache-write input tokens) — only for backends whose wire reports cache fields at all; a backend that reports none yields NO row (absent, never a fabricated 0%).
rubber_stamp: RubberStampReportRubber-stamp flag summary (ticket rubber-stamp-grant-flag), shown
alongside the latency distribution.
gate_score_flags: GateScoreFlagsReportGate score distribution flags (ticket
gate-score-distribution-flags, KRZ-316): per-gate smells folded
from the scored gate.result series across the same mission logs —
the rubber-stamp signal’s documented COMPLEMENT, presented together:
block-to-grant timing catches an inattentive human, these catch a
mis-specified gate whose threshold nothing approaches. Carried into
the escalation ledger fold as this SUMMARY FIELD, never a per-row
marker: a flag indicts the GATE’s specification across all missions,
so pinning it on one mission’s grant/block/revision row would
misattribute a cross-mission smell to one escalation.
divergences: Option<DivergenceOutcomes>Fleet divergence ledger (KRZ-304), summed over the missions that
have one — None when NO mission recorded a divergence event
(absent means “no pools”, never a fabricated zero report), and
omitted from the wire then.
comparison: Option<ComparisonReport>The industry-comparison set (ticket outcomes-comparison-metrics,
KRZ-333): assisted-change share, defect density per merged change,
and defect resolution time — a clearly-separated SECONDARY section
beside the kranz-native metrics above, each metric carrying its
inline definition (the definition is the whole argument). None —
and omitted from the wire — when the fold options pin no comparison
window (the hermetic test seam); production resolve() pins one, so
every served/printed report carries the section LAST.