I2416 — Verdikt ci žádá od každé vybrané kontroly doklad a kontrola, jejíž krok nikdy neběžel, je červená
Udělat scripts/ci/verdict zelený, jen když každá kontrola vybraná plánem zanechala potvrzení z kroku, který ji spustil, každé potvrzení `success`: úspěch úlohy není úspěch kontroly, protože úloha nese mnoho kontrol a krok, který její podmínka přeskočila, úlohu neselže. Zrušeno, přeskočeno, chybějící a nepřítomné nikdy neprojdou a každé má fixture.
HOTOVO vlna 0 · p1 · profil implementation · bezpečné souběžně
Cíl
Udělat scripts/ci/verdict zelený, jen když každá kontrola vybraná plánem zanechala potvrzení z kroku, který ji spustil, každé potvrzení `success`: úspěch úlohy není úspěch kontroly, protože úloha nese mnoho kontrol a krok, který její podmínka přeskočila, úlohu neselže. Zrušeno, přeskočeno, chybějící a nepřítomné nikdy neprojdou a každé má fixture.
Proč
CI Delivery V4 položka V4-02-03 (mise vlastníka, předaná ce dne 2026-10-10). Verdikt rozhodnutý pouze z výsledků jobů. scripts/ci/verdict už vybraný gate překlápěl do červené, když byl jeho job zrušen, přeskočen nebo chyběl, ale job hlásí `success`, když byl jeden z jeho kroků přeskočen vlastním `if:`, a validate.yml spouští většinu gate v krocích s vlastními podmínkami, čtoucími výstupy plánu, ne plán. Vybraný gate, jehož krok byl přeskočen — podmínka čtoucí jiný výstup, přejmenované id kroku, gate přesunutý do jiného jobu — prošel, aniž by běžel. Vendorovací krok jobu cockpit byl dokonce označen gate `cockpit-assets` jobu site, takže jeho úspěch by odpovídal za přeskočené `--check`.
Aktuální stav
scripts/ci/verdict čte jen plán a kontext `needs`. scripts/ci/timed a scripts/ci/run-plan zaznamenávají časování, ne výsledky. Žádný artefakt neříká, krok které kontroly proběhl.
Cílový stav
Každá úloha kontroly nastaví MJ_CI_RECEIPTS a nahraje své stvrzenky jako ci-receipts-<job>: scripts/ci/timed a scripts/ci/run-plan připojují \"<gate><TAB><success|failure><TAB><source>\" za každý krok a každou kontrolu a závěrečný krok `if: always()` zaznamená `steps.<id>.outcome` pro každý krok kontroly, který běží jinak. Úloha ci stáhne každý artefakt ci-receipts-* a spustí verdikt s --receipts, což je povinné. Vybraná kontrola, jejíž úloha uspěla, je červená bez stvrzenky a červená, když je kterákoli stvrzenka `skipped`, `cancelled`, `failure` nebo prázdná (čtena jako `absent`); žádné stvrzenky vůbec jsou červené pro každou vybranou kontrolu.
Rozsah
- scripts/ci/verdict
- scripts/ci/timed
- scripts/ci/run-plan
- .github/workflows/validate.yml
- test/cases/94_ci_plan.sh
- test/cases/26_ci_wiring.sh
Mimo rozsah
- Rušení bezpředmětných běhů (V4-02-04), artefakt build-once (V4-03), výběr případů podle dopadu (V4-04-01), dlouhý ocas (V4-04-02) a rozpočet 300 s (V4-05-04): ostatní položky mise.
- Vyžadování účtenek od každé větve matice jménem: kontrola je zelená s alespoň jednou účtenkou a každou účtenkou `success`; které větve musí hlásit, model kontrol nedeklaruje.
Závislosti
Žádné. Tento úkol je kořenem grafu.
Kritéria přijetí
- Vybraná kontrola, jejíž úloha uspěla a která nezanechala stvrzenku, způsobí červený verdikt, jmenující kontrolu a její úlohu
- Vybraný gate s dokladem `skipped`, `cancelled`, `failure` nebo prázdným výsledkem činí verdikt červeným a jmenuje výsledek, ať job hlásil cokoli
- Žádný adresář receipts nebo prázdný je červený pro každý vybraný gate; verdikt vyžádaný bez --receipts je chyba použití
- Příjemka kontroly, kterou plán nevybral, nic nemění
- scripts/ci/timed a scripts/ci/run-plan zapisují jednu stvrzenku na každý krok a každou kontrolu, kterou spustily, a žádnou pro kontrolu, kterou run-plan přeskočí
- Každý job kontroly validate.yml nahrává ci-receipts-<job> a job ci předává --receipts
Validace
- bin/majordomus plan validate
- MJ_TEST_JOBS=4 bash test/run.sh 94_ci_plan 26_ci_wiring
- actionlint .github/workflows/validate.yml
Požadované důkazy
- receipt_verdict_fixtures
Důkazy
| pokrývá | typ | command | výsledek | u commitu |
|---|---|---|---|---|
| receipt_verdict_fixtures | test | MJ_TEST_JOBS=4 bash test/run.sh 94_ci_plan 26_ci_wiring | testy: 2 prošly, 0 selhaly, 0 přeskočeny (běh 2026-10-14 mezi 07:40Z a 07:58Z na masteru ce5959db59) | ce5959d |
Časová osa
- zahájeno
- 2026-10-14T08:00:49Z
- ověřeno
- —
- dokončeno
- 2026-10-14T08:00:55Z
Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.
Kanonický záznam: .ai/repo/project/issues/I2416.yaml. Přečtěte ho zpět pomocí majordomus plan show I2416.