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.

Každé pravidlo jmenuje, co jej dokazuje, a každá cesta, kterou jmenuje, je ve stromu

Pravidlo tohoto repozitáře deklaruje třídu. blocking znamená, že kontrola odmítne práci, která

deklarovaný stavdeklarovaný stav: zaručeno Deklarováno jako deterministické a blokující, implementováno a s uvedeným behaviorálním testem, který to má dokázat. Zda to zaznamenaný běh podporuje, říká verdikt důkazů zobrazený vedle.

zaznamenané důkazyzaznamenané důkazy: zastaralé Deklarováno jako zaručené, ale nepodložené zaznamenaným během: test je pojmenován, ale žádný úspěšný běh nad současnými vstupy zaznamenán není. jak se zaznamenávají důkazy

Pravidlo mohlo v anglické próze pojmenovat případ chování a nikdo si nevšiml, když byl tento případ přejmenován nebo smazán; pravidlo se dál četlo jako vynucované. Kontrola drží obě poloviny vztahu. Pojmenovaná cesta, která ve stromu není, je `dangling` a nikdy se neratchetuje, protože neexistující důkaz je horší než žádný důkaz. Pravidlo kterékoli třídy, které nepojmenovává ani validátor, ani test, ani důvod, je `unproven`, což je polovina, kterou žádná jiná kontrola v tomto repozitáři neumí hledat; poradní není výjimka a jedinou výjimkou je vendorované pravidlo označené `principle`, které balíček připíná hashem a které kontrola počítá při každém běhu. `majordomus rules` hlásí stejný stav `unproven` pro každou třídu, ale za nález ho označuje jen u blokujícího pravidla; u poradního ho odmítá až kontrola.

Co to znamená

Pravidlo tohoto repozitáře deklaruje třídu. blocking znamená, že kontrola odmítne práci, která je porušuje — to je tvrzení o světě a buď platí, nebo ne. Před touto zárukou nic nerozhodovalo které. Pravidlo mohlo v sekci # Verification psané pro lidského čtenáře říkat, že ho dokazuje test/cases/28_no_hardcoded_values.sh, a nikdo si nevšiml, když byl ten případ přejmenován. Pravidlo se dál na každém povrchu, který se ptal, četlo jako vynucované, protože se každý povrch ptal na totéž: nese pravidlo blok x-majordomus? Zelený odznak za přítomnost klíče YAML.

Zárukou je vztah držený v obou směrech. To, co pravidlo jmenuje, je ve front matteru, kde to čte program, a to, co jmenuje, je ve stromu.

Princip

scripts/ci/rule-proof-check čte každý objekt pravidla v sekci pravidel — jmenovatel pochází ze stromu, takže pravidlo přidané zítra se měří zítra — a hlásí dvě zjištění, která záměrně selhávají různě:

dangling — blok jmenuje cestu, která není ve stromu. Nikdy se nepostupně nesnižuje, v žádné třídě. Důkaz, který neexistuje, je horší než žádný důkaz, protože pravidlo se čte jako prokázané, a zapsání do základní hodnoty ho neumlčí: základní hodnota se týká pravidel bez důkazu, ne pravidel, jejichž důkaz je lež.

unproven — pravidlo kterékoli třídy nejmenuje ani validátor, ani test, ani důvod, proč to nic spustitelného nevyjádří. Poradní neznamená výjimku: poradní pravidlo, které nic nejmenovalo, by mohlo zůstat navždy jen zdokumentované. Jedinou výjimkou je převzaté pravidlo označené principle, které balíček připíná hashem, a kontrola vypíše, kolik jich vyjímá. To je polovina, kterou nic jiného v repozitáři vyjádřit neumí. scripts/ci/reference-check už odmítá cestu jmenovanou v jakémkoli autorském dokumentu, která není ve stromě, a front matter pravidla je pro ni próza, takže dnes zachytí visící polovinu — změřeno, ne předpokládáno. Co neví žádná jiná kontrola, je, že pravidlo má vůbec něco jmenovat. majordomus rules hlásí stejný stav unproven pro každou třídu, ale nález z něj dělá jen u blokujícího pravidla; tato kontrola je to, co jej odmítne u poradního.

Jak to vidět

scripts/ci/rule-proof-check            report, and fail on new debt
scripts/ci/rule-proof-check --strict   fail on any finding, baseline ignored

Kontrola rule-proof v .ai/repo/ci/gates.yaml spouští první z nich při každé změně, která se dotkne pravidla. Základní stav je prázdný: každé pravidlo v tomto repozitáři, kromě vyňatých převzatých principů, pojmenovává spustitelný důkaz nebo deklaruje, proč je důkazem čtenář.

Co nepokrývá

Že je důkaz vůbec dobrý. Kontrola rozhoduje, že pravidlo něco jmenuje a že to, co jmenuje, je ve stromu. Zda jmenovaný případ skutečně procvičuje chování, které pravidlo popisuje, se zde rozhodnout nedá, a případ, který by tvrdil true, by ji uspokojil. Ten úsudek patří review a je to důvod, proč je jmenování důkazu spodní, nikoli horní mez.

Nic také nespouští. Pojmenovaný případ, který nikdy nebyl proveden, toto tvrzení stále splňuje; zda běh proběhl, prošel a je mladší než to, čeho se týká, je jiná otázka, na kterou odpovídá graf důkazů a EVIDENCE.md.

Proč existuje

Protože pravidlo, které vypadá vynucené a není, je horší než pravidlo, o kterém všichni vědí, že vynucené není. Tomu prvnímu se věří. 2026-09-11 repozitář držel deset blokujících pravidel, jejichž jediným ověřením bylo slovo „Review.“, a dalších šest, jejichž důkaz existoval, ale byl pojmenován v textu, který žádný program nečte — takže případ šlo přejmenovat a pravidlo by dál zobrazovalo zelený odznak na každé ploše, která se zeptala.

Co to dokazuje

test/cases/125_rule_proof.sh, mutací. Strom je zelený; změní se jeden fakt — smaže se případ, který pravidlo stále jmenuje, přidá se blokující nebo poradní pravidlo, které nic nejmenuje, napíše se deklarace bez důvodu — a kontrola zčervená a ten fakt pojmenuje; změna se vrátí; strom je opět zelený. Mutace, kterou nic nepřežije, je záruka, kterou nic neposkytuje.

Detail vykreslený z docs/claims/rule-proof-is-named-and-resolves.md.

Od tvrzení k důkazu

  1. 1 · veřejné tvrzení

    Každé pravidlo jmenuje, co jej dokazuje, a každá cesta, kterou jmenuje, je ve stromu

    Vytvořeno na Doktrína.

  2. 2 · kanonické tvrzení

    rule-proof-is-named-and-resolvesdeklarovaný stav: zaručeno v docs/CLAIMS.yaml

    Definováno v přečtěte si to na tomto webu · docs/DOCTRINE.md

  3. 3 · implementace

    scripts/ci/rule-proof-check

  4. 4 · test a scénáře

    Test: test/cases/125_rule_proof.sh

  5. 5 · zaznamenané běhy

    zaznamenané důkazy: zastaralé jak se zaznamenávají důkazy

Ověřte si to sami

Test běží v jednorázovém dočasném repozitáři a ověřuje chování, ne řetězec ve zdrojovém kódu.

z klonu repozitáře
bash test/run.sh 125_rule_proof

Související tvrzení stejná implementace

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