187. Tests are selected by the impact of a change, derived from what each case declares it reads, and a change of unknown impact runs every case
Kontext
Gates are selected by hand-kept path classes; cases are not selected at all. 431 of 527 cases carry # majordomus-covers: (282 'none').
Rozhodnutí
A case's reads are declared in its header or derived from the commands and features it covers through the feature-to-module map (ADR 0026). scripts/ci-plan computes the closure from changed paths to cases and lists each selection with its reason. A case that declares nothing is always selected. A mutation case proves that a case whose input changed is never skipped. Historical shard timing balances shards but never selects.
Zamítnuté alternativy
- Manual giant path lists (c195#2)
- Sharding by historical time as the only lever (c228#3)
Důsledky
Selection starts conservative (282 'none' cases always run) and narrows only as cases declare. The full suite stays on the proof lane.
Sources
Promoted on 2026-10-18 from the owner's ChatGPT project (workspace chatgpt-majordomus, issue I3100). The owner has not accepted it; it is proposed for the owner's decision.
chatgpt-majordomus:c130#3chatgpt-majordomus:c195#2chatgpt-majordomus:c228#3