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.