Zdůvodnění
Domovská stránka byla posledním povrchem tohoto repozitáře, který ručně uváděl, co produkt dělá. Všechno ostatní — příkazový řádek, cesty HTTP, dokument OpenAPI, MCP, Cockpit, generovaná reference, stránky registru na webu — se už stalo projekcí jedné deklarace na schopnost a jednoho souboru na objekt vrstvy. Domovská stránka byla inventář udržovaný vedle registru, který popisoval.
Cena je ta, kterou tento repozitář všude jinde odmítá. Schopnost přidaná do spustitelného souboru dosáhla každé odvozené plochy v den svého vzniku a domovské stránky v den, kdy si někdo vzpomněl. Modul, který získal nástroj MCP, nezměnil kartu, která říkala „příkazová řádka a HTTP“. Nic nemohlo říct, zda věta na veřejné stránce stále platí, a mezera rostla přesně ve směru, který nikdo neměřil.
Dvě věci na produktové stránce se opravdu odvodit nedají: které části produktu tvoří pro návštěvníka jeden příběh a který z těchto příběhů stránka ukáže první. To je redakční rozhodnutí, píše se ručně a drží se odděleně od všeho ostatního — protože surfaces: [cli, api, mcp] napsané člověkem je tvrzení a registr už odpověď zná.
Požadované chování
Funkce produktu je jeden soubor Markdown v sekci features vrstvy, s front matter deklarujícím podporovanou verzi schema:. Přidat platný, sledovaný soubor je celý akt přidání funkce: nic nesmí vyžadovat druhou úpravu v seznamu v Rustu, šabloně, navigačním souboru, datovém souboru webu, generovaném indexu nebo dokumentu schématu.
Front matter obsahuje dvě věci a nic jiného. Reference pojmenovávají, z čeho se funkce skládá, každá proti registru, který ji vlastní — moduly schopností spustitelného souboru, veřejné příkazy shellového nástroje, druhy objektů vrstvy, pravidla, dokumenty, rozhodnutí, tvrzení, případy užití, oblasti Cockpitu, povrchy webové topologie a provozní oblasti a publika katalogu why. Redakční rozhodnutí jsou pole, která nelze nic odvodit: titulek, shrnutí, pořadí a zda je stránka funkci představuje.
Každý fakt, který povrch uvádí o funkci, je odvozen z těchto odkazů, na jednom místě ve spustitelném souboru: rozhraní, jimiž je zpřístupněna, nástroje, trasy a cesty příkazového řádku za ní, spočtené objekty jejích druhů, třída každého pravidla a stav každého tvrzení, okamžiky, které jmenují její mechanismy, funkce, které ji jmenují, a její trasa. Odvozený klíč zapsaný do zdrojového souboru je porušením tohoto pravidla, i když je v den zápisu správný, a schéma jej odmítne.
Množina poskytovatelů, ke kterým se nástroj přizpůsobuje, je množina adaptérů, které distribuce dodává, a co repozitář s každým z nich dělá, se čte z jeho politiky a stromu. Ani jedno není seznam vedený na stránce, v šabloně nebo v datovém souboru webu.
Žádná šablona, generátor, navigační soubor ani ručně psaná data webu nesmějí jmenovat funkci, modul schopností, veřejný příkaz, poskytovatele ani počet čehokoli z toho. Jediný ručně psaný soubor na veřejném povrchu obsahuje věty o pozicování a popisky tlačítek, drží se rozpočtu řádků a nenese žádné číslo ani tvrzení o schopnostech.
Modul schopnosti, veřejný příkaz nebo druh objektu, který nejmenuje žádná stabilní funkce, se hlásí jako mezera a zobrazí, nikdy se potichu nevynechá: věc, kterou produkt dělá a stránka produktu ji nezmiňuje, je přesně to, co má toto pravidlo zviditelnit.
Chování při selhání
majordomus product validate skončí s 10 a pojmenuje každý nález s jeho souborem, klíčem front matteru a u nevyřešené reference nejbližším kandidátem. majordomus generate --check odmítne strom, jehož odvozená produktová datová sada neodpovídá repozitáři. Generátor webu odmítne datovou sadu, která nevaliduje, nese tělo funkce nebo cestu stroje. scripts/site-check odmítne šablonu, generátor nebo navigační soubor, který ručně pojmenovává funkci, modul, příkaz, providera nebo počet, a odmítne funkci bez stránky nebo stránku bez funkce.
Ověření
majordomus product validate, scripts/derive-check, scripts/site-check a bash test/run.sh 97_product_features, který přidá jeden soubor funkce, zjistí, že na něj odpovídá příkazová řádka, HTTP API, MCP, dataset webu a odvozený graf, aniž by se cokoli jiného upravovalo, pak jej odstraní a zjistí, že zmizel ze všech.