Co to znamená
Soubor funkce drží dvě věci: odkazy pojmenovávající, z čeho se funkce skládá, a redakční rozhodnutí, která nelze nic odvodit. Vše, co povrch o funkci uvádí, se odvozuje z těchto odkazů — rozhraní, jimiž je zpřístupněna, nástroje, trasy a cesty příkazového řádku za ní, kolik objektů jejích druhů vrstva drží, třída každého pravidla a stav každého tvrzení, provozní okamžiky, na které odpovídá, funkce, které ji jmenují, a její vlastní trasa.
Zdrojový soubor nic z toho zapsat nemůže. Schéma nastavuje additionalProperties: false, takže surfaces: [cli, api, mcp] nebo route: /features/<id>/ ve funkci je chyba validace, nikoli tvrzení, kterému stránka věří.
Princip
apps/majordomus-cli/src/product.rs odvozuje rozhraní z registru, ne ze souboru: cli, když modul, který funkce jmenuje, má cestu příkazového řádku nebo funkce jmenuje příkaz shellu, api, když modul má trasu HTTP, mcp, když modul má nástroj nebo zdroj nebo funkce jmenuje druh, cockpit, když jmenuje oblast nebo modul s ní, docs, když jmenuje dokument. Funkce si tedy nemůže nárokovat povrch, který registr nemá, a získá jej v okamžiku, kdy jej registr získá.
Editorská pole jsou ta, která nelze nic odvodit: titulek, shrnutí, pořadí, zda je homepage zobrazuje, a provozní oblasti a publika katalogu Why, který obsluhuje — vlastní taxonomie onoho katalogu, znovu použité, ne deklarované podruhé.
Jak to vidět
majordomus product show worktrees --format json | jq '.surfaces, .counts'
grep -c surfaces .ai/repo/features/worktrees.md # 0: the file declares none
majordomus product validate # refuses a derived key with its schema message
cargo test -p majordomus-cli --test productCo nepokrývá
Které funkce tvoří pro návštěvníka jeden příběh a které z nich domovská stránka ukazuje první, je redakční věc a píše se. Odvozování kapitol — řekněme jedné na modul schopností — bylo zamítnuto: modul je hranice implementace, ne příběh, a příkazy shellového nástroje nejsou žádný modul.
Snímky obrazovky, které kapitola Cockpitu ukazuje, pokud nějaké ukazuje, zůstávají zachycenými důkazy, a ne odvozením, a jsou vázány jen na jmenování tras, které topologie má.
Proč existuje
surfaces: [cli, api, mcp] napsané člověkem je tvrzení a registr už zná odpověď. To jediné pole je celá vada, kterou měl model odstranit: správné v den napsání, špatné u prvního modulu, který získá routu, a nic si toho nevšimne.