I1951 — Běhy důkazů jsou typované a záznam nese to, co jeho běh změřil
Přidat záznam běhu, naměřenou provenanci, záznam pokrytí a pravidlo počtu crates podle ADR 0087, rozhodnutí 2, 6 a 12, a předávat záznamy běhů jedinému monotónnímu pravidlu, aby záznam uváděl commit a strom, které jeho běh měřil, a jen to, co běželo.
PŘIPRAVENO vlna 1 · p1 · profil implementation · běží samostatně
Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I1951 bude přijato.
Cíl
Přidat záznam běhu, naměřenou provenanci, záznam pokrytí a pravidlo počtu crates podle ADR 0087, rozhodnutí 2, 6 a 12, a předávat záznamy běhů jedinému monotónnímu pravidlu, aby záznam uváděl commit a strom, které jeho běh měřil, a jen to, co běželo.
Proč
Záznamník razítkuje commit a strom v době záznamu, ne to, co běh změřil, souhrn binárky crate, který říká ok, se čte jako úspěch, i když nic neběželo, a volání evidence record nezanechává vedle knihy žádný záznam o běhu.
Aktuální stav
record.rs razítkuje HEAD a vlastní strom zapisovače; parser cratu čte ok jako pass bez počítání a bez odstranění barevných kódů; neexistuje záznam běhu, záznam pokrytí, razítko důkazu ani --ledger local.
Cílový stav
evidence stamp měří commit a strom běhu; evidence record --provenance je označí, odmítne měřený commit, který není HEAD, a zaznamená T jako neznámé bez měření; každé volání zapíše EvidenceRunRecord; pokrytí je EvidenceCoverage, aktuální jen pro svůj commit s čistým stromem; binárka crate, která nespustila žádný test nebo jen filtrovanou podmnožinu, je vynechání; --ledger local zapíše poradní lokální knihu záznamů a výchozí stále zapisuje sledovanou.
Rozsah
- apps/majordomus-cli/src/git/mod.rs
- apps/majordomus-cli/src/evidence/provenance.rs
- apps/majordomus-cli/src/evidence/run.rs
- apps/majordomus-cli/src/evidence/coverage.rs
- apps/majordomus-cli/src/evidence/record.rs
- apps/majordomus-cli/src/evidence/ledger.rs
- apps/majordomus-cli/src/evidence/mod.rs
- apps/majordomus-cli/src/evidence/freshness.rs
- apps/majordomus-cli/src/capability/builtin/evidence.rs
- apps/majordomus-cli/src/cli.rs
- apps/majordomus-cli/src/commands/evidence.rs
- scripts/ci/evidence-collect
- test/cases/505_a_recording_carries_what_its_run_measured.sh
- test/cases/506_a_crate_binary_that_ran_nothing_is_not_a_pass.sh
- docs/EVIDENCE.md
- docs/CLAIMS.yaml
- docs/claims
- .ai/repo/features/evidence.md
Mimo rozsah
- Druhá kopie monotónního pravidla: záznamy běhů krmí to, které píše I1948
- Zapojení runnerů v CI, což je věc I1954
- Zvýšení verze
Závislosti
- I1948HOTOVO Důkazy se posuzují k předložené revizi jedinou funkcí čerstvosti
- I1949HOTOVO Důkazy z CI se zaznamenávají čisté a jejich zpráva je verdiktem sledovaného ledgeru
Co na tom čeká
- I1953BLOKOVÁNO Důkazy odpovídají podle subjektu, na každém povrchu
- I1954BLOKOVÁNO Každý runner se dostane do knihy, přes zaznamenávací branch
Kritéria přijetí
- Report, jehož změřený commit není HEAD, se odmítne a report bez měření se zaznamená s T unknown
- Binárka cratu, která nespustila žádný test nebo jen vyfiltrovanou podmnožinu, se zaznamená jako skip, a ta s neúspěšným testem jako selhání, ať nesou barevné kódy jejího výstupu cokoli
- Každé volání evidence record zapíše záznam běhu nesoucí svůj commit, svůj strom, své součty, co chybělo a co bylo zahozeno
- Čistý záznam neúspěšného běhu omezí prokázaný verdikt na zastaralý jedním monotónním pravidlem a jmenuje záznam
- záznam důkazu bez příznaku ledgeru stále zapíše sledovaný ledger
Validace
- bash test/run.sh 505_a_recording_carries_what_its_run_measured
- bash test/run.sh 506_a_crate_binary_that_ran_nothing_is_not_a_pass
- bash test/run.sh 124_evidence
- cargo test --workspace --all-features
Požadované důkazy
- provenance_measured_by_the_run
- crate_count_rule
- run_records_typed
Důkazy
Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.
Riziko
Potřebuje odkaz na běh z PR #577 (s I1949) a stav stromu z I1948 a je druhou změnou schopnosti v řetězci, takže začne až poté, co přistanou obě.
Časová osa
- zahájeno
- —
- ověřeno
- —
- dokončeno
- —
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/I1951.yaml. Přečtěte ho zpět pomocí majordomus plan show I1951.