Co to znamená
Doména je jeden soubor Markdownu pod .ai/repo/features/domains/: název, slib vyjádřený jednou větou, selhání, na které odpovídá, a pořadí. Funkce jmenuje právě jednu doménu ve svém poli domain. Vše, co povrch o doméně říká — které funkce drží, rozhraní, kterých dosahují, záruky a případy užití za nimi, způsoby selhání, na které odpovídají, a její routa — se odvozuje z funkcí, které ji jmenují.
Model odmítá to, co by způsobilo, že mapa postavená na doménách lže vynecháním: stabilní funkci, která nepojmenovává žádnou doménu, zatímco nějaká je deklarována, doménu, která neexistuje, a stabilní funkci zařazenou pod doménu, která se neukazuje.
Princip
Druh domain je deklarován v share/kinds.yaml se svým JSON Schema a zdrojová třída domain objevuje jeho soubory přes index správy verzí. crate::product řadí každou funkci pod doménu, kterou jmenuje, a odvozuje pohled každé domény z jejích stabilních členů; product.domains to promítá do příkazové řádky, HTTP a MCP a product.json webu to přenáší přes allow-list (ADR 0104).
Jak to vidět
majordomus product domains # every domain, with its derived members
majordomus product list --domain <id> # the features filed under one
majordomus product validate # refuses an unfiled or misfiled featureCo nepokrývá
Zda je funkce zařazena do správné domény. Model kontroluje, že každá stabilní funkce jmenuje jednu doménu, která existuje a je zobrazena; která z nich funkci popisuje nejlépe, je produktový úsudek, který soubor zaznamenává a který nic neměří. Vlastní text domén — příslib a selhání, na které každá odpovídá — je autorský a podléhá kontrolám poctivosti a váhy webu jako každý jiný text, není odvozen.
Proč existuje
Produkt měl dva slovníky pro jednu mapu: oblasti why, které řadí funkci pod každé selhání, kterého se dotýká, a vlastní seskupení homepage, které žilo v šabloně. Čtenář z webu nepoznal, které funkce tvoří část produktu, a nová funkce se k žádné části nepřipojila, dokud někdo neupravil stránku. Doména je rozdělení, které funkce deklarují samy, takže mapa je projekce a funkce, která nedeklaruje nic, je odmítnuta, ne chybí.
Co to dokazuje
test/cases/800_product_domains.sh sestaví model proti fixture vrstvám: funkce zařazená pod doménu se v něm objeví, nezařazená nebo špatně zařazená stabilní funkce je odmítnuta s uvedením nejbližší domény, koncept domény nic neukáže a příkazový řádek, HTTP a MCP odpovídají toutéž hodnotou. apps/majordomus-cli/tests/product.rs drží počty domén na členech započítaných jednou a kontrola map v scripts/ci/homepage-check odmítne domovskou stránku, jejíž vykreslené domény, členové nebo stránky nejsou model.