Zdůvodnění
Cache je druhý zdroj pravdy, přesně to, co tento repozitář odmítá. Připouští se jen za podmínek, které ji činí nepozorovatelnou: je klíčovaná tím, z čeho se odvozuje, takže žádná úprava kanonického stavu nemůže dostat zastaralou odpověď; jde obejít, takže pochybnost lze rozhodnout během bez ní; je dokázána jako ekvivalentní, takže tvrzení o neviditelnosti je test, ne víra. Dávková čtení project.derived-once odstranila potřebu cache napříč procesy v shellovém nástroji a v době psaní v něm žádná taková cache neexistuje; pravidlo zavazuje ode dne, kdy se přidá.
Požadované chování
Klíč cache je hash obsahu kanonických vstupů, z nichž se odvozuje, nebo stav commitu a stromu, které je určují, nikdy samotné časové razítko. Každý příkaz, který může číst cache, přijímá způsob, jak ji ignorovat (přepínač prostředí nebo volbu, zdokumentované v docs/CLI.md). Případ spustí každý příkaz share/commands.yaml určený jen pro čtení jednou se studenou cache, jednou s teplou a jednou obejitou a porovná stdout, zjištění na stderr a exit kód bajt po bajtu. Příkaz, který mění stav, nikdy nečte cache pro stav, který mění. Cache žije pod .ai/local/ a nikdy se nesleduje.
Chování při selhání
Dokud neexistuje cache, toto pravidlo nerozhoduje žádný příkaz; rozhoduje pak případ ekvivalence a cache bez něj se nemerguje.
Ověření
Revize a případ ekvivalence, jakmile cache existuje.