Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

I1948 — Důkazy se posuzují na předložené revizi jedinou funkcí čerstvosti

Zapsat tabulku čerstvosti, předloženou revizi, zahrnutí a agregaci podle ADR 0087 vždy jednou (rozhodnutí 4, 5, 7 a 8), aby evidence show mohl posoudit vyčtený commit podle knihy v něm commitované a každý verdikt pocházel z jednoho odvození.

HOTOVO vlna 0 · p1 · profil implementation · běží samostatně

Součást test-evidence — Každé ověřitelné tvrzení a widget se na každém povrchu převádí na testovací důkaz vázaný na revizi.

Cíl

Zapsat tabulku čerstvosti, předloženou revizi, zahrnutí a agregaci podle ADR 0087 vždy jednou (rozhodnutí 4, 5, 7 a 8), aby evidence show mohl posoudit vyčtený commit podle knihy v něm commitované a každý verdikt pocházel z jednoho odvození.

Proč

Modul pravidel drží druhou kopii odvození čerstvosti, přeskočení se čte jako selhání, prosté maximum skryje selhání za absencí a verdikt korpusu navržený v PR #597 říká proven nad pravidly, jejichž vstupy se jen nezměnily. Žádný příkaz neposuzuje commit, jen pracovní strom.

Aktuální stav

evidence/mod.rs a rules/mod.rs každý odvozují čerstvost; obsažení žije soukromě v modulu delivery z PR #600; PR #597 přidává RulesVerdict, který přijímá inputs_unchanged jako prokázané. Tento řez je stackován na PR #597 (fix/a-verdict-says-what-was-proven) a jeho pull request míří do této větve.

Cílový stav

evidence::freshness implements ADR 0087's freshness table and one aggregate() with failure precedence; `evidence show --presented <rev> --presented-tree <state>` judges the checked-out commit by its committed ledger and reads the working ledger's uncommitted executions through the monotone rule; containment lives in git/mod.rs; the rules module's copy is gone while evidence::changed_since stays byte-for-byte; RulesVerdict is proven only when every blocking rule is proven; ProofState::token() maps each wire word to its design token.

Rozsah

  • apps/majordomus-cli/src/git/mod.rs
  • apps/majordomus-cli/src/evidence/mod.rs
  • apps/majordomus-cli/src/evidence/freshness.rs
  • apps/majordomus-cli/src/evidence/ledger.rs
  • apps/majordomus-cli/src/rules/mod.rs
  • apps/majordomus-cli/src/rules/tests.rs
  • apps/majordomus-cli/src/capability/builtin/evidence.rs
  • apps/majordomus-cli/src/cli.rs
  • apps/majordomus-cli/src/commands/evidence.rs
  • docs/EVIDENCE.md
  • docs/DOCTRINE.md
  • docs/HOW_IT_WORKS.md
  • docs/CONCEPTS.md
  • docs/CLAIMS.yaml
  • docs/claims
  • .ai/repo/features/evidence.md
  • test/cases/502_evidence_is_judged_at_the_presented_revision.sh
  • test/cases/133_rule_graph.sh

Mimo rozsah

  • apps/majordomus-cli/src/environment: vstupní preflight je věcí I1965
  • Změna evidence::changed_since, které PR #578 volá z preflightu
  • Přidání pole do Execution nebo RunRef
  • Zvýšení verze

Závislosti

Žádné. Tento úkol je kořenem grafu.

Co na tom čeká

Kritéria přijetí

  • Každý řádek tabulky čerstvosti ADR 0087 je dosažen tvrzením případu a jen řádek 10 dává proven
  • evidence show --presented odmítne revizi, která není checkoutnutým commitem, přečte knihu záznamů v ní commitnutou a omezí proven na stale nad čistým selhávajícím během, který pracovní kniha záznamů drží necommitnutý
  • Přeskočení se čte jako not_run s důvodem, nikdy nesele a nikdy není prokázáno
  • aggregate() vrací failing, kdykoli selže kterákoli část, před jakoukoli nepřítomností
  • RulesVerdict je proven jen tehdy, když je prokázáno každé blokující pravidlo
  • Vlastní odvození čerstvosti v modulu pravidel je odstraněno a evidence::changed_since zůstává byte po bytu nezměněno
  • Merge s PR #578 v libovolném pořadí nevyvolá žádný konflikt

Validace

  • bash test/run.sh 502_evidence_is_judged_at_the_presented_revision
  • bash test/run.sh 133_rule_graph
  • bash test/run.sh 124_evidence
  • cargo test --workspace --all-features

Požadované důkazy

  • one_freshness_function
  • presented_revision_judged
  • failure_precedes_absence

Důkazy

pokrývátypcommandvýsledeku commitu
presented_revision_judgedtestbash test/run.sh 502_evidence_is_judged_at_the_presented_revisionok na 4090b2b8ae: evidence show --presented HEAD soudí z commitnuté knihy, je omezeno na stale necommitnutým čistým selháním a jinou revizi odmítne s exit 134090b2b
failure_precedes_absencetestbash test/run.sh 502_evidence_is_judged_at_the_presented_revisionok na 4090b2b8ae: blokující pravidlo s jedním selhávajícím a jedním přeskočeným testem se čte jako selhávající v rules show, rules report i ve verdiktu korpusu4090b2b
one_freshness_functiontestbash test/run.sh 133_rule_graph && bash test/run.sh 124_evidenceboth ok at 4090b2b8ae: rules and claims are judged by evidence::freshness, and the corpus verdict reads unproven over an inputs_unchanged rule and proven only over proven ones; the workspace tests were not run locally: CI validate run 37744906831 on a tree identical to 4090b2b8ae passed lib (2448) and doc tests (1872)4090b2b

Riziko

Navršeno na PR #597 přistává s #597: sloučeno do něj, nebo přesměrováno na master poté, co #597 přistane. Pokud scripts/ci/version-matches-surface žádá o zvýšení, řez se zastaví a hlásí; nikdy verzi nezvyšuje.

Časová osa

zahájeno
2026-10-08T10:50:08Z
ověřeno
2026-10-08T10:52:39Z
dokončeno
2026-10-08T10:52:43Z

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/I1948.yaml. Přečtěte ho zpět pomocí majordomus plan show I1948.

Prohledává názvy a popisy všech stránek, které tento web publikuje.