Okamžik
Architektonické rozhodnutí je napsáno, přijato a jednoznačné. Implementace dělá to, co zamítlo. Nikdo rozhodnutí nepopřel; změnu udělal někdo, kdo ho nikdy neviděl, a přezkoumal ji někdo, kdo na něj zapomněl.
Proč k tomu dochází
Záznam rozhodnutí je dokument v adresáři. Práce se děje v souborech jinde. Pokud obojí nic nespojuje, rozhodnutí najde jen čtenář, který už tuší, že existuje — a to je čtenář, který ho nepotřeboval.
Proč to lepší model nevyřeší
Worker rozhodnutí nedostal. Nic na schopnosti nemění, které dokumenty se k relaci dostanou; to je otázka vyhledávání s deterministickou odpovědí a mělo by se na ni odpovídat rozlišením, ne odvozením.
Co to stojí
Návrh eroduje po jedné rozumné změně. Než si toho někdo všimne, systém dělá něco, co nikdo nezvolil, a vrácení stojí víc než původní rozhodnutí — takže se obvykle rozhodnutí potichu přepíše, aby odpovídalo kódu.
Co Majordomus dělá
Rozhodnutí jmenuje, co uvedlo v platnost, jako typované reference: pravidlo z efektivní sady, tvrzení, soubor, behaviorální test. Každá reference se validuje a graf znalostí z každé vytvoří hranu, takže zpětný index — čím bylo toto pravidlo, soubor nebo test rozhodnuto — je odvozen, a ne psán dvakrát. Kontextové dokumenty s rozsahem se připojují k cestám, které řídí, a context affected čte z gitu sadu změn a hlásí, kterých dokumentů a rozsahů se dotýká, včetně sledovaného zdroje, jehož dokument je teď k revizi.
Před a po
before .ai/repo/adrs/0007-….md (accepted, unread)
lib/skills/registry.rs (does the rejected thing)
after $ majordomus context affected --staged
lib/skills/registry.rs tracked by adr-0007 "skills are data, not registrations"Co nedělá
Nerozhoduje, zda změna odporuje rozhodnutí — to je výklad a dělá ho člověk. Zajišťuje, aby rozhodnutí bylo před člověkem a pracovníkem, který výklad provádí, a aby jeho nahrazení bylo výslovným, revidovatelným úkonem.