Zdůvodnění
project.derived-once říká, co spočítat jednou na verzi stavu. Toto pravidlo je jeho podoba pro jedno vyvolání, tedy místo, kde se regrese skutečně objevují: validátor, který zploští politiku, kterou už loader zploštil, přístupový prvek, který čte záznam znovu pro každé pole, projekce, která hashuje zdroj, jejž hashoval průchod objevování. Každé je správné a každé je neviditelné, dokud se nečtou čítače. Nástroj počítá svá čtení přesně proto, aby toto pravidlo mělo číslo, proti kterému se kontroluje.
Požadované chování
Příkaz načte, co potřebuje, v loaderu a předá čtení dál: politika, profily, registry, model plánu, dokumenty kontextu a zdroje znalostí se každé čtou jednou a poté rozšiřují. Validátor čte přes loader, nikdy přes soubor. MJ_TIMING=1 vypíše počty yaml_flatten, yaml_flatten_many, sha256_many a git daného vyvolání; součet souborů, které tato čtení pokrývají, je nanejvýš počet různých kanonických souborů, které příkaz potřebuje.
Chování při selhání
Toto pravidlo nerozhoduje žádný příkaz; rozhoduje recenzent pomocí čítačů. Žádný případ tyto počty zatím nedrží. Ten, který bude, bude držet počty doctor a watch na vlastním repozitáři nástroje na počtu různých kanonických souborů, které čtou, a změna, která čte soubor dvakrát, na něm selže.
Ověření
MJ_TIMING=1 bin/majordomus doctor 2>&1 >/dev/null | grep count, před změnou loaderu, validátoru či accessoru i po ní.