Zdůvodnění
Dne 2026-10-16 majitel otevřel https://majordomus.dev/ui/kiosk/ a uviděl oblak „not run“. Snímek tam publikovaný napočítal 154 testovaných tvrzení jako nikdy nespuštěných. Validace téhož commitu je spustila všechna a její artefakt evidence obsahoval 606 zaznamenaných provedení.
Runner Pages četl sledovaný ledger .ai/repo/evidence/ledger.json. Ten ledger drží čtrnáct lokálních běhů, naposledy změněný 2026-10-03, protože záznamová větev, která by do něj přenesla běhy z CI (ADR 0080, I1954), není postavena. Každý test bez řádku tam se čte jako not run.
„Nespuštěno“ je jediný stav důkazu, který je výpovědí o minulosti. Říká, že to nikdo nespustil. Publikovat ho u testu, který CI spustilo, je nepravdivé tvrzení na stránce, kterou projekt ukazuje světu, nejen zastaralé.
Změřeno nad artefaktem masteru d116266803:
| kniha záznamů | prokázáno | nespuštěno |
|---|---|---|
| pouze sledované | 0 | 214 |
| běhu | 235 | 0 |
Požadované chování
- Job snímku UI ve workflow Pages spouští
scripts/pages evidence --ledger-out .ai/repo/evidence/ledger.jsondříve, než se UI čte.- Používá artefakt publikovaného commitu nebo jeho nejbližšího validovaného předka. Jeho manifest musí pojmenovat commit v publikované historii, jinak se nekopíruje nic.
- Řádek předka posuzuje jediná funkce čerstvosti na publikovaném commitu, takže se čte jako zastaralý nebo vstupy beze změny, nikdy jako běh tohoto commitu.
- Pak spustí
scripts/pages published-evidence --bin <the executable that reads the UI>. To se ptá evidence.report, schopnosti, na kterou se ptají obrazovky, ve stejném checkoutu. Odmítne s exit 10, kdyžnot runpřekročí deklarovaný baseline. - Baseline,
.ai/repo/evidence/published-not-run.txt, je jediné číslo. Smí jen klesat. - Až přistane větev se záznamem (I1954), sledovaná kniha ponese samotné běhy CI. Překryv pak nebude mít co přidat a kontrola dál drží tutéž linii.
Chování při selhání
- Artefakt mimo publikovanou historii nebo bez ledgeru nic nezkopíruje a řekne proč. Kontrola pak odmítne to, co by publikoval samotný sledovaný ledger.
- Report, který nelze přečíst, nebo baseline bez počtu končí kódem 12. Nikdy se nebere jako úspěch.
Ověření
test/cases/3178_the_published_ui_reads_the_evidence_ci_recorded.sh provozuje oba příkazy přes skutečný skript proti historii tohoto repozitáře. Pokrývá:
- zavedený ledger;
- ledger odmítl commit mimo historii;
- ledger je odmítnut, když artefakt žádný nenese;
- kontrola, která v mezích základní hodnoty projde a nad ní odmítne;
- kontrola končící kódem 12 u nečitelného reportu a u prázdného nebo chybějícího základního stavu.