Architektura
Jeden repozitář.Mnoho rozhraní.
Majordomus objeví repozitář jednou, načte ho do typovaných modelů a z nich odvodí svá rozhraní: HTTP API a jeho popis OpenAPI, Swagger UI, MCP, generické stránky Cockpitu a tento web. Příkazová řádka je deklarována podruhé, v clap, a kontrolována proti registru.
“Objevte a modelujte fakt jednou a odvoďte z něj každé rozhraní.”
Repozitář
Sledovaný strom je zdroj pravdy
prismatic-majordomus/
- .ai/vrstva: politika, pravidla, ADR, dovednosti
- apps/spustitelný soubor v Rustu a jeho schopnosti
- bin/vstupní body
- lib/shellový nástroj
- share/druhy, schémata, design
- docs/manuály a generované dokumenty
- test/případy
- site/tento web a data odvozená pro něj
- justfilepracovní postupy
RepositoryEnvironment
jedna typovaná hodnota, sestavená jedním resolverem
- projektmanifest crate
- repozitář.ai/manifest.yaml
- vcsjeden git status
- toolchainymanifesty, které je deklarují
- vrstvaindex, spočtený podle druhu
- workflowjust --dump
- providersprojekce politiky
- službykonstanty tras a lease
-
- Příkazová řádkamajordomus env Lokální prácesnímek v terminálu
-
- HTTP API/api/v1/environment Programový přístupJSON, popsaný OpenAPI
-
-
Swagger UI/swaggerVyzkoušet APIstránka nad /openapi.json
-
-
- MCPmajordomus mcp Nástroje pro agentynástroj majordomus_environment
-
- Cockpit/cockpit Vizuální přehledvykreslený spustitelným souborem
-
- Vstup do shellu.envrc Vstup do adresářebanner, kreslený při každém cd
-
- DokumentaceGitHub Pages Tento webgenerovaný z repozitáře
Klíčové principy
- Jedna deklaraceMCP, HTTP a OpenAPI se z ní sestavují; CLI se kontroluje proti ní
- Objevenovyjmenováno přes sources.yaml, nikdy ručně nezaregistrováno
- Typovanéobjekt, který neprojde validací, je diagnostika
- Deterministickédokument OpenAPI: mapy řazeny, žádné časové razítko
- Původkaždé pole jmenuje, odkud pochází
- Zkontrolovánoruční úprava odvozeného souboru se odmítne nebo ohlásí
Zjišťování
Výčet řízený deklarací
- Kořenexecutable najde repozitář
- Manifest.ai/manifest.yaml pojmenovává vrstvu
- Druhy a schématashare/kinds.yaml a share/schemas/
- Zdrojetřídy sources.yaml, čtené z indexu gitu
- Diagnostikasoubor, který neprojde validací, je vyloučen a jmenován
Kanonický model
Typované, s původem
RepositoryEnvironment {
schema, generated_at,
resolution,
project, repository,
vcs,
toolchains: [ .. ],
layer, workflows,
providers: [ .. ],
services: [ .. ],
reasoning?,
diagnostics: [ .. ],
provenance: [ .. ],
}Vyřešeno plně nebo rychle; oba vytvářejí stejný typ a hodnota, kterou nic nevyřešilo, chybí, nikdy není nula.
Odvozená rozhraní
Stejný registr, každé rozhraní
| Povrch | Kde |
|---|---|
| CLI | majordomus |
| HTTP | /api/v1/ |
| OpenAPI | /openapi.json |
| Swagger | /swagger |
| MCP | majordomus mcp |
| Cockpit | /cockpit |
| Dokumenty | GitHub Pages |
201 operací v 58 modulech, popsaných jedním dokumentem OpenAPI.
Zpětnovazební smyčka
Zjistit, regenerovat, zkontrolovat
- Strom se hýbe
- Index přestavěn
- majordomus generate
- derive-check