Zdůvodnění
Příkaz je produktový povrch, ne shellová funkce. Než existoval registr, nic neříkalo, co příkaz je: jeho kategorie, zda mění stav, co čte a zapisuje a jaké exit kódy může vyprodukovat, žilo jen jako próza ve třech dokumentech a jako chování v jednom shellovém souboru a web vykresloval svou referenci z parsování textu nápovědy. Povrch, který nikdo nedeklaruje, nelze poctivě kontrolovat, měřit ani vykreslit.
Požadované chování
share/commands.yaml deklaruje každý příkaz s jeho viditelností, třídou, čteními, zápisy a návratovými kódy. bin/majordomus zůstává autoritou pro to, co se skutečně provádí. Příkaz, který dispatcher nese bez záznamu v registru, záznam deklarovaný jako veřejný, který dispatcher nenese, a veřejný záznam, který text použití neuvádí, jsou každý selháním. Příkaz je veřejný přesně tehdy, když jej majordomus --help uvádí; třetí stav neexistuje.
Chování při selhání
Porušení je nález FAIL v kategorii command a příkaz, který ho našel, skončí s kódem 10. Pod watch se totéž porušení hlásí jako drift a příkaz skončí s kódem 11.
Ověření
Rozhoduje o tom mj_validate_command_surface, dispatchovaný z doctor, watch. Behaviorální případ test/cases/30_command_registry.sh to dokazuje, test/cases/35_future_command.sh dokazuje, že příkaz přidaný jen do dispatcheru odmítne každý povrch, který mu něco dluží, a CI spouští obojí.