Package-level declarations
Types
The spectrum input for one failure, with every run left out listed in Evidence.excluded. Sparse capsules score weakly, so Evidence.runs carries each run's attribute count and coverage for 6a.
The step a red run failed in; FailingStep.job null matches the step name in any job.
What changed between the last green and the first red. GreenToRedResult.changes are static attribute diffs, GreenToRedResult.ignored volatile ones, GreenToRedResult.probes probes that differ, GreenToRedResult.steps steps added or removed from the job; GreenToRedResult.background counts attributes present in either capsule that did not change.
The runs of one History.key, oldest first. A Run has no timestamp, so RunOrder.GIVEN trusts the importer; RunOrder.RUN_ID is for GitHub, whose run ids only grow (a re-run keeps its id).
One workflow and, when the history is job scoped, one job inside it.
What the shape of a history says, over its decisive runs (pass or fail; cancelled and unknown runs say nothing). FLAKY is two or more outcome flips, so a red that recovers is flaky.
The repeated executions of one command read as a History: the samples in the order they ran, one run each. History.state then says whether the outcomes were mixed and how, with the same flip rule as for CI runs. Nothing here classifies on its own.
What one included run contributes: RunEvidence.attributes distinct static paths, and RunEvidence.coverage that count over Evidence.universe in micro-units (1_000_000 is every path any run saw).
How History.of orders the runs it is given.
NO_CAPSULE: a side has no capsule, so attribute changes are unknown.