Okamžik
Politika byla aktualizována v březnu. Čtyři soubory z ní generované stále nesou únorovou verzi, protože regenerace byla krok, na který si někdo musel vzpomenout, a nic neřeklo, že jsou zastaralé.
Proč k tomu dochází
Generování bez kontroly zastaralosti je jednorázová kopie. Ve chvíli, kdy se zdroj změní, se kopie stanou tvrzeními o minulém stavu a vypadají přesně jako tvrzení o stavu současném. Nic v souboru neříká, která generace ho vytvořila ani z čeho.
Proč to lepší model nevyřeší
Worker čte soubor, který dostal, a věrně jej aplikuje. Nemá jak vědět, že soubor je zastaralá projekce něčeho jiného, protože zastaralost je vlastnost dvojice a worker vidí vždy jen jednu polovinu.
Co to stojí
Pracovníci se řídí překonanou politikou a selhání se projeví jako chování, o které nikdo nestál, týdny po změně, která ho způsobila. Dohledání příčiny znamená zjistit, že zdroj pravdy nikdy nebyl zdrojem, který by cokoli četlo.
Co Majordomus dělá
Každá generovaná projekce je opatřena hashem politiky, ze které vznikla, a hashem vlastního obsahu. doctor a watch porovnávají obojí: zdroj, který se posunul, nebo ručně upravený soubor je pojmenovaná selhávající kontrola. update regeneruje deterministicky a odmítne přepsat ruční úpravu, dokud nebyl diff viděn. Stejná disciplína platí pro každý odvozený artefakt, který repozitář commituje, a CI odmítne strom, v němž se kterýkoli z nich liší od toho, co produkuje jeho zdroj.
Před a po
before policy.yaml (March) CLAUDE.md, AGENTS.md, ... (February)
after $ majordomus doctor
FAIL projection CLAUDE.md — generated from policy 3b0d79b4, current is 9f21c0aa
[reproduce: majordomus update --diff CLAUDE.md]Co nedělá
Nerozhoduje, zda se má změna propagovat; regenerace je explicitní a její diff lze přezkoumat. Označuje a porovnává — neslévá ruční úpravu zpět do zdroje.