Rozhraní MCP
Nástroje a zdroje, které spustitelný soubor poskytuje klientu MCP, transporty, sdílený server a co o tom všem rozhoduje.
Klient MCP vidí registr jako nástroje a zdroje. Každý nástroj je schopnost s expozicí mcp.tool; každá vestavěná schopnost s expozicí jako zdroj odpovídá na svém URI; každý objekt vrstvy je jedním dalším zdrojem. Není zde uvedeno nic, co registr nedrží.
Jak se klient dostane k serveru — majordomus mcp přes stdio, jeden sdílený server na repozitář s MCP přes HTTP, lease, peeři, co server odmítá — je dokument o MCP; odolnost sdíleného serveru je doktrína.
Nástroje
196 nástrojů, jak odpovídá tools/list. Vstupní schéma každého je kanonický vstup schopnosti; stránka schopnosti jej zobrazuje. Efekt je vlastní klasifikace schopnosti a anotace nástroje (readOnlyHint, destructiveHint, idempotentHint) se z něj odvozují.
| nástroj | schopnost | druh | vstup → výstup | účinek |
|---|---|---|---|---|
majordomus_artifactsManifest, který `majordomus generate` commituje jako docs/generated/artifacts.json, sesouhlasený s pracovním stromem: každý dokument s kódováními, v nichž je zapsán, a každý soubor s jeho formátem, schématem, zdrojem, velikostí, hashem a tím, zda soubor na disku stále odpovídá. Volitelně zúžený na jeden dokument nebo jedno kódování. Jen čte; `majordomus generate` zapisuje a `majordomus generate --check` je verdikt bajt po bajtu. |
artifacts.list | query | ArtifactsInput → ArtifactReport | čtení — nic nemění |
majordomus_briefJeden řádek a několik dalších: epizoda a úloha této relace (ta, kterou vlastní daná relace providera, jinak ta, na kterou ukazuje ukazatel), peeři každé nástěnky s pojmenovanými nástěnkami, které nešlo přečíst, linky meshe a to, co jeho žurnál adresuje tomuto runtimu, fronta integrace tak, jak ji říká `majordomus prs brief`, a zámek odvozování stroje. Skládá ji server držící lease tohoto checkoutu, který drží nástěnku a mesh: příkazová řádka se ho ptá a brief skládá sama, jen když neodpoví žádný, a řekne to; nahrazený server říká, že jeho vlastní nástěnka je pro sběr repozitáře nedosažitelná. Nese interval hlášení, který politika deklaruje (`session.brief_interval_minutes`), a text keep-awake, který se relaci řekne na začátku. Nic nezapisuje. |
brief.session | query | BriefInput → SessionBrief | čtení — nic nemění |
majordomus_capabilityJedna schopnost podle kanonického id: její druh, schémata, původ, stabilita, expozice, měření výkonu a politika cache. |
capabilities.describe | query | DescribeInput → Capability | čtení — nic nemění |
majordomus_capabilitiesKaždá schopnost tohoto spustitelného souboru a tohoto repozitáře, shrnutá: druh, modul, stabilita, původ, projekce, které deklaruje, její měření výkonu a politika cache; schémata odpovídá capabilities.describe. |
capabilities.list | query | CapabilitiesInput → CapabilityList | čtení — nic nemění |
majordomus_projectionsŘádek na schopnost s příkazovou řádkou, trasou HTTP, nástrojem MCP a zdrojem MCP, které dosahuje, zda je každá expozice, kterou deklaruje, zodpovězena tímto povrchem, a spustitelnými příkazy, které si nenárokuje žádná schopnost. Odvozeno z registru a deklarace clap; nic se nepíše ručně. |
capabilities.projections | query | ProjectionsInput → ClosureMatrix | čtení — nic nemění |
majordomus_commandJeden příkaz podle kanonické identity: jeho argumenty se zdrojem hodnot každého, co jeho spuštění mění, co potřebuje, odkud pochází a každý povrch, který ho nese — s důvodem, proč ho strojový povrch zadržuje, když ho zadržuje. |
commands.get | query | CommandRequest → CommandNode | čtení — nic nemění |
majordomus_command_graphGraf jako jeden dokument, s jeho otiskem a každou diagnostikou, kterou jeho sestavení našlo: duplicitní identita, název receptu, který by převzaly dva příkazy, anotace jmenující příkaz, který už neexistuje. Deterministické — dvě sestavení nad jedním stromem dají stejný dokument — takže klient může cachovat proti otisku. |
commands.graph | query | Prázdné → CommandGraphReport | čtení — nic nemění |
majordomus_commandsPříkazy, které tento repozitář nabízí, filtrované podle programu, který je spouští, podle toho, co jejich spuštění mění, nebo podle textu. Shrnutí, ne celý graf: dost na výběr příkazu a nikdy tolik, aby klient musel číst každý argument každého příkazu, aby jeden našel. |
commands.list | query | CommandFilter → CommandIndex | čtení — nic nemění |
majordomus_commit_historyKaždý commit v rozsahu gitu proti politice commitů, v jednom průchodu: kolik jich bylo přečteno, kolik git složil a jsou vyňaty, kolik nese chybu a každý commit, který má nález, s tím, co to je. Co čte kontrola, aby odmítla nový dluh, a co odpovídá na `je historie této větve čistá?` bez procesu na commit. |
commit.history | query | HistoryInput → HistoryReport | čtení — nic nemění |
majordomus_commit_planPracovní strom tak, jak ho hlásí git — branch, upstream, divergence, každá staged, unstaged a untracked cesta a každý probíhající merge nebo rebase — rozdělený do commitů, které podporuje vlastní členění historie, každý s důkazem pro něj, pod otiskem repozitáře, worktree, HEAD a přesné sady změn, takže plán, podle kterého se jedná později, lze odmítnout, místo aby se použil na strom, pro který nebyl vytvořen. |
commit.plan | query | Prázdné → CommitPlan | čtení — nic nemění |
majordomus_commit_scopesKaždý scope, který historie commitů tohoto repozitáře používá, jak často, a adresáře, o kterých se pro každý píše — naučeno z historie, nikoli deklarováno v tabulce, takže subsystém commitnutý dnes je ve slovníku dnes a ten, kterého se nikdo nedotkl, sám klesne dolů. |
commit.scopes | query | Prázdné → ScopesReport | čtení — nic nemění |
majordomus_commit_validateJedna zpráva proti politice commitů tohoto repozitáře: gramatika, šířka předmětu, zda je scope takový, jaký historie používá, zda existuje každý záznam, který zpráva jmenuje, zda oprava nese test a zda zásadní změna sama sebe vysvětluje — jako typovaná zjištění se závažnostmi, nebo výjimka pro předmět, který složil git. Tentýž verdikt, kterým odmítá hook commit-msg a skrz který čte historii kontrola. |
commit.validate | query | ValidateInput → CommitVerdict | čtení — nic nemění |
majordomus_continuity_deviceZařízení, které publikovaná předávka jmenuje: klíč uzlu meshe (vytvořený, když ho toto zařízení nemá, v adresáři stavu uživatele a nikdy v repozitáři), jeho id uzlu, jeho veřejný klíč — to, co seznam důvěry přijímá — a štítek, který čte člověk. Se štítkem zařízení přejmenuje; klíč a každý podpis, který vytvořil, zůstávají beze změny. |
continuity.device | command | DeviceInput → DeviceView | stav procesu — mění paměť tohoto procesu |
majordomus_continuity_planNic nezapisuje. Vybere záznam (pojmenovaný, nebo jedinou předávku jiného zařízení, kterou tento checkout neobnovil, nejdřív na této větvi) a rozhodne: je jeho podepisovatel důvěryhodný, rozchází se se záznamem, na kterém tento checkout stojí, drží lokální zdroj commit a větev, proti nimž byl napsán, byl napsán v nečistém stromě, jehož necommitované soubory se do commitu nikdy nedostaly, může na druhém zařízení ještě někdo pracovat. Verdikt je ready, ready_with_warnings, requires_source_update, conflict, choose_record, nothing_to_resume nebo refused, s blokátory, varováními, příkazy, které je řeší (doporučené, nikdy nespuštěné), tím, co obnovení vrátí, a tím, co si tento checkout přepočítá sám. |
continuity.plan | query | RecordInput → ResumePlan | čtení — nic nemění |
majordomus_continuity_publishPromítne nejnovější záznam předávky do přenosného záznamu — tělo předávky, identitu repozitáře a zařízení, epizodu, zdrojový stav (branch, commit a u špinavého stromu změněné cesty a otisk, nikdy jejich obsah), úlohu a její rozhodnutí a záznam, který dále vede — odmítne ho, pokud některá hodnota nese přihlašovací údaj, tajnou hodnotu prostředí nebo cestu na disku tohoto stroje, podepíše ho meshovým klíčem zařízení a přidá do refs/majordomus/continuity. Nedotýká se žádné branche, indexu ani pracovního stromu a nepoužívá síť: publikuje ho až sync. |
continuity.publish | command | PublishInput → Published | mutace repozitáře — zapisuje do repozitářemůže přepsat nebo odstranit |
majordomus_continuity_recordsKaždý záznam refs/majordomus/continuity, který prošel přijetím — schéma, id, podpis, identita repozitáře, přenositelnost — po řádcích, s heady každého řádku, a diagnostika pro každý odmítnutý soubor a každou vadu linie. |
continuity.records | query | Prázdné → Records | čtení — nic nemění |
majordomus_continuity_resumePlánuje přesně jako continuity.plan a jedná jen u plánu ready nebo ready_with_warnings: zapíše předávku do předávek tohoto checkoutu (kde ji najde handover --resolve a briefing relace), připojí rozhodnutí úlohy do logu rozhodnutí vždy jednou a zaznamená záznam jako ten, který tento checkout dále vede, takže jeho příští publikace prodlouží stejnou linii. Nespouští nic, co záznam říká; startovní příkaz úlohy se vrací jako doporučení. |
continuity.resume | command | RecordInput → Resumed | mutace repozitáře — zapisuje do repozitářemůže přepsat nebo odstranit |
majordomus_continuityOtevřená epizoda, aktivní úloha, předávka a checkpoint, které se rozliší pro tento worktree a větev, každé se svým štítkem divergence, nevyřešené otázky, které odmítají dokončení, a součty záznamů. Výběr je dvouúrovňový a nikdy celorepozitářový: záznam z nesouvisejícího worktree nebo větve se nenabízí, protože zasvěcení, které je tiše o někom jiném, je horší než žádné. Absence se hlásí jako absence. |
continuity.state | query | Prázdné → Continuity | čtení — nic nemění |
majordomus_continuity_statusIdentita tohoto zařízení a repozitáře, záznam, na kterém tento checkout na své větvi pokračuje, jak stojí lokální úložiště kontinuity vůči úložišti remotu (jen z refů, bez sítě), každá linie práce s jejími hlavami, předávky publikované jinými zařízeními, které by tento checkout mohl obnovit, a každý odmítnutý záznam nebo přerušený původ jako diagnostika. Rozešlá linie — stejná práce pokračovaná dvakrát — se hlásí; oddělené linie práce na oddělených zařízeních nejsou konflikt. |
continuity.status | query | Prázdné → Status | čtení — nic nemění |
majordomus_continuity_syncStáhne refs/majordomus/continuity remotu, sloučí ho do lokálního úložiště jako sjednocení obou (záznamy jsou adresované obsahem, takže jméno držící jiné bajty se ohlásí a lokální kopie se ponechá) a výsledek pushne, nikdy vynuceně. Každý řádek hlásí jako equal, remote_newer, local_newer, diverged, local_only nebo remote_only. Nedosažitelný remote nic nemění a čekající nechá čekat. |
continuity.sync | command | SyncInput → Synced | mutace repozitáře — zapisuje do repozitářemůže přepsat nebo odstranit |
majordomus_convergenceKaždé držení tohoto repozitáře s jeho dispozicí, přečtenými důkazy pro ni a příkazem, který by ho dostal z ohrožení, součty podle dispozice, kolik držení existuje jen na jednom disku, a jeden verdikt nad nimi. Čte se z gitu při každém volání: commit, push nebo uložení v editoru změní odpověď mezi dvěma voláními. |
convergence.report | query | Prázdné → ConvergenceReport | čtení — nic nemění |
majordomus_dashboard_overviewJe zdravé, co se změnilo, co je rozbité, co vyžaduje akci — každé zodpovídají karty přečtené z `health.report`, `release.version`, `plan.status`, `worktree.status`, `plan.next`, `continuity.state` a `peers.list` (nástěnka tohoto checkoutu), každá zeptaná jednou přes exekutor. Každá karta nese svou zdrojovou schopnost, vstup a ukazatel RFC 6901, takže stejná otázka na zdroj dá stejnou hodnotu; zdroj, který nedokáže odpovědět, dělá z karet `unknown`, nikdy `ok`. Nic zde nepřestavuje kanonický stav ani se neptá na nic mimo tento proces a jeho checkout. |
dashboard.overview | query | Prázdné → DashboardOverview | čtení — nic nemění |
majordomus_delivery_featureJedna funkce produktu proti invariantu dodání: každý rozměr s jeho verdiktem, větou, která o něm rozhodla, a tím, co by jej změnilo, zda existuje, a — když ne — jak daleko ji vývoj dovedl a které rozměry ji blokují. Id, které vrstva nedeklaruje, se nenajde, neodpoví se, že nebylo dodáno. |
delivery.feature | query | DeliveryFeatureInput → FeatureDelivery | čtení — nic nemění |
majordomus_deliveryKaždá produktová funkce vrstvy proti invariantu dodání, řazeno podle id: šest dimenzí s verdikty, důvody a nápravami; vývojová fáze, když není dodána; cesty, kterými je implementována, a revize, které se jich naposledy dotkly na HEAD a na trunku; a publikace — identita veřejného webu, čtená jednou, a zda ji ověřil scripts/pages. Čte git a síť; adresu webu lze nahradit pomocí MAJORDOMUS_DELIVERY_SITE_URL. |
delivery.report | query | Prázdné → DeliveryReport | čtení — nic nemění |
majordomus_deploy_checkKaždé odmítnutí, které si deklarovaná nasazení lokálně vyslouží: trasa health, kterou neregistruje žádná schopnost, balíček nebo binárka, kterou workspace nevytváří, vstup buildu, který se nerozliší, víc běžících strojů, než existuje, hostovaný proces, který by se vázal na loopback. Každé jmenuje soubor, klíč, pozorovanou hodnotu a opravu. Nic zde nekontaktuje providera. |
deploy.check | query | Empty → DeploymentCheck | čtení — nic nemění |
majordomus_deploymentJedno nasazení podle své identity, typované, se souborem relativním k repozitáři, z něhož bylo čteno. |
deploy.get | query | GetDeploymentInput → DeploymentView | čtení — nic nemění |
majordomus_deploymentsKaždé nasazení, které vrstva deklaruje, typované: aplikace, dodaný balíček a binárka, adresa, na které proces naslouchá, trasy, které platforma dotazuje, zdroje, počet strojů, region, vstupy buildu a změřené rozpočty. Objekt druhu, který tento spustitelný soubor nedokáže přečíst, se ohlásí s důvodem, nepřeskočí se. |
deploy.list | query | Prázdné → DeploymentList | čtení — nic nemění |
majordomus_deployments_observedKaždé nasazení, které forge zaznamenal, do každého prostředí, v němž nějaké má — mimo jiné GitHub Pages — s commitem, refem, tím, kdo je vytvořil, jak skončilo, kde se servíruje a během, který je provedl; každé prostředí popsané jeho nejnovějším nasazením; a každý release, který forge publikoval. Čte se ze záznamu, který zapsal `majordomus served forge`, když se forge naposledy ptal: nic zde nesahá na síť a checkout, který se nikdy neptal, odpoví `observed: false` s tím, co spustit. |
deploy.observed | query | Empty → ObservedDeployments | čtení — nic nemění |
majordomus_design_contrastKaždé popředí, které design klade na pozadí, v obou motivech, změřené proti WCAG 2.1 AA: dvojice, položky palety za ní, poměr a práh. Dvojice nejsou seznam — odvozují se z deklarace, která řadí text každého stavu na jeho vlastní pozadí, a z primitiv, které ji využívají, kde pravidlo nastavující barvu a pozadí vyjadřuje dvojici a pravidlo nastavující jen barvu vyjadřuje popředí, které dopadne na každé pozadí, jež kontejner nastaví. Dvojice pod prahem je zjištění, které pojmenovává roli, pozadí, motiv, naměřený poměr a požadovaný. |
design.contrast | query | Prázdné → ContrastReport | čtení — nic nemění |
majordomus_design_explainJeden token jménem nebo podle vlastní vlastnosti, kterou se stává: k čemu slouží, na co se rozliší v každém motivu, které názvy Flowbite jsou jeho synonyma, která slova stavů barví a do kterých vygenerovaných souborů proniká. |
design.explain | query | ExplainTokenInput → Token | čtení — nic nemění |
majordomus_designČím návrh je: otisk, který nese každý stylopis, identita, sady písem, kontrakt motivu s prohlášením před vykreslením, které spouští každý povrch, šířky auditu, kolik tokenů každého druhu a každý vygenerovaný soubor, do něhož se deklarace promítá. |
design.system | query | Prázdné → DesignReport | čtení — nic nemění |
majordomus_design_tokensKaždý token návrhu vysvětlený: role s jejich světlými a tmavými hodnotami, stavy s jejich textem, pozadím a ohraničením a slovy stavů zařazenými pod ně, typografická škála, hodnoty rozvržení, kontrakt motivu, paleta. Zúžit lze na jeden druh. |
design.tokens | query | TokensInput → TokenList | čtení — nic nemění |
majordomus_devcontextObjekty, které by měla dostat relace pracující na tomto úkolu, milníku, záměru nebo sadě cest: každý s kanonickým identifikátorem, původem z indexu, každou cestou objevení, která k němu vedla, s důvodem a jistotou, jeho verzí, vrstvou a cenou v odhadovaných tokenech — následované vším, k čemu se došlo a co nebylo dáno, s důvodem u každého, vším, co se sloučilo do jednoho záznamu, každou dvojicí, která si neodpovídá, a výdaji po vrstvách proti rozpočtu. Deterministické pro daný strom a požadavek; otisk indexu, z něhož bylo sestaveno, je v odpovědi. |
devcontext.compile | query | DevContextInput → CompiledContext | čtení — nic nemění |
majordomus_devcontext_explainJeden kanonický identifikátor posouzený pod požadavkem: zda byl vybrán, dosažen a vyloučen, sloučen do jiného identifikátoru, držen indexem a nikdy nedosažen, nebo neznámý — se samotným záznamem, vyloučením nebo sloučením a rozpočtem, pod nímž bylo posouzení provedeno, aby se na `excluded for budget` dalo reagovat bez druhého volání. |
devcontext.explain | query | DevContextExplainInput → Explanation | čtení — nic nemění |
majordomus_devcontext_policyO čem kompilátor rozhoduje a jak: vrstvy v pořadí, v němž rozpočet utrácí, s druhy, které v každé přistávají, každý druh hrany, který složený graf deklaruje, s násobitelem relevance, jímž ji kompilátor v každém směru následuje — nebo důvod, proč ji odmítá následovat vůbec — selektory s tím, které z nich odvozují místo čtení, a výchozí hodnoty rozpočtu, hloubky a prahu relevance. Čtěte toto, místo abyste politiku odvozovali z odpovědi. |
devcontext.policy | query | Prázdné → CompilerPolicy | čtení — nic nemění |
majordomus_devtaskIdentita, titulek, záměr, stav, milník, kritéria přijetí, závislosti, blokátory, commity, které pojmenovávají jeho vlastní důkazy, a commity, které našel git, jeho větve, relace, které na něm pracovaly, jeho připravenost a vše špatné na jeho záznamech — každé pole nese, zda ho napsal člověk (`explicit`), stroj ho spočítal pravidlem, které se nemůže mýlit (`derived`), stroj ho spočítal pravidlem, které může (`inferred`, s uvedeným pravidlem), nebo není k dispozici vůbec (`unknown`, s důvodem). Klíč, který záznam nenese, je `unknown`, nikdy prázdný řetězec: `objective: ""` a záznam bez objective jsou stejný řetězec a různé fakty. Id, které model nedeklaruje, se zodpoví, neodmítne. `git: false` odpovídá jen ze záznamů, což je to, co srovnání napříč stroji chce. |
devtask.issue | query | DevTaskInput → DevTask | čtení — nic nemění |
majordomus_devtask_milestoneKaždý úkol milníku jako uzel s jeho připraveností, vlnou a tím, co na něj čeká; každá hrana závislosti s alespoň jedním koncem uvnitř, přecházející označené; úkoly rozdělené na připravené, blokované, čekající, aktivní, v revizi, blokované dokončením, dokončené a zrušené; kritické blokátory seřazené podle toho, kolik nedokončené práce každý zdržuje; zahajitelná práce rozdělená do podmnožin, které skutečně mohou běžet současně — stejná vlna, každá bezpečná pro paralelismus, žádné dvě nesdílejí cestu rozsahu — s tím, že každá serializace jmenuje cestu, která ji způsobila; každý cyklus závislostí jako jeho silně souvislá komponenta; a každý nález o milníku nebo jeho úkolech. Čistá funkce kanonických záznamů: žádný git, žádné hodiny, žádná síť, každý seznam v kanonickém pořadí, takže dva běhy na dvou strojích dají stejné bajty. Pracovní povrch, který toto čte, sám nic neodvozuje. |
devtask.milestone | query | DevMilestoneInput → MilestoneGraph | čtení — nic nemění |
majordomus_directoriesKaždý adresář vrstvy, který index zná, s kontraktem, který deklaruje, zda jeden dluží a který kontrakt rozhodl, a — pro pojmenovanou cestu, nebo na požádání pro všechny — efektivní řetěz složený od kořene dolů, nejméně specifický první. |
directories.list | query | DirectoriesInput → DirectoryReport | čtení — nic nemění |
majordomus_artifactNázev archivu, který odvozuje cíl a tag, adresář, do něhož se rozbalí, a kde jej release publikuje. Odpovídá jediná pojmenovávací funkce; pipeline release se jí ptá, místo aby název skládala v souboru workflow. |
distribution.artifact | query | ReleaseArtifactInput → ReleaseArtifactView | čtení — nic nemění |
majordomus_buildČím tento spustitelný soubor je: verze crate, z něhož byl sestaven, Rust target triple, profil a commit — vše zkompilováno při buildu, takže nainstalovaný binární soubor odpoví bez repozitáře, toolchainu nebo gitu. |
distribution.build | query | Empty → BuildReport | čtení — nic nemění |
majordomus_distributionJednořádkový instalační příkaz, kam se instalace ukládá, a každý deklarovaný cíl s názvem artefaktu, který z něj plyne. Toto vykresluje instalační stránka, instalační blok úvodní stránky a instalační karta Cockpitu; žádná z nich nemá vlastní seznam platforem. |
distribution.model | query | Prázdné → DistributionReport | čtení — nic nemění |
majordomus_releasesKaždý release, který tento repozitář zaznamenal, nejnovější první, a ten, na který se rozliší nepřipnutá instalace: nejvyšší verze mezi stabilními, nestaženými záznamy. Ukazatel se odvozuje zde a nikde se nepíše. |
distribution.releases | query | Prázdné → ReleasesReport | čtení — nic nemění |
majordomus_install_statusZda stroj, který tento projekt nikdy neviděl, ho může hned teď nainstalovat inzerovaným jednořádkovým příkazem, a když nemůže, který článek řetězce chybí a co ho změní. Odvozeno jen z modelu distribuce a záznamů releasů: nesahá do sítě, takže je stejně rychlé jako jakýkoli jiný lokální dotaz a odpovídá offline. Poskytované bajty dokládá smoke fáze release pipeline, zde se nehádají. |
distribution.status | query | Prázdné → InstallabilityReport | čtení — nic nemění |
majordomus_economics_checkProhledá ručně psanou prózu repozitáře a věty tvrzení na množství (procento, „N-krát méně“) uvedené vedle slovníku ekonomiky a zkontroluje každé tvrzení, které metodika váže na metriku: vázané tvrzení smí být zaručeno jen tehdy, dokud důkazy jeho metriky vazbu splňují a jsou aktuální. `ok: false` jmenuje každé zjištění. |
economics.check | query | EconomicsCheckInput → EconomicsCheckReport | čtení — nic nemění |
majordomus_economics_explainJedna metrika a vše, na čem stojí: její vzorec, třída měření a co ta třída znamená, dvojice a běhy za ní (včetně neplatných), vyloučené běhy, sady a revize a příkazy, které ji reprodukují. Repozitář, který nedeklaruje žádnou metodiku, nemá žádnou metriku a na jakékoli id se odpoví `present: false` a uvedením důvodu, neodmítne se. |
economics.explain | query | EconomicsExplainInput → EconomicsExplanation | čtení — nic nemění |
majordomus_economics_runsSurová fakta, z nichž se počítá každá metrika ekonomiky: každý zaznamenaný běh s jeho úlohou, variantou, opakováním, modelem, revizí, verdikty kontrol úspěchu a součty odvozenými z využití providera a cestou jeho záznamu. |
economics.runs | query | EconomicsRunsQuery → EconomicsRunList | čtení — nic nemění |
majordomus_economicsKaždá metrika benchmarku ekonomiky s hodnotou, třídou měření, velikostí vzorku, rozdělením a bootstrapovým intervalem; každá dvojice běhů s jejím stavem (valid, control failed, treatment failed, incomparable, ...); výsledky podle segmentů; stav důkazů každé sady (current, stale, incompatible); a jediné tvrzení, které pravidlo publikace dovoluje. Snížení kontextu a snížení celkových tokenů jsou samostatné metriky a nikdy se neslučují. |
economics.summary | query | EconomicsQuery → EconomicsSummary | čtení — nic nemění |
majordomus_editorsKaždý adaptér (Zed, Antigravity) s každou schopností, kterou podporuje, nepodporuje nebo nelze ověřit, a s důkazy; každý promítnutý soubor se vstupy, z nichž je odvozen, jeho adresou obsahu a jeho stavem zde (current, stale, absent, nebo konflikt se souborem, který tento generátor nezapsal); osiřelé projekce; a každý nález s jeho nápravou. Nic nezapisuje: `majordomus generate editors` ano. |
editors.status | query | Prázdné → EditorProjection | čtení — nic nemění |
majordomus_kindsDruhy, které vrstva drží, každý s trasou svého indexu a počtem objektů, které nese, a každá kolize tras, která existuje. Kolize je jediný způsob, jak objekt indexu může nemít vlastní adresu; zdravá odpověď je žádná. |
entity.kinds | query | Prázdné → KindList | čtení — nic nemění |
majordomus_entityJeden objekt vrstvy jako adresovatelný uzel, podle URI nebo adresy, na které je poskytován: identita a trasa, původ, front matter a obsah, každá reference, kterou deklaruje, a každá reference, která se na něj vyřeší, povrchy, které za něj odpovídají, stav spustitelných artefaktů, které pojmenovává, a jeho veřejná dokumentační stránka, jak ji odvozuje site/data/publication.toml repozitáře (null, když repozitář žádnou nedeklaruje). |
entity.show | query | EntityInput → EntityView | čtení — nic nemění |
majordomus_environment_explainPůvod snímku: pro každé pole, co o něm rozhodlo — konstanta z doby kompilace, soubor, příkaz nebo cache — který resolver je četl a jak moc lze důvěřovat. Zúžit na jedno pole nebo na prefix lze jménem. |
environment.explain | query | ExplainInput → EnvironmentProvenance | čtení — nic nemění |
majordomus_preflightJeden verdikt za každé tvrzení o tomto checkoutu — git; epizoda, její zasvěcení, úloha a předávka; politika, korpus pravidel a ADR; sdílený server a povrchy MCP, API a Cockpit, které servíruje; nástěnka peerů; zaznamenané běhy testů, vynucování pravidel, projekce providerů, vygenerovaná dokumentace a nasazení — každý `verified`, `active`, `fresh`, `stale`, `degraded`, `unavailable`, `failed`, `unknown` nebo `not_applicable`, s důkazy, na nichž stojí. Verdikt, který tvrdí, že něco platí, nelze vytvořit bez důkazů. Stejná hodnota, kterou vypisuje příkazová řádka a shrnuje úvodní banner. |
environment.preflight | query | PreflightInput → Preflight | čtení — nic nemění |
majordomus_environmentJeden snímek tohoto checkoutu: identita projektu, identita repozitáře, správa verzí, deklarované toolchainy, co vrstva obsahuje spočítané podle druhu, workflow, která runner popisuje, projekce providerů vůči politice, která je vykresluje, a lokální služby s adresou, kterou zveřejnil běžící server. Každá hodnota nese, odkud pochází. |
environment.status | query | EnvironmentInput → RepositoryEnvironment | čtení — nic nemění |
majordomus_session_attachOtevře epizodu provádění pro volajícího klienta, nebo obnoví tu, kterou už měl. 'external_id' je vlastní trvalé jméno klienta pro sezení — id jeho konverzace nebo vlákna — a musí přežít opětovné připojení: klient, který se vrátí pod stejnou identitou, dostane znovu svou vlastní epizodu, pod jakýmkoli peer id, které má nyní, místo druhé. Peer id tohoto serveru nestačí; přiděluje se na připojení. Poté vlastní provoz klienta udržuje epizodu naživu, ztráta spojení ji odpojí, ne uzavře, a uzavře ji majordomus_session_detach, zastavení serveru nebo reaper po uplynutí odkladu opětovného připojení. Epizodu repozitáře otevírá stejný příkaz, který spouští hook providera, a co ohlásil, je v odpovědi. Vyžaduje relaci MCP: přes prosté HTTP není připojení, ke kterému by se vázalo. |
episodes.attach | command | AttachInput → Attached | stav procesu — mění paměť tohoto procesu |
majordomus_session_detachÚmyslně uzavře epizodu provádění: práce je hotová, nejen přerušená, a záznam repozitáře to říká. Bez 'external_id' jde o epizodu, kterou drží volající spojení, což vyžaduje relaci MCP: přes prosté HTTP žádné spojení neexistuje, takže je volání odmítnuto a epizodu je nutné pojmenovat. Klient, který prostě zmizí, toto nepotřebuje — jeho epizoda se odpojí a reaper ji uzavře jako přerušenou — a rozdíl mezi těmito dvěma záznamy je jediná věc o skončené epizodě, která mění, co kdo udělá dál. |
episodes.detach | command | DetachInput → Detached | stav procesu — mění paměť tohoto procesu |
majordomus_episodesKaždá epizoda provádění, kterou tento sdílený server drží, otevřená i odpojená, se spojením, které každou drží, kdy její klient naposledy promluvil, kolik spojení ji neslo a co ohlásil vlastní příkaz repozitáře pro epizody. V paměti: co přežije proces, je záznam relace repozitáře. |
episodes.list | query | Prázdné → EpisodeList | čtení — nic nemění |
majordomus_evidence_claimJedno tvrzení se stavem jeho důkazu, za ním stojící provedení — výsledek, doba trvání, commit, stav stromu, digest, čas a původ — příkaz, který ho reprodukuje, a další tvrzení, která dokládá tentýž test. Tvrzení, které matice nedeklaruje, je not-found, nikoli prázdná odpověď, protože překlep, který by se četl jako „toto tvrzení nemá důkazy“, je jediná odpověď, kterou tato schopnost nesmí dát. |
evidence.claim | query | EvidenceClaimInput → ClaimEvidence | čtení — nic nemění |
majordomus_evidenceCelá matice tvrzení spojená s ledgerem a posouzená v prezentované revizi: ve výchozím stavu pracovní strom, nebo checkoutovaný commit tak, jak byl commitnut, čtený z ledgeru, který ten commit drží. U každého tvrzení: stav důkazu, věta vysvětlující, jak byl stav odvozen, proč, když to stav sám neříká, provedení za ním, soubory změněné od něj a příkaz, který ho vytvoří znovu. Běh na commitu, který prezentovaná revize neobsahuje, je zastaralý, test, který odmítl běžet, nebyl spuštěn, a běh, který drží pracovní ledger a ledger prezentovaného commitu ne, může jen zadržet proven. Součty počítají celou matici i když je odpověď filtrovaná a zjištění pojmenovávají každé tvrzení, které deklaruje záruku, již důkazy nepodporují. Drží se po stavu checkoutu, nikdy déle: ledger je soubor, který se mění mimo tento proces, a jeho úprava, úprava testu nebo jakéhokoli sledovaného souboru, nový nesledovaný soubor, commit nebo nový ref je nová odpověď. |
evidence.report | query | EvidenceReportInput → EvidenceReport | čtení — nic nemění |
majordomus_evidence_testJeden test — podle identity nebo podle cesty, kterou jej tvrzení jmenuje — s jeho posledním provedením, zda jeho zdroj stále dává otisk, který toto provedení zaznamenalo, příkazem, který jej spustí znovu, a každým tvrzením, které jej jmenuje. Toto je opak evidence.claim a čte stejné odvození, takže se oba směry nemohou rozcházet. |
evidence.test | query | EvidenceTestInput → TestEvidence | čtení — nic nemění |
majordomus_execution_cancelNastaví příznak zrušení provádění a oznámí to na jeho streamu. Zrušení je kooperativní: úloha se podívá na svůj příznak a zastaví se, a schopnost, jejíž politika říká, že ji nelze zrušit, doběhne do konce — což odpověď říká, místo aby předstírala opak. |
executions.cancel | command | CancelInput → CancelReport | stav procesu — mění paměť tohoto procesu |
majordomus_demonstrate_executionProjít daný počet kroků, každý ohlásit, zapsat řádek a posunout postup, pak skončit — nebo selhat v kroku, který pojmenujete. Existuje proto, aby operátor, sonda a end-to-end test mohli prokázat, že celá cesta funguje, aniž by čekali na skutečnou práci: nic nečte, nic nezapisuje a jeho jediným účinkem jsou události, které vytvoří. Mezi kroky a během čekání se dívá na svůj příznak zrušení, takže jeho zrušení jej zastaví. |
executions.demonstrate | query | DemonstrateInput → DemonstrateReport | čtení — nic nemění |
majordomus_execution_eventsUchované události jednoho provedení, nejstarší první, po pořadovém čísle. Toto čte prohlížeč po obnovení stránky a klient po opětovném připojení: stránka nese kurzor, kterým otevřít živý kanál, takže mezi historií a proudem nic nechybí. |
executions.events | query | EventsInput → EventHistory | čtení — nic nemění |
majordomus_executionVše, co je známo o jednom provedení: jeho stav, vstup tak, jak byl uložen, kroky, postup, diagnostika a výstup nebo chyba. Pořízeno pod jedním zámkem, takže snímek, který říká, že uspěl, nese, co vytvořil. |
executions.get | query | GetInput → ExecutionView | čtení — nic nemění |
majordomus_executionsKaždé provedení, které si tento proces pamatuje, nejnovější první, zúžené podle stavu nebo schopnosti: ta, která spustil, a ta, která mu nahlásil `majordomus run` v jiném procesu checkoutu, každé s tím, kdo je zahájil. Počty vedle nich — zapamatovaná, aktivní, ve frontě, živé kanály — jsou to, co řídicí rovina ukazuje, aniž by se ptala podruhé. |
executions.list | query | ListInput → ExecutionList | čtení — nic nemění |
majordomus_execution_protocolKde je WebSocket, jak se vyjadřuje odběr a opětovné připojení, co server zapisuje a JSON Schema každé zprávy — odvozeno z typů Rustu, které jej implementují, takže klient validující proti tomuto validuje proti implementaci. OpenAPI nedokáže popsat socket; zde žije tento kontrakt. |
executions.protocol | query | Empty → ProtocolReport | čtení — nic nemění |
majordomus_execution_startSpustí jako provedení libovolnou spustitelnou schopnost tohoto registru: vstup se ověří proti vlastnímu vstupnímu schématu té schopnosti, práce se zařadí do fronty a toto okamžitě odpoví id provedení a odkazy, jak ho sledovat. Nic nečeká na handler. Schopnost běží přes týž exekutor, který volá každé jiné rozhraní, takže žádná druhá implementace ničeho neexistuje. Na příkazové řádce (`majordomus run`) běží v tomto procesu a hlásí se serveru, který checkout obsluhuje, pokud nějaký je, přes executions.report; běh nikdy nespustí server. |
executions.start | command | StartInput → ExecutionView | mutace repozitáře — zapisuje do repozitářemůže přepsat nebo odstranit |
majordomus_completionVlastní sada změn aktivní úlohy — od commitu, ve kterém začala, po pracovní strom včetně necommitnutých souborů — projitá modelem CI: které kontroly vybírá a proč, co každá z nich naposledy hlásila a nad jakými soubory, které verdikty zastaraly, protože se strom pod nimi pohnul, které požadované kontroly nikdy nic nenahlásily a jaké povinnosti změna implikuje, ať je úloha deklarovala, nebo ne. `finishable` je false jen tehdy, když je požadovaná kontrola známě neúspěšná, zastaralá nebo blokovaná jinou takovou; absence verdiktu se hlásí jako neověřeno, nikoli tiše přijímá. |
gates.completion | query | CompletionInput → Completion | čtení — nic nemění |
majordomus_gatesKaždá validační kontrola, kterou tento repozitář deklaruje — job, který ji spouští, příkaz, který spouští, co dokazuje, zda ji vybírá každý plán a zda lze její runner vůbec získat na požádání — s třídami cest, které rozhodují, která změna vybírá kterou kontrolu, a pathspecy, nad kterými se berou důkazy každé kontroly, odvozenými z těchto tříd. |
gates.model | query | Prázdné → GateModelReport | čtení — nic nemění |
majordomus_graphJeden graf podle id: jeho uzly a hrany se slovníky, které říkají, co znamená každý druh, soubor, z něhož byl každý uzel odvozen, a zda je výsledek acyklický. Deterministické pro daný strom a spustitelný soubor. |
graph.get | query | GraphInput → Graph | čtení — nic nemění |
majordomus_graphsKaždý graf, který tento spustitelný soubor odvozuje: jeho id, co ukazuje a z čeho je odvozen. |
graph.list | query | Prázdné → GraphList | čtení — nic nemění |
majordomus_guard_editZda smí daná relace nyní zapsat danou cestu: povoleno, když je vypnuto session.edits_require_claim politiky, cesta je mimo checkout nebo jeho lokální stav, repozitář nedeklaruje povolený mesh, rozsah aktivní úlohy ji pokrývá nebo ji pokrývá živý mesh claim relace; jinak odmítnuto jako nenárokované, s nápravou. Co nelze přečíst — politika, mesh — se propustí a pojmenuje, nikdy se neodmítne. |
guard.edit | query | GuardEditInput → EditVerdict | čtení — nic nemění |
majordomus_healthKaždý rozměr toho, co tento proces servíruje — vrstva tak, jak byla načtena, registr, rozsah, správa verzí, pokrytí měření výkonu, commitnutý manifest registru, sdílený server tohoto checkoutu a připojení peerové — každý posouzený motorem, který jej vlastní, s příkazem, který verdikt reprodukuje. |
health.report | query | Prázdné → Health | čtení — nic nemění |
majordomus_pull_requests_cleanupPlán úklidu, rozhodnutý offline ze zaznamenaného pozorování: každý otevřený pull request, který by úklid zavřel — redundantní (jeho práce už je na master) nebo nahrazený (deklarovaným nástupcem, který přistál) — a každý, který nechá člověku — možná redundantní (slabé důkazy) nebo zastaralý (člověk jej označil, rozhodnutí vlastníka D3) — každý s dispozicí a důvody, které rozhodly, v pořadí podle priority; vedle toho větve, které sloučené pull requesty nechaly na origin, tak jak je `majordomus prs cleanup` naposledy četl, s tím, kdy a jak dávno. Čtení: nic nezavírá, nemaže a na nic se forge neptá — `majordomus prs cleanup` čte forge a `--apply` zavírá. `observed: false` s důvodem, když tento checkout nezaznamenal žádné pozorování. |
integration.cleanup | query | Prázdné → IntegrationCleanup | čtení — nic nemění |
majordomus_integration_eventsKaždá akce, kterou exekutory repozitáře zaznamenaly, z kteréhokoli jeho worktree, od nejstarší: lease převzatý a vrácený, pozorování, výběry, rozhodnutí o zastarání, pokus každého činu před ním a jeho výsledek po něm — merge s masterem před a po, odmítnutí, refreshe, selhání ověření a uzavření — každá s typovanou akcí, jejím aktérem, pull requestem, headem, důvody rozhodnutí a u činu s důkazy, na jejichž základě se rozhodlo. Stopa je jeden soubor pod společným adresářem gitu, takže každý worktree čte tutéž. |
integration.events | query | Prázdné → IntegrationEvents | čtení — nic nemění |
majordomus_pull_request_explainPosouzení jednoho pull requestu — dispozice, lane, důvody, každá kontrola politiky s tím, zda prošla, další akce, master a head, proti nimž se rozhodovalo, a kdy byl forge pozorován, požadované kontroly, revize, vztah k masteru, závislosti, překryvy, riziko s jeho faktory a každý důkaz — s jeho pořadím ve frontě. `found: false` s důvodem, když není otevřený nebo se nic nepozoruje. |
integration.explain | query | PullRequestExplainInput → IntegrationExplanation | čtení — nic nemění |
majordomus_pull_requests_prove_dry_runSpustí nemutující cyklus exekutora — refresh, plan, drain --dry-run a cleanup bez --apply — mezi dvěma snímky všeho, co by mohl přesunout, kdyby se mýlil: každý ref, který origin poskytuje, číslo, head, stav a štítky každého otevřeného pull requestu, auditní stopa integrace, lease exekutora a každý lokální ref mimo dva jmenné prostory, které refresh zrcadlí. `ok` je true právě tehdy, když jsou snímky shodné a refs/remotes/origin/<base> i každý refs/majordomus/prs/<n> se rovnají tomu, co poskytuje origin. Čtení, které sahá do sítě: refresh se ptá forge přes GitHub CLI a stahuje základ i heady pull requestů a jako každé čtení přepisuje cache pozorování, relací a souhrnů. Nic nesloučí, nezavře ani neodešle a nepřijímá žádný vstup, který by to mohl způsobit. |
integration.prove_dry_run | query | Empty → DryRunProof | čtení — nic nemění |
majordomus_pull_requestsŘazená fronta: repozitář, základ a master commit, proti nimž bylo rozhodnuto každé posouzení, kdy byl forge pozorován, platná politika (požadované kontroly a review ochrany branche, politika štítků, metoda merge: merge commit, nebo žádná, když repozitář žádnou nedovoluje), posouzení každého otevřeného pull requestu v pořadí — akceschopný s tím, jak dlouho čekal na exekutora a kolikrát byl místo něj vybrán jiný — další merge, pull requesty, do nichž je třeba zanést master, ty hladovějící, součty podle dispozice a lane a diagnostika, zastaralé pozorování první; vedle toho, kdo drží integrační lease základní branche a poslední merge, který exekutor zaznamenal. `observed: false` s důvodem, když tento checkout nezaznamenal žádné pozorování. |
integration.queue | query | Empty → IntegrationStatus | čtení — nic nemění |
majordomus_ci_timingsJak dlouho trvá CI na otevřených pull requestech, měřeno ze zaznamenaného pozorování forge: pro každou kontrolu kolik jejích běhů začalo a skončilo, kolik prošlo a kolik selhalo a její medián, 90. percentil (nejbližší pořadí) a nejdelší doba v sekundách, nejpomalejší medián první; pro každý otevřený head s změřenou kontrolou doba od začátku první kontroly po dokončení poslední a kontrola, která trvala nejdéle, nejdelší čekání první; a kolik běhů nešlo změřit (stále běží, čekají ve frontě nebo byly zaznamenány dřív, než se začaly číst starty), které se počítají a nikdy nezměří jako nula. Čtení: forge se na nic neptá; pozorování zaznamenává `majordomus prs refresh`. `observed: false` s důvodem, když tento checkout žádné nezaznamenal. |
integration.timings | query | Prázdné → IntegrationTimings | čtení — nic nemění |
majordomus_pull_request_trainsKaždý train otevřených pull requestů — skupina spojená potvrzenými závislostmi: base branch, která je headem jiného otevřeného pull requestu, nebo řádek `Stacked on #N` / `Depends on #N` v těle — v pořadí přistání. Pro každý článek: číslo, název, autor, head a base branch, head commit, stránka a kontroly na forge, dispozice, lane, důvody, další akce, stav požadovaných kontrol a každá kontrola na headu, vztah k masteru s tím, jak moc za ním zaostává a zda master obsahuje, připravený head pod refs/prep/<n> a zda je to head, který forge poskytuje (pushed), nebo ještě ne (pending), jeho pozice a hloubka, zda přišla jeho řada, na čem stojí a co nese, jeho pořadí ve frontě a zda ho zachytí cyklus. Pro každý train: kořeny, vrcholy, další článek, který pořadí povoluje, hrany (STACKED_ON nebo DEPENDS_ON, splněné, když článek pod ním přistál) a pull requesty pod ním, které už nejsou otevřené. Vedle nich připravené heady, které nedrží žádný train, součty a diagnostika fronty. Čte se ze zaznamenaného pozorování, fronty, kterou vypisuje `majordomus prs status`, a lokálních refů: nic nestahuje, neodesílá ani nepřesouvá. `observed: false` s důvodem, když tento checkout nezaznamenal žádné pozorování. |
integration.trains | query | Empty → TrainsView | čtení — nic nemění |
majordomus_intent_explainJeden záměr vysvětlený jen z odvození: věta o jeho fázi pojmenovávající odvozený stav každého milníku, věta na kritérium pojmenovávající stav jeho důkazů, pokrytí plánem a příkaz, který ho reprodukuje, věta o práci a providerech, kteří ho realizují, a každé zjištění driftu; vedle nich odvozený záměr, pokrytí jeho kritérií, jeho realizace a s ním spojená práce. |
intent_realization.explain | query | IntentExplainInput → IntentExplanation | čtení — nic nemění |
majordomus_intent_realizationKaždá jednotka práce, kterou tento checkout vidí — úlohy ledgeru s epizodami, providery a předávkami, uzavřené záznamy relací, claimy peerů — s každým záměrem, který realizuje přes úkol, milník a kritérium, s původem každého odkazu (declared: práce cituje úkol; observed: její epizoda úkol posunula; derived: její větev úkol pojmenovává; inferred: jen rozsah otevřeného úkolu se překrývá) nebo s prvním chybějícím odkazem; každý záměr s nesplněnými kritérii a úkoly, které každému slouží, prací a providery, kteří ho realizují, a jeho driftem: closed_work_contradicted, když je každý milník DONE a důkazy kritéria jsou zastaralé nebo selhávají, closed_work_unproven, když nikdy neexistovaly, criterion_closed_unmet, když je každý sloužící úkol DONE a kritérium není splněno; a tam, kde se fáze a verdikt rozcházejí (ADR 0107), evidence_ahead_of_plan, když je verdikt satisfied, zatímco fáze je planned nebo executing, closed_work_not_satisfied, když je každý milník DONE a verdikt je unsatisfied nebo unknown. Živá práce, která neslouží žádnému záměru, je varování. |
intent_realization.work | query | IntentRealizationInput → IntentRealization | čtení — nic nemění |
majordomus_intent_bindingNa co se úloha ptá, než začne (ADR 0111): dán úkol, který práce provádí, záměr, kterému slouží, cesty, kterých se dotkne, nebo třída výjimky s důvodem, jedno postavení — `bound`, když práce slouží kritériu živého záměru přes odkazy, které preflight přijímá, `maintenance`, když její úkoly leží pod milníky, které žádný živý záměr nejmenuje, `exempt`, když je třída ta, kterou politika deklaruje pod `intent.exemptions`, a byl uveden důvod, jinak `refused`, každé odmítnutí s příčinou: vlastních sedm příčin preflightu a nothing_named, unknown_intent, intent_retired, intent_has_no_open_work, issue_outside_intent, ambiguous_intent (samotné cesty dosáhly na více než jeden záměr), unknown_exemption, exemption_without_reason, exemption_names_work. Odpověď nese, co bylo jmenováno, vyřešené úkoly a záměry s tím, co každý záměr od workera žádá, poznámku, když cesty leží mimo rozsah jmenovaného úkolu, a dva piny, které pozdější čtenář porovnává: `plan_revision`, který se pohne, když se upraví záměr, odkaz nebo kritika, a `evidence_standing`, který se pohne, když se změní stav důkazů obsluhovaného kritéria. Nic se neukládá. |
intents.binding | query | IntentBindingInput → IntentBinding | čtení — nic nemění |
majordomus_intent_coveragePlán čtený proti záměrům (ADR 0073): každé kritérium každého živého záměru se živými úkoly, které mu slouží, milníky, do nichž patří, a jeho silou — covered, weakly covered, když žádný sloužící úkol nevyžaduje důkazy, observed, když zaznamenaná mezera viděla, že už platí, nebo uncovered, když nic v plánu nezpůsobí, že bude platit — a každý úkol s důvodem, proč existuje: kritéria, kterým slouží, údržba pod milníkem, který nejmenuje žádný záměr, nebo unexplained pod milníkem, který realizuje záměr. |
intents.coverage | query | Prázdné → IntentCoverage | čtení — nic nemění |
majordomus_intentsKaždý záměr, který model projektu deklaruje, každý se stavem, který plán odvozuje pro jeho milníky, stavem důkazů za každým kritériem splnění, fází, kterou tyto dva odvozují — declared, planned, executing, verifying nebo satisfied, nebo cancelled či superseded, když to záznam říká — a verdiktem, který odvozují samotná kritéria (ADR 0107): satisfied, když je splněno každé kritérium, unsatisfied, když není splněno kritérium testu nebo tvrzení, unknown, když nejsou splněna jen kritéria příkazu či nasazení nebo žádné není deklarováno, s kritérii, která jej drží zpátky. |
intents.list | query | Prázdné → IntentList | čtení — nic nemění |
majordomus_intent_preflightPro úkol, který kus práce provádí, nebo cesty, kterých se dotkne, jeden verdikt: `serves`, když není odmítnut žádný úkol a alespoň jeden slouží kritériu živého záměru přes platný odkaz, plán každého takového záměru je zkritizován bez otevřeného blokujícího nálezu (úkoly posouzené jako údržba vedle toho verdikt nemění); `maintenance`, když úkoly leží pod milníky, které nejmenuje žádný živý záměr a nesloužící ničemu, jak `intent validate` dovoluje; jinak `refused`, každé odmítnutí s jeho úkolem a příčinou — unknown_issue, no_issue_covers_paths, issue_serves_nothing, serves_another_intent, serves_unknown_criterion, intent_not_critiqued, open_blocking_finding — v režimu cest se posoudí každý úkol a odpoví se nejhorším verdiktem. Odpověď nese, pro dosažené záměry a žádné jiné, výrok, obsloužená kritéria se živým stavem jejich důkazů, invarianty, necíle a governance, kritiku s jejími otevřenými blokujícími nálezy a zaznamenanou mezeru omezenou na tato kritéria. |
intents.preflight | query | IntentPreflightInput → IntentPreflight | čtení — nic nemění |
majordomus_intent_proposeZapíše nový záznam záměru pod `.ai/repo/project/intents/` z výroku o tom, co se musí stát pravdou, s volitelným titulkem (první řádek výroku, když chybí) a id (slug titulku, když chybí). Záznam nepojmenovává žádný milník, kritérium ani invariant: jeho fáze se odvodí jako `declared`, `intent validate` obě absence hlásí jako varování, ne selhání, a žádná práce mu nemůže sloužit, dokud není naplánován (ADR 0144). O jeho postavení se neukládá nic. Existující záznam se odmítne, nikdy nepřepíše, a soubor vznikne celý, nebo vůbec. Odpověď pojmenovává identitu a soubor; `intents.record` odpoví odvozenou fázi, jakmile ji index drží. |
intents.propose | command | IntentProposeInput → Proposed | mutace repozitáře — zapisuje do repozitářemůže přepsat nebo odstranit |
majordomus_intent_recordJeden záměr celý: jeho výrok a invarianty tak, jak byly napsány, každý milník se stavem, který odvozuje plán, každé kritérium splnění se stavem jeho důkazů a příkazem, který ho reprodukuje, fáze a verdikt, který odvozují samotná kritéria, s kritérii, která ho drží zpět. Vlastní soubor záznamu zůstává na `majordomus://intent/<id>`. |
intents.record | query | IntentRecordInput → IntentView | čtení — nic nemění |
majordomus_intent_validateKaždý nález nad záměry: záměr nejmenující žádný milník nebo žádné kritérium, milník, který se nerozliší, kritérium bez odkazu na důkazy nebo s odkazem na něco, co tento repozitář nedrží, governance, která se nerozliší, nástupce, který není záměr, název souboru, který se neshoduje s jeho id — každé selhání — a milník, kterému neslouží žádný záměr, varování. |
intents.validate | query | Prázdné → IntentValidation | čtení — nic nemění |
majordomus_knowledge_candidatesKaždý znalostní záznam se stavem candidate ve zdrojové třídě kandidátů: jeho třída, tvrzení, epizoda, ze které vznikl, a branch této epizody a jak dlouho čeká — měřeno od derivace, která ho zapsala, pak od commitu, který ho přidal, a nakonec od jeho vlastního data — posuzováno podle session.freshness; proti limitu politiky. Kandidát, jehož epizodu tento checkout nezná, je uveden bez branche, nikoli skryt. Řazeno podle id. |
knowledge_base.candidates | query | Prázdné → KnowledgeCandidates | čtení — nic nemění |
majordomus_knowledge_recordJeden záznam znalostí podle id — kandidát nebo schválený — s rozlišeným každým odkazem, který jmenuje: relace vůči sledovaným záznamům relací a ledgeru, úloha nebo rozhodnutí vůči ledgeru a úložišti úloh, commit vůči gitu, soubor nebo test vůči indexu a stromu, pravidlo, ADR, úkol nebo jiný záznam vůči indexu. Které odkazy visí, je otázka, kterou si recenzent klade před povýšením, a kterou klade validátor integrity každému záznamu. Odkaz `task:none` nebo `decision:none` se odmítne jménem. |
knowledge_base.record | query | KnowledgeRecordInput → KnowledgeRecord | čtení — nic nemění |
majordomus_knowledge_statusPolovina úsudku o zastaveném zapisovači týkající se čerstvosti (ADR 0052, aplikováno na deriver znalostí ADR 0091): nejnovější řádek knowledge.derived, nejnovější řádek session.closed, kolik uzavřených epizod nejmenuje žádné odvození, počty kandidátů a — jakmile se v tomto checkoutu odvození spustilo a přepínač je zapnutý — zda nejnovější uzavřená epizoda zůstala neodvozená déle než session.freshness.stale_minutes. Id epizod se porovnávají, nikdy pořadí řádků. Zda cesta uzavření stále volá deriver, čte z kódu shellový validátor, ne zde. |
knowledge_base.status | query | Prázdné → KnowledgeStatus | čtení — nic nemění |
majordomus_lifecycle_closedSledovaná, trvalá projekce uzavřených epizod: kolik jich je, kolik se jich uzavřelo na této větvi a nejnovějších dvacet. Toto je jediná polovina subsystému, která přežije klon; vše pod .ai/local/ jmenuje tento stroj a nikam necestuje. |
lifecycle.closed | query | Prázdné → ClosedSessions | čtení — nic nemění |
majordomus_lifecycle_episodesKaždá otevřená epizoda v úložišti tohoto checkoutu, s relací providera, která ji vlastní, worktree a branchí, na které se otevřela, kde stojí a co kniha naposledy viděla, že dělala. `continuity.state` hlásí tu jednu epizodu, na kterou ukazuje pointer, což je správné pro briefing a slepé ke každému jinému oknu otevřenému na stejném worktree. |
lifecycle.episodes | query | Empty → Episodes | čtení — nic nemění |
majordomus_lifecycle_providersNa providera: události životního cyklu, které jeho adaptér deklaruje ve vlastním slovníku providera, zda umí archivovat prompty a které záznamy vynucování tohoto repozitáře pojmenovávají jeho hook. Deklarováno v share/providers.yaml a v politice; nikdy se nehádá z toho, zda je na disku shim. |
lifecycle.providers | query | Prázdné → ProviderLifecycles | čtení — nic nemění |
majordomus_lifecycle_recoveryOtevřené záznamy, které se už nemohou samy uzavřít, dočasné soubory, které zabité uzavření zanechalo ve sledované sekci relací, zda byl ukazatel migrován na rozvržení po providerech a aritmetika, která říká, zda je zohledněna každá epizoda, kterou ledger viděl začít. Každý nález nese příkaz, který jej odstraní. |
lifecycle.recovery | query | Empty → Recovery | čtení — nic nemění |
majordomus_lifecycle_runtimeCommit, na kterém byl postaven servírovaný index, proti commitu, na kterém repozitář je, čteno při tomto volání. Server, který zmrazil index při startu, odpovídá na každou otázku o commitu před hodinami tak, že odpověď nic neříká; toto je čtení, které to dokáže rozeznat. |
lifecycle.runtime | query | Prázdné → RuntimeView | čtení — nic nemění |
majordomus_mcpKdo odpovídá na `initialize` a s jakými verzemi protokolu; transporty a relace připojené přes každý; obsluhované metody a to, že prompty a notifikace ne; každý nástroj (nebo jen ty s jedním efektem) s jeho schopností, efektem a nápovědami, z nichž se odvozují jeho anotace; nástroje, které zapisují do repozitáře; zdroje; a zda každý klient, kterého distribuce deklaruje, má zde konfiguraci, která spouští server tohoto repozitáře. Čte registr a jeden soubor na deklarovaného klienta; nic nezapisuje. |
mcp.projection | query | McpProjectionInput → McpProjection | čtení — nic nemění |
majordomus_mesh_claimNárokuje cesty repozitáře pro relaci. Výhradní claim, který narazí na živý výhradní claim jiné relace — na tomto runtime nebo na kterémkoli runtime, které tento slyšel — je odmítnut jako `claim_conflict` s claimy, na které narazil; poradní claim se zaznamená a jeho překryvy se nahlásí. Claim žije, dokud je jeho relace otevřená a jeho runtime tepe: claim zhavarovaného držitele sám všude vyprší. Zapisuje jen žurnál tohoto runtime. |
mesh.claim | command | ClaimInput → Written | stav procesu — mění paměť tohoto procesu |
majordomus_mesh_cooperationZda tento runtime spolupracuje a proč ne, když nespolupracuje: jeho runtime a proud, identita repozitáře, podle níž se odkazy párují, protokol a funkce odkazu, heartbeat a vypršení, každý propojený peer se stavem odkazu, poslední výměnou, round trip a selháními, každý odmítnutý kandidát s pravidlem, které jej odmítlo, a počitadla handshaků, synchronizací, opětovných připojení, vypršení, replikovaných a odmítnutých událostí. |
mesh.cooperation | query | Empty → CooperationStatus | čtení — nic nemění |
majordomus_mesh_doctorKaždý předpoklad ověřený samotným tímto strojem — deklarace se parsuje, identita se načte a pod allowlistem je na něm, repozitář má identitu meshe, naváže se UDP socket, připojí se multicastová skupina, povolí se broadcast a protokoly discovery a linku podepisují a ověřují od začátku do konce v paměti — a pak vlastní verdikt serveru: ve sdíleném serveru, zda povolená deklarace skutečně aktivovala mesh a, když ne, důvod serveru, který zprávu shodí. Každá neúspěšná kontrola jmenuje svůj dopad a nápravu. Deterministické, druhý uzel není potřeba. |
mesh.doctor | query | Empty → MeshDoctorReport | čtení — nic nemění |
majordomus_mesh_eventsUdálosti žurnálu nad Lamportovým razítkem, v Lamportově pořadí, nejvýše jedna stránka: každá se svým streamem, sekvencí, razítkem, repozitářem, podpisovým klíčem, druhem a tělem. Lamport odpovědi je `after` další stránky. |
mesh.events | query | MeshEventsInput → EventList | čtení — nic nemění |
majordomus_mesh_firewallJaký příchozí provoz deklarace implikuje, že tento stroj musí přijmout — port multicastové skupiny, port broadcastu, je-li povoleným záložním řešením, každý deklarovaný port hubu, jehož adresa je adresou tohoto stroje, a vlastní port serveru, když naslouchá mimo loopback — z privátních sítí, které deklarace jmenuje; jakou frontu firewallu tento host provozuje (ufw, nftables, aplikační firewall macOS); příkazy, které plán tam povolí; co o plánu nyní říká sám firewall (present, missing, inactive nebo bez root nepozorovatelný); a co jádro za posledních pět minut zalogovalo jako zahozené směrem k těmto portům. Selže, když je pozorováno chybějící pravidlo nebo byl zalogován drop. Čte hosta; nic nemění. |
mesh.firewall | query | FirewallInput → FirewallReport | čtení — nic nemění |
majordomus_mesh_handover_consumePřevezme předávku, kterou publikoval jiný runtime: zaznamená převzetí na meshi a zapíše ji do adresáře předávek tohoto checkoutu jako záznam, který `majordomus handover --resolve` najde na téže branchi — jednou, bez ohledu na to, kolikrát se převezme. |
mesh.handover.consume | command | HandoverConsumeInput → ConsumeAnswer | stav procesu — mění paměť tohoto procesu |
majordomus_mesh_handover_publishPublikovat záznam předávky tohoto checkoutu — nejnovější, nebo pojmenovaný pod .ai/local/state/handovers/ — na každý propojený runtime: jeho úloha, větev, head a čas z front matter, zadaný úkol a milník a jeho tělo v Markdownu, omezené a identifikované digestem těla. Žádná cesta tohoto stroje necestuje a nikdy se nečte žádný soubor mimo adresář předávek. |
mesh.handover.publish | command | HandoverPublishInput → Written | stav procesu — mění paměť tohoto procesu |
majordomus_mesh_identityIdentita uzlu uložená pod stavovým adresářem uživatele, jen veřejná polovina: id uzlu, veřejný klíč, zobrazované jméno. Podpisový klíč se neobjevuje v žádné projekci. Nepřítomnost je odpověď, ne chyba — identita se vytvoří, když se mesh poprvé aktivuje. |
mesh.identity | query | Prázdné → MeshIdentityReport | čtení — nic nemění |
majordomus_mesh_nodesKaždý runtime, který tento proces pozoroval, jeden záznam na uzel a slot runtime, deduplikovaný napříč všemi zdroji zjišťování, v pořadí podle id uzlu: identita, důvěra, přítomnost, koncové body, schopnosti, repozitáře, původ a verze. V paměti, zaniká s procesem. |
mesh.nodes | query | Empty → NodeList | čtení — nic nemění |
majordomus_mesh_peerJeden runtime podle klíče (`<node>-<runtime>`, nebo id uzlu pro jeho první runtime): stroj, na kterém běží, jeho živost, jeho linka odsud, jeho relace a claimy a každé odmítnutí zaznamenané proti němu. Nenalezeno je odpověď s důvodem. |
mesh.peer | query | PeerInput → PeerDetail | čtení — nic nemění |
majordomus_mesh_peersStroj → runtime → relace → claim: každý runtime, s nímž je tento propojen nebo který slyšel přes žurnál, seskupený podle stroje, lokální první; každý runtime s jeho živostí, milisekundami od vzestupu jeho tepu, jeho spojením a jeho nejnovějším živým claimem. Výchozí pohled `summary` vypisuje jen aktivní relace, každou s počtem jejích živých claimů a zkráceným záměrem; `view=full` vypisuje každou relaci s každým claimem. `session` a `runtime` zúží kterýkoli z nich. Vzdálené i lokální runtime sdílejí jeden tvar a digest celého složení uzavírá odpověď: stejné digesty, stejný stav. |
mesh.peers | query | MeshQuery → PeerTree | čtení — nic nemění |
majordomus_mesh_registerPředloží jednu podepsanou obálku; ověří se přesně jako datagram — meze, zastaralost, podpis, politika důvěry — a pokud obstojí, zaznamená se jako pozorování rendezvous. Odpověď nese vlastní obálku tohoto uzlu a kandidáty, které drží jeho registr, každého ověřitelného od začátku do konce podle jeho vlastního podpisu. Registrace nic neuděluje: volající se stává záznamem, nikdy oprávněním. Mění jen paměť tohoto procesu. |
mesh.register | command | RegisterInput → RegisterAnswer | stav procesu — mění paměť tohoto procesu |
majordomus_mesh_releaseUvolní claim, který drží aktuální běh tohoto runtime, podle jeho klíče. Claim zapsaný jinde je odmítnut jako `not_own`: uvolnit ho smí jen jeho držitel a claim mrtvého držitele místo toho vyprší. Zapisuje jen žurnál tohoto runtime. |
mesh.release | command | ReleaseInput → Written | stav procesu — mění paměť tohoto procesu |
majordomus_mesh_review_answerOdpoví na žádost o review z libovolného runtime hodnotou approved, changes_requested nebo commented a poznámkou. Replikuje se na každý propojený runtime. Zapisuje jen žurnál tohoto runtime. |
mesh.review.answer | command | ReviewAnswerInput → Written | stav procesu — mění paměť tohoto procesu |
majordomus_mesh_review_requestPožádat o revizi větve, commitu nebo pull requestu, volitelně jednoho pojmenovaného runtimu — který musí být propojen a nést funkci `reviews`, jinak se požadavek odmítne jako `feature_unsupported`. Replikuje se na každý propojený runtime. Zapisuje jen žurnál tohoto runtimu. |
mesh.review.request | command | ReviewRequestInput → Written | stav procesu — mění paměť tohoto procesu |
majordomus_mesh_review_withdrawUkončit žádost o revizi, kterou tento runtime vznesl — done, void nebo superseded — s volitelnou poznámkou o výsledku, kterou žádost pak nese. Smí to kterákoli relace žádajícího runtimu (znovu připojený žadatel je jiná relace téhož); žádný jiný runtime ne a nikdy se nepočítá jako odpověď. Nezodpovězená žádost se také čte jako vypršelá, dokud její runtime přestal tlouct. Replikuje se na každý propojený runtime. Zapisuje jen žurnál tohoto runtimu. |
mesh.review.withdraw | command | ReviewWithdrawInput → Written | stav procesu — mění paměť tohoto procesu |
majordomus_mesh_session_closeUkončí relaci tohoto runtime; každý claim, který drží, s ní končí, na každém propojeném runtime. Zapisuje jen žurnál tohoto runtime. |
mesh.session.close | command | SessionCloseInput → Written | stav procesu — mění paměť tohoto procesu |
majordomus_mesh_session_openŘekne, co relace tohoto runtime je: její klient, worker, záměr, úloha, úkol, milník, branch, head, špinavost a revize kontextu. Replikuje se na každý propojený runtime; pozdější slovo nahrazuje dřívější. Zapisuje jen žurnál tohoto runtime. |
mesh.session.open | command | SessionInput → Written | stav procesu — mění paměť tohoto procesu |
majordomus_mesh_stateSložený žurnál. Výchozí pohled `summary` je omezený bez ohledu na historii: relace a claimy spočtené podle postavení, každý runtime s jeho živostí, počty a nejnovějším živým claimem, otevřené žádosti o review a předávky, které nikdo nepřevzal, a digest, který dva runtime porovnávají. `view=full` je každá relace, každý claim s postavením (held, released, expired, conflicted s jeho vítězem), poradní překryvy, každá předávka s tím, kdo ji převzal, každá žádost o review s odpověďmi a živost každého streamu na hodinách tohoto runtime. `claims=live`, `after` (Lamportovo razítko), `session` a `runtime` zúží kterýkoli pohled; digest je vždy digestem celého složení. |
mesh.state | query | MeshQuery → MeshStateAnswer | čtení — nic nemění |
majordomus_meshZda mesh v tomto procesu běží a proč neběží, když neběží; veřejná identita tohoto uzlu; každý discovery provider s jeho stavem a čítači; součty registru; a odmítnuté datagramy podle důvodu. Jediný stav, který ukazuje každý povrch. |
mesh.status | query | Prázdné → MeshStatus | čtení — nic nemění |
majordomus_mesh_verifySpustí živé ověření: spolupráce je aktivní, identita repozitáře se vyřeší, endpointy jsou dosažitelné mimo loopback, heartbeat tluče, žurnál neobsahuje zaseklou mezeru; pak jedno kolo synchronizace s každým peerem, kterého tento runtime volá, s časováním a zjištěním, zda obě strany nyní drží stejné high-water marky. Každá selhavší kontrola pojmenovává dopad a nápravu. Nemění nic kromě replikace žurnálu. |
mesh.verify | command | Empty → MeshVerifyReport | stav procesu — mění paměť tohoto procesu |
majordomus_modelsKaždý deklarovaný vendor a model, volitelně zúžený podle vendora, slova schopnosti nebo jednoho id či aliasu. Vendoři nesou, zda je nastavena proměnná s jejich pojmenovaným přihlašovacím údajem — jen přítomnost, nikdy hodnota. Pořadí je pořadí deklarace, které je i preferenčním pořadím směrování; zjištění samotného katalogu (duplicitní alias, nedeklarovaný vendor) jdou s sebou. |
models.list | query | ModelsFilter → ModelsReport | čtení — nic nemění |
majordomus_models_routeRozhodne, který deklarovaný model uvedená potřeba vybere: první v pořadí deklarace, který splňuje každý požadavek, zbytek vyhovujících jako záložní řetězec a každý vyloučený model s první kontrolou, na které selhal. Čisté nad katalogem a vstupem — stejná otázka dostane stejnou odpověď a „proč“ je přímo v odpovědi. |
models.route | query | RouteInput → RoutingDecision | čtení — nic nemění |
majordomus_monitorStránka signálů po kurzoru, od nejstarších, nebo bez něj nejnovější signály za posledních `since` sekund: každý s časem, zdrojem, druhem, závažností, strojem, relací, aktérem, pull requestem, branchí, úkolem, cestami, jednořádkovým shrnutím a informací, zda je určen čtenáři. Reprojekce a nerozhodnuté kroky se počítají jako `suppressed`; zdroj, který nelze přečíst, je uveden s důvodem a nikdy se neodpoví jako prázdný. `cursor` stránky je `after` další stránky a nic z této stránky se nevrací. Jen čte. |
monitor.stream | query | MonitorInput → MonitorPage | čtení — nic nemění |
majordomus_getJeden objekt podle URI (majordomus://<kind>/<identity>): metadata, původ a obsah; URI, které promítá dotaz (majordomus://repository), odpovídá na tento dotaz jako JSON dokument. Stejné vyřešení obsluhuje čtení zdroje MCP. |
objects.get | query | GetInput → ResourceView | čtení — nic nemění |
majordomus_listVypíše deklarativní objekty AI vrstvy repozitáře, volitelně podle druhu nebo tagu. |
objects.list | query | ListInput → ObjectList | čtení — nic nemění |
majordomus_searchHledání podřetězce bez ohledu na velikost písmen v identitách, titulcích, popisech a obsahu. |
objects.search | query | SearchInput → SearchResult | čtení — nic nemění |
majordomus_verify_objectsPřečíst každý soubor, z něhož byla vrstva postavena, a porovnat ho s tím, co tento proces servíruje. Index se staví jednou při startu a drží se, čímž je každý další požadavek zadarmo a čímž se soubor upravený později servíruje tak, jak byl; takto běžící server říká, zda se to stalo, aniž by se musel restartovat, aby to zjistil. Soubor, který je jeden objekt, se porovnává bajt po bajtu; soubor kolekce, jehož objekty index drží jako členy a ne jako text, se porovnává podle velikosti a každý nález říká, které porovnání proběhlo. Čte každý soubor vrstvy, takže hlásí postup soubor po souboru a zastaví se, když o to dostane požadavek. |
objects.verify | query | VerifyInput → VerifyReport | čtení — nic nemění |
majordomus_obligation_closureKaždý závazek, který aktivní úloha deklarovala, spojený s tím, co o něm říká slovník, a s důkazy, které ho splňují, nebo ne: co se dluží, co je splněno a co zastaralo — se zaznamenaným hashem vstupu a aktuálním hashem stromu, nebo zaznamenaným commitem a jeho štítkem, aby čtenář viděl, proti čemu. Posouzení je to, které aplikuje `finish`, reprodukované, ne znovu rozhodnuté, a slova zastarání jsou jediná čtyři v repozitáři. Checkout bez úlohy to hlásí, místo aby hlásil, že se nedluží nic. |
obligations.closure | query | Prázdné → Closure | čtení — nic nemění |
majordomus_obligationsTokeny, které úloha smí deklarovat v `requires`: co každý žádá od pracovníka, příkaz, který jej splní, pathspecy, přes které se hashují jeho důkazy, a zda je jeho fakt vzdálený, a proto vázaný na commit, a ne na strom. Dodaná data, v každém klonu stejná, takže odpovídá i v checkoutu, který nikdy nespustil životní cyklus. |
obligations.vocabulary | query | Prázdné → Slovník | čtení — nic nemění |
majordomus_observatory_captureScény mesh Observatoře tak, jak je tento proces má živě, způsobilé k publikaci: stroje, runtime, relace a události podle pořadí, událost jen podle jejího druhu, logických hodin a času. Nic nezapisuje; commit odpovědi do .ai/repo/observatory/recording.json je to, co ji publikuje. |
observatory.capture | query | Prázdné → ObservatoryRecording | čtení — nic nemění |
majordomus_observatory_eventsUdálosti žurnálu meshe nad kurzorem, tak jak je kreslí scéna aktivity Observatory: identita, druh, uzel, logické hodiny a čas, od nejnovější, nejvýše jedna stránka. Kurzor odpovědi je `after` dalšího požadavku; kurzor, kterého tento žurnál nikdy nedosáhl, vypršel a čtenář vezme novou projekci. Bez kurzoru nejnovější stránka. |
observatory.events | query | ObservatoryEventsInput → ObservatoryEvents | čtení — nic nemění |
majordomus_observatory_replayZáznam scén mesh, který repozitář nese v .ai/repo/observatory/recording.json, a který Observatoř kreslí, označený jako přehrání, kde žádný mesh neběží. Absence je present: false; soubor, který nelze přečíst, je chyba. |
observatory.replay | query | Empty → ObservatoryReplay | čtení — nic nemění |
majordomus_pack_planCo by zabalil profil share/archive.yaml: nesené soubory a jejich bajty a tokeny o200k_base, každý vynechaný soubor podle důvodu (worktree, link, artifact, binary, derived, excluded; derived se počítá, ostatní se vypisují), shardy, na které se řeže v rámci tokenového rozpočtu a počtu souborů profilu, a každé zjištění, které build odmítne — soubor nad rozpočet, příliš mnoho shardů, strojová cesta nebo přihlašovací údaj ve vybraném souboru, prázdný výběr, profil bez limitů. Čte jen index a bloby gitu; nic nezapisuje. |
pack.plan | query | PackPlanInput → PackPlan | čtení — nic nemění |
majordomus_pack_verifyPřečte adresář balíčku uvnitř repozitáře proti jeho pack.json: každý soubor, který jmenuje, je přítomen se svým digestem a nic jiného tam není, obsah každého nesení souboru má digest, který zaznamenává jeho značka, žádná nesená cesta není binárka, artefakt, odkaz ani gitlink podle profilu, který manifest jmenuje, žádný soubor nepřekračuje tokenový rozpočet profilu ani neobsahuje bajt NUL či únik a souborů není víc, než profil dovoluje. Nečitelný manifest je neměřeno, nikdy ne úspěch. |
pack.verify | query | PackVerifyInput → PackVerdict | čtení — nic nemění |
majordomus_announceŘekne ostatním peerům tohoto sdíleného serveru, co volající relace dělá a kterých cest se chce dotknout. Peer může držet několik claimů najednou: pojmenujte jeden přes 'claim' a stojí vedle ostatních, ohlaste se pod tímto jménem znovu a aktualizuje se, vynechte ho a je to jediný nepojmenovaný claim peera. Pojmenujte své claimy, když jedna relace dělá několik věcí najednou — subagenti sdílejí relaci svého rodiče, takže nepojmenované ohlášení od každého z nich by nahradilo předchozí, místo aby se přidalo. Mění jen paměť tohoto procesu; do repozitáře se nikdy nezapisuje. Vyžaduje relaci MCP: přes prosté HTTP volající neexistuje. |
peers.announce | command | AnnounceInput → Announced | stav procesu — mění paměť tohoto procesu |
majordomus_peersKaždý worker tohoto repozitáře: id, vlastní název a verze klienta z jeho initialize, transport, kdy se připojil, kdy byl naposledy viděn, co oznámil a ke kterému checkoutu je připojen. Server obsluhuje jeden checkout, takže nástěnka repozitáře, na kterém se pracuje přes propojené worktree, se sbírá: nástěnka tohoto checkoutu z paměti, nástěnka každého jiného checkoutu ze serveru, který jmenuje jeho lease, dotázaného jen na jeho vlastní nástěnku. 'boards' říká, které checkouty byly pokryty, a 'complete', zda bylo možné přečíst každý z nich, takže krátká nástěnka se nikdy nesplete s prázdným repozitářem. 'checkouts: this' přečte jednu nástěnku a nic dalšího nevyjmenovává, netestuje ani se na nic neptá. V paměti na každém serveru; mizí s procesy. |
peers.list | query | PeerListInput → PeerList | čtení — nic nemění |
majordomus_perfPočitadla tohoto procesu: skeny repozitáře, sestavení indexu a registru, generování schémat, sestavení projekcí, provedení, vyvolání handlerů, zásahy, minutí a vyřazení cache a časování fází, tak jak právě stojí. |
perf.counters | query | Empty → CounterSnapshot | čtení — nic nemění |
majordomus_plan_deliveryPro každý úkol (nebo jeden) nejzazší prokázaná fáze doručení — none, branch, pr_open, merged, released, deployed — každá s objektem, který ji dokázal, a kdy byl pozorován: větev, která úkol pojmenovává (podle id, pravidla I1405, nebo podle slugu), otevřený pull request v zaznamenaném pozorování forge, nejnovější commit v historii trunku, který ho pojmenovává (merge podle titulku pull requestu nebo větve, jakýkoli jiný commit podle předmětu, nikdy podle těla), první záznam release (`.ai/repo/releases/v*.yaml`), jehož commit ten merge obsahuje, a publikovaný `latest.json`, který pojmenovává ten release nebo pozdější. Vedle toho deklarovaný stav úkolu, takže rozpor mezi razítky a prací je na jedno srovnání. Ve výchozím stavu živě: trunk, který tento klon zná, každá větev, pozorování forge, které zaznamenal `majordomus prs refresh`, záznamy release a `latest.json` commitu, který publikovalo poslední nasazení Pages. S `at` merge z historie toho commitu a záznamy release stromu a nic živého — každý zdroj větví, forge a nasazení se hlásí jako nepřečtený — takže lze dokázat jen merged a released a odpověď je funkcí samotného commitu. Zdroj, který nebyl přečten, se hlásí jako nepřečtený s důvodem, nikdy jako none: úkol, který mohl postoupit dál, není vyřešen a zdroj pojmenovává. Odvozuje se při každém volání a nikde neukládá; nikdy nezapisuje razítko. |
plan.delivery | query | PlanDeliveryInput → IssueDeliveryReport | čtení — nic nemění |
majordomus_plan_driftKaždý rozpor mezi deklarovaným stavem úkolu a jeho dodáním (plan.delivery), každý s objekty, které ho dokládají: `merged_not_recorded` — READY, BLOCKED nebo ACTIVE, s merge na trunku, který ho jmenuje (pull request, merge commit, release), a bez otevřeného pull requestu, který ho jmenuje; `active_without_work` — ACTIVE od doby před oknem, bez branche, pull requestu, merge nebo živého mesh claimu, který by ho jmenoval; `done_without_trace` — DONE bez merge, který by ho jmenoval, pouze poradní, protože existují úkoly jen se záznamem. Každé zjištění nese svůj věk, zda je za oknem, které deklaruje `.ai/repo/ci/plan.yaml` (`drift.window`, sekundy), zdroje, které nebyly přečteny a mohly by ho rozpustit, a příkaz, který ho vyřeší (`majordomus plan verify|done <id>`). S `gate` posuzováno jako kontrola: na `head` je každý merged_not_recorded pending; na `trunk` je ten sloučený před delší dobou než okno odmítnut a mladší pending; ostatní třídy nikdy neodmítají; chybějící nebo nečitelné okno odmítá (kód 12); odmítnutí shodí kontrolu (kód 10) jen pod `drift.enforcement: blocking` a pod `advisory` se hlásí s kódem 0. Pozorováno živě, nebo `at` commitu jako plan.delivery. Odvozuje se při každém volání; nikdy nezapisuje razítko. |
plan.drift | query | PlanDriftInput → DriftReport | čtení — nic nemění |
majordomus_plan_flightMilníky s rozpracovanou prací, ten, který graf povoluje jako další, a poslední release tak, jak ho říkají samotné releasy, čteno živě při každém volání (ADR 0166, rozhodnutí 4). Nyní je každý otevřený milník, který obsahuje otevřený úkol s otevřeným pull requestem, jenž ho jmenuje (`pr_open` z `plan.delivery`), živý mesh claim vytvořený pro něj, nebo deklarovaný stav ACTIVE; ke každému patří jeho úkoly, důvod, proč jsou rozpracované, jejich deklarovaný stav vedle odvozené fáze a objekty, které to dokládají (branch, pull request, merge commit, release tag, publikovaný `latest.json`, claim), odkazované na forge tam, kde je forge má. Další je první otevřený milník v pořadí plánu, který není nyní a jehož nedokončené prerekvizity jsou všechny nyní. Poslední release je nejvyšší stabilní verze mezi záznamy releasů, tagy `v*` tohoto klonu a souborem `latest.json`, který publikovalo poslední úspěšné nasazení na Pages, takže release, jehož záznam byl sloučen až po tagu, se neukáže starší, než je. `executable_tagged` říká, zda je verze odpovídajícího spustitelného souboru otagovaná. `milestone` přidá daný milník se všemi jeho úkoly. Zdroj, který nebyl přečten (forge, publikace, mesh mimo server), je uveden i s důvodem a nikdy se nepovažuje za prázdný. |
plan.flight | query | PlanFlightInput → PlanFlight | čtení — nic nemění |
majordomus_plan_issuesJeden záznam na úkol s odvozeným stavem, vlnou, deklarovanými závislostmi, těmi, které nejsou DONE (plus `milestone:<id>`, když kontrola zadržuje celý výsledek), úkoly, které na něm závisejí, cestami, kterých se dotýká, a součtem důkazů. Filtrování podle `status: READY` dává připravenou množinu a podle `status: BLOCKED` blokovanou množinu; nic z toho není samostatná derivace. |
plan.issues | query | PlanIssueFilter → PlanIssueList | čtení — nic nemění |
majordomus_planKaždý milník a úkol s odvozeným stavem, vlnou, pořadím, oběma směry jeho grafu a počty; vlny provádění; oba grafy závislostí jako hrany; každé validační zjištění; a hlavička plánu s odvozeným aktivním milníkem. Jediná hodnota, z níž odpovídá každá další schopnost tohoto modulu. Odvozuje se při každém volání: přechod zapíše mezi dvěma voláními do záznamu značku životního cyklu a plán odpovězený ze snímku by poslal dva workery k jednomu úkolu. |
plan.model | query | Prázdné → Plán | čtení — nic nemění |
majordomus_plan_nextÚkol READY s nejnižší vlnou aktivního milníku, nejdřív s nejvyšší prioritou, pak podle id. Aktivní milník může mít nic připraveného, zatímco jiný ano — třeba ten, který čeká na vlastní důkazy přijetí — takže se hledání rozšíří na celý plán, místo aby odpovědělo `none` a odeslalo pracovníka pryč od práce, která je skutečně proveditelná. Na tohle se agent ptá, než začne. |
plan.next | query | PlanMilestoneFilter → PlanNextIssue | čtení — nic nemění |
majordomus_plan_recordMilník se svými úkoly v plném znění, nebo úkol s úkoly, na které čeká, v plném znění. Vlastní próza záznamu zůstává tam, kde vždy byla — `majordomus://issue/<id>` vrací soubor — a toto odpovídá na to, co soubor o sobě říct nemůže: jaký je jeho stav, kde leží v grafu a co stojí mezi ním a tím, aby byl proveditelný. |
plan.record | query | PlanRecordInput → PlanRecord | čtení — nic nemění |
majordomus_plan_roadmapGraf milníků rozložený podle pořadí, přičemž `order` rozhoduje remízy jen uvnitř pořadí, a první neblokovaný nedokončený milník jako `now` a ten po něm jako `next`. Nic v posloupnosti se nepíše ručně: milník, jehož předpoklady nejsou skutečné, nelze nominovat, a právě to činí `každý krok je podmíněn tím, že předchozí je skutečný` invariantem, a ne větou. |
plan.roadmap | query | Prázdné → PlanRoadmap | čtení — nic nemění |
majordomus_plan_statusKaždý milník s odvozeným stavem a jeho úkoly spočtenými podle stavu, milník, který worker právě provádí, další připravený úkol celý a vlastní součty plánu. Počty jsou klíčovány deklarovaným slovníkem, který cestuje s odpovědí, takže stav přidaný do enginu se zde objeví, aniž by se cokoli upravovalo. |
plan.status | query | PlanMilestoneFilter → PlanStatusReport | čtení — nic nemění |
majordomus_plan_transitionZaznamenat, že provádění úkolu začalo (`start`), že implementace je dokončena a čekají se důkazy (`verify`), nebo že je hotovo (`done`). Označí se jedno pole vlastního záznamu úkolu, pečeť jeho události se zapíše vedle něj a událost se připojí do ledgeru; razítko bez té pečeti nepohne žádným stavem. Přesun se odmítne, když model říká, že je nepřípustný — úkol, který není READY, nemůže začít, ten, který nikdy nebyl ACTIVE, nelze ověřit, a ten, který nebyl nikdy zahájen, jehož závislosti nejsou dokončené nebo kterému chybí požadované důkazy, nelze dokončit — a odmítnutí pojmenuje, co v cestě stojí. Stav, který se vrátí, se potom odvozuje ze záznamu, ne z přesunu: `done` s chybějícími důkazy nechá úkol ve VERIFY a řekne to. |
plan.transition | command | PlanTransitionInput → PlanTransitionResult | mutace repozitáře — zapisuje do repozitářemůže přepsat nebo odstranit |
majordomus_plan_validateKaždé zjištění, které derivace vytvořila, v pořadí, v jakém je vytvořila: závislost na něčem, co není úkol, cyklus, úkol provádějící se před svými závislostmi nebo před kontrolou svého milníku, úkol bez kritérií přijetí, chybějící důkazy pod datem dokončení, razítko životního cyklu, které jeho přechod nezapsal (bez pečeti jeho události plan_* vedle sebe), milník, jehož graf si protiřečí, dva úkoly jedné vlny sdílející cestu. Chyba znamená, že model je neplatný; varování znamená, že je přípustný a stojí za přečtení. |
plan.validate | query | Prázdné → PlanValidation | čtení — nic nemění |
majordomus_plan_wavesTopologické vrstvení grafu úkolů: úkol vstoupí do vlny, až když ji opustila každá jeho závislost, takže jeho vlna je o jedna za nejdelší cestou k němu. Sdílení vlny je nutná podmínka pro souběžné spuštění dvou úkolů, ne dostatečná — překrývající se rozsah je serializuje a každý takový překryv se hlásí vedle vln, místo aby ho dva pracovníci objevili v merge konfliktu. |
plan.waves | query | PlanMilestoneFilter → PlanWaveReport | čtení — nic nemění |
majordomus_product_domainsTěch několik věcí, které produkt řídí, každá deklarovaná jednou v sekci funkcí vrstvy se svým příslibem a selháním, na které odpovídá, a každá drží stabilní funkce, které ji jmenují: jejich rozhraní, odlišná tvrzení, případy užití, pravidla a schopnosti za nimi a provozní okamžiky, na které odpovídají, vše odvozené. Doména nevypisuje funkce; funkce jmenuje svou doménu. Výchozí je stabilní množina; pro každou doménu předejte status=any. |
product.domains | query | DomainQuery → DomainList | čtení — nic nemění |
majordomus_featureJedna funkce produktu celá: záznam tak, jak ho deklaruje jeho soubor, a vše odvozené z toho, co jmenuje — schopnosti jejích modulů s jejich nástroji, trasami a cestami příkazové řádky, příkazy s jejich shrnutími, spočítané objekty jejích druhů, pravidla s jejich třídou a tím, zda je nástroj vynucuje, dokumenty, rozhodnutí, tvrzení s jejich stavem, případy užití, oblasti Cockpit a webové povrchy s jejich trasami, momenty, na které odpovídá, a rozhraní, která to vše dohromady tvoří. |
product.feature | query | FeatureInput → ResolvedRefs | čtení — nic nemění |
majordomus_featuresKaždá funkce produktu, kterou tento repozitář deklaruje, zúžená kterýmkoli z fasetů, které model odvozuje — zvýrazněná, oblast, doména, modul, příkaz, povrch, text — s rozhraními, jimiž je zpřístupněna, počty za ní a tím, co je o ní zaručeno, z čehož nic neuvádí její soubor. Výchozí je stabilní sada; předejte status=any pro koncepty také. |
product.features | query | ProductQuery → FeatureList | čtení — nic nemění |
majordomus_product_matrixKaždá funkce proti příkazové řádce, HTTP API, MCP, Cockpitu a dokumentaci, každá značka odvozená z toho, co funkce jmenuje; pak každý vestavěný modul spustitelného souboru, každý veřejný příkaz shellového nástroje a každý druh vrstvy se stabilními funkcemi, které jej jmenují. Řádek bez funkce se ohlásí jako mezera, neskryje se. |
product.matrix | query | Prázdné → Matice | čtení — nic nemění |
majordomus_providersKaždý provider, pro který má nástroj adaptér — jeden na šablonu, kterou distribuce dodává — s bootstrapy, které jím politika tohoto repozitáře vykresluje, klientskou konfigurací, kterou nese pro sdílený server MCP, a hooky, které politika zapojuje. Množinu tvoří šablony; nic zde není seznam dodavatelů. |
product.providers | query | Prázdné → ProviderList | čtení — nic nemění |
majordomus_product_validateKaždý nález nad modelem produktu: odkaz, který nevede nikam, s nejbližším kandidátem; duplicitní identita; název souboru, který se neshoduje s jeho id; koncept, který je zvýrazněn; stabilní funkce pod svými laťkami; a každý modul, příkaz nebo druh, který nejmenuje žádná stabilní funkce. Chyby činí model neplatným; varování ne. |
product.validate | query | Empty → ProductValidationReport | čtení — nic nemění |
majordomus_qualityExportovaný povrch crate změřený proti pravidlům repozitáře: kolik položek je zdokumentovaných a má příklad, kolik modulů je zdokumentovaných, má příklad a je behaviorálně otestováno, jak stojí kanonické operace vůči příkazové řádce, HTTP, OpenAPI a MCP a jedno zjištění na porušení nesoucí stabilní kód, pravidlo, které ho vyžaduje, soubor a řádek, proč na něm záleží a co s tím dělat. |
quality.report | query | QualityInput → QualityAnswer | čtení — nic nemění |
majordomus_quality_rustdocStrom rustdoc crate — artefakt povrchu rustdoc, jak ho řeší webová topologie — posuzovaný proti vlastnímu inventáři exportovaných položek crate: každá položka, která vlastní stránku, ji má na trase, kterou jí rustdoc dává, žádná stránka položky nezůstala bez položky, strom deklaruje, že byl sestaven z HEAD, index knihovny je přítomen a jmenuje crate, jeho assety jsou přítomny, každý relativní odkaz se vyřeší a žádný soubor nejmenuje stroj, na kterém byl sestaven, ani nenese přihlašovací údaj. Odpovídá verdiktem (clean, findings, nebo no_tree, když není co posuzovat), počty, které spojil, každým exportovaným modulem s jeho stránkou a jedním typovaným zjištěním na vadu se souborem a tím, co dělat. |
quality.rustdoc | query | RustdocInput → RustdocReport | čtení — nic nemění |
majordomus_reasoning_advisorsKaždý deklarovaný poradce — pak každý propojený peer mesh nesoucí funkci review — s jeho stavem (available, unavailable, not_configured, disabled, temporarily_failed, rate_limited) a důvodem, jen z přítomnosti (spustitelný soubor v PATH, nastavená proměnná s přihlašovacím údajem; nikdy hodnota), režimem uvažování a zaznamenanými výsledky dřívějších konzultací. Plus kapacita na poradní schopnost. Žádný poradce je běžná odpověď: uvažování je provozní tak či tak. |
reasoning.advisors | query | Empty → AdvisorsReport | čtení — nic nemění |
majordomus_reasoning_checkSpustitelná polovina pravidel advisors-are-optional a review-is-recorded-not-claimed: katalog poradců se vyřeší proti tabulce providerů a katalogu modelů; každý adaptér, který pojmenovává, má svůj transportní modul; žádný zdroj nezávislý na provideru nepojmenovává poradce; žádný CI workflow ani kontrola nepojmenovává přihlašovací údaj modelu; žádný dokument netvrdí odmítnuté tvrzení; každá uložená konzultace pojmenovává poradce, kterého její plán vybral, a revize každého závěru odpovídá tomu, co cituje. Kontroly CI a tvrzení posuzují, co říkají vlastní workflow a dokumenty tohoto repozitáře, takže platí jen tam, kde je pravidlo advisors-are-optional deklarováno; adopter se poměřuje tím, co přijal. |
reasoning.check | query | Empty → ReasoningCheck | čtení — nic nemění |
majordomus_reasoning_explainJeden záznam uvažování s celým řetězcem jeho posouzení: nejistota a její důkazy, plán a koho vybral nebo proč nikoho, každá konzultace, každá neshoda a experiment, který ji rozřešil, závěr a jeho validace — původ rozhodnutí bez konverzace, která jej vyvolala. |
reasoning.explain | query | ReasoningExplainInput → ReasoningExplanation | čtení — nic nemění |
majordomus_reasoning_planRozhodnout, aniž by se cokoli zaznamenalo, zda uvedená nejistota zaslouží nezávislou revizi, kolik povoluje režim a které dostupné poradce by výběr řízený schopnostmi oslovil — s každým vynechaným poradcem a proč. Triviální a nízká nejistota se rozhoduje lokálně; podstatná nejistota bez vhodného poradce dostane strukturovanou lokální revizi. Čistá funkce nad katalogem, dostupností a vstupem. |
reasoning.plan | query | PlanPreviewInput → ReviewPlan | čtení — nic nemění |
majordomus_reasoning_recordZapsat jeden typovaný záznam uvažování otevřené úlohy pod .ai/local/state/reasoning/: posouzení (s jeho důkazy), plán (vypočtený zde z dostupnosti tohoto okamžiku, nikdy dodaný), konzultaci (jen poradce, kterého vybral její plán), neshodu, rozřešení (důkazy, nikdy počet), závěr (jeho počet revizí se počítá z konzultací, které cituje; odmítnut, dokud je neshoda nad jeho posouzením nevyřešená), validaci nebo neúspěšný pokus. Tvary tajemství se před jakýmkoli zápisem zakryjí. |
reasoning.record | command | ReasoningRecordInput → ReasoningRecorded | mutace repozitáře — zapisuje do repozitářemůže přepsat nebo odstranit |
majordomus_reasoningStav uvažování otevřené úlohy (nebo pojmenované, nebo všech): posouzení a kde každé stojí, konzultace a jak každá skončila, neshody a co je rozhodlo, závěry s jejich vypočtenou revizí a validací, časová osa, součty tokenů, které adaptéry ohlásily, a Markdown zpráva, kterou nese předávka. Odvozeno pouze ze záznamů, deterministicky. |
reasoning.status | query | ReasoningStatusInput → ReasoningStatus | čtení — nic nemění |
majordomus_recover_orphansProjde publikační temp soubory každého úložiště záznamů, rename temp soubory pod lokální polovinou vrstvy a sledovanou sekcí relací a stagingové adresáře generátoru webu v kořeni repozitáře; každému dá verdikt podle jeho stáří a pak obsahu; a pokud volání není kontrola, odstraní ty, o nichž verdikt říká, že je nic nedrží. Nic se nemaže jen proto, že to nebylo rozpoznáno: temp, který drží jedinou kopii záznamu, se hlásí jako `incomplete` a nechává se volajícímu k publikaci, obsah, který tato verze neumí klasifikovat, je `foreign` a zůstává přesně tam, kde je, kandidát, jehož stáří tato platforma neumí přečíst, je `unmeasurable` a nikdy kandidát, a žádný adresář se nikdy neodstraňuje. Práh je povinný a nemá výchozí hodnotu, protože úklid měřený proti chybějícímu prahu by shledal zastaralým každý soubor. |
recover.orphans | command | RecoverOrphansInput → RecoverOrphansResult | mutace repozitáře — zapisuje do repozitářemůže přepsat nebo odstranit |
majordomus_release_analysisVeřejný povrch schopností tohoto stromu proti tomu, který publikoval poslední release, každý jeho pohyb pojmenovaný s důvodem, proč se počítá tak, jak se počítá, a nejmenší verze, kterou tento strom smí proto deklarovat. Úroveň kompatibility se měří z kontraktu, ne čte z předmětů commitů: schopnost, trasa, nástroj MCP, příkaz nebo povinné pole kteréhokoli ze dvou schémat, které volající mohl držet a už nemůže, je zásadní změna, ať se commit, který je odstranil, nazval jakkoli. Co o sobě commity řekly, se nese vedle verdiktu jako důkaz a odpověď říká, kdy se obojí rozchází. |
release.analysis | query | ReleaseAnalysisInput → ReleaseVersionPlan | čtení — nic nemění |
majordomus_changelogKaždý release, který vrstva eviduje, od nejnovějšího, s dosud nevydanou prací na prvním místě. Rozhodnutí sekce jsou ADR datované v okně tohoto releasu, její změny konvenční commity v jeho rozsahu, její artefakty vlastní důkazy záznamu. Nic z toho není psáno ručně a sekce, kterou nešlo přečíst, to říká, místo aby se jevila jako prázdná. |
release.changelog | query | ReleaseChangelogInput → ReleaseChangelog | čtení — nic nemění |
majordomus_release_nextNa co exekutor integrace zvedá verzi trunku, když přistává head (ADR 0134): verze, kterou trunk deklaruje, jak daleko head posouvá veřejný kontrakt změřený proti commitnutému registru trunku, co ten posun vyžaduje podle režimu verze, spodní mez repozitáře z `release.floor` v politice, třída výjimky, která mez snížila, pokud každá změněná cesta spadá do jedné, větší z požadavku a meze, a verze trunku jím zvýšená — s jednou větou na krok. Vše se čte z gitu na dvou refech, takže odpověď nezávisí na tom, který spustitelný soubor běží, ani na vlastní verzi větve, a proto opakované přistání nemůže zvýšit dvakrát. Rozhoduje a nic nezapisuje; vstup, který nelze přečíst, se odmítne, nehádá se. |
release.next | query | ReleaseNextInput → LandingDecision | čtení — nic nemění |
majordomus_release_versionVerze, kterou deklaruje manifest crate — jediné místo, kde se píše — verze, kterou shellový nástroj vypisuje ze své projekce `share/version.txt`, a zda je tato projekce aktuální — otázka, kterou odmítá `generate --check` a na které staví kontrola `scripts/release-version --check`. Pak další verze, což je odpověď veřejné smlouvy: verze, kterou `release analyze` vyžaduje oproti poslednímu releasu — deklarovaná verze, pokud už smlouvu splňuje, jinak nejmenší, kterou smlouva dovoluje, a nejmenší release nad posledním, když smlouva žádný nad ním nevyžaduje — přičemž `decided_by` jmenuje, kdo odpověděl. Je to tentýž výběr releasu, na který `release bump` zvyšuje, když není jmenován cíl, takže zpráva a zapisovatel se nemohou rozejít. Když smlouvu nelze změřit — chybí publikovaná základna, verze nejsou tři čísla, nebo jiná chyba činí plán nesolidním, plán, ze kterého `release bump` odmítá zapisovat — základna je odmítnuta, ne hádána: `next` chybí, `decided_by` je `undecided` a `contract_unreadable` nese každou chybu, jednu na řádek. Zvýšení, které implikují konvenční commity od posledního releasu, verze, kterou by vytvořilo, a samotné commity se nesou vedle jako důkaz a nikdy neodpovídají za `next` místo smlouvy. |
release.version | query | Prázdné → ReleaseVersionReport | čtení — nic nemění |
majordomus_repositoryKořen repozitáře, sekce vrstvy, stav gitu, režim zjišťování, přítomné druhy, každá diagnostika a spočítaný registr schopností. |
repository.info | query | Empty → RepositoryReport | čtení — nic nemění |
majordomus_scopeDeklarace rozsahu tak, jak byla přečtena, odkud pochází (vlastní repozitáře, nebo výchozí z distribuce) a každý sledovaný soubor sečtený proti ní: kolik jich je uvnitř, kolik venku z každého důvodu a které. |
repository.scope | query | Prázdné → ScopeReport | čtení — nic nemění |
majordomus_scope_classifyZda je cesta relativní k repozitáři uvnitř, nebo vně rozsahu, důvod, když je vně, a vzor či limit, který rozhodl; existující soubor se posuzuje podle názvu, pak velikosti, pak obsahu. |
repository.scope_classify | query | ClassifyInput → Classification | čtení — nic nemění |
majordomus_rule_provesJeden test — podle identity nebo podle cesty, kterou jej pravidlo jmenuje — s každým pravidlem, které jej jmenuje, a pravidly, která by zůstala bez jakéhokoli důkazu, kdyby byl smazán. Toto je opak rules.show a čte stejné odvození, takže se oba směry nemohou rozcházet. Je to otázka, kterou nešlo položit, dokud relace šla jen jedním směrem: před smazáním nebo přejmenováním případu, co přestane být vynucováno. |
rules.proves | query | RuleTestInput → TestSubjects | čtení — nic nemění |
majordomus_rulesCelý korpus pravidel spojený se stromem a ledgerem: za každé pravidlo jeho třída, režim vynucování, validátor a případy, které jmenuje, zda je každý ve stromě, provedení za každým, kontroly CI, které je spouštějí, a věta vysvětlující, jak byl stav odvozen. Součty počítají celý korpus i při filtrované odpovědi a nálezy jmenují každé pravidlo, jehož deklarovanou třídu důkaz nepodporuje. Drží se po stavu checkoutu, nikdy déle: ledger je soubor, který se mění mimo tento proces, a jeho úprava, úprava validátoru nebo jakéhokoli sledovaného souboru, nový nesledovaný soubor, commit nebo nový ref je nová odpověď. |
rules.report | query | RulesReportInput → RulesReport | čtení — nic nemění |
majordomus_ruleJedno pravidlo s úplným důkazem: validátor a případy, které pojmenovává, provedení za každým, kontroly, které je spouštějí, pravidla, na kterých závisí, a pravidla, která závisejí na něm — každé se stavem, ve kterém je, protože pravidlo je dokázáno jen tak daleko, jak jsou jeho závislosti — a, když není dokázáno, jedna věta říkající, co by muselo platit, aby bylo. Pravidlo, které tento repozitář nedeklaruje, je not-found, ne prázdná odpověď, protože překlep, který by se četl jako 'toto pravidlo nemá důkaz', je jediná odpověď, kterou tato schopnost nesmí dát. |
rules.show | query | RuleInput → RuleDetail | čtení — nic nemění |
majordomus_servedNejnovější zaznamenané pozorování každého nasazení, znovu posouzené vůči commitu (HEAD, pokud není pojmenován jiný). Záznam dál dokazuje každý commit, který jeho servírovaný build obsahuje, a přestane dokazovat ve chvíli, kdy dotazovaný commit mezi nimi není; záznam, který nic nepřijal, nedokazuje nic. Nepoužívá síť a nic nezapisuje. |
served.show | query | ShowInput → ServedStanding | čtení — nic nemění |
majordomus_serverKde stojí server tohoto checkoutu — absent, starting, ready, outdated nebo stale — měřeno proti tomu, co by poskytoval tento spustitelný soubor; jak daleko je strom, který poskytuje, od vzdáleného trunku (`trunk`: current, lagging, stale, unjudged nebo unmeasured proti `checkout.trunk_distance` politiky, k poslednímu fetchi); lease, který tento proces drží, když je serverem; a, pokud `checkouts` nezúží výběr jen na tento, každý checkout, který git pro repozitář eviduje, primární první, každý se svým lease, postavením a důvodem a s peery, které hlásí jeho server. `checkouts: this` přečte jeden lease, otestuje jeden server a nevyjmenuje žádný jiný checkout, což je cena, kterou má platit volající, který se ptá jen na checkout, ve kterém je. Čte se z lease souborů a ze serverů při každém volání; nic se necachuje, protože lease zapisují jiné procesy. |
server.status | query | ServerStatusInput → ServerStatus | čtení — nic nemění |
majordomus_session_identityRepozitář, checkout, otevřená epizoda a relace providera, každé s kanonickou hodnotou, kterou tento spustitelný soubor vypočítá, a vedle ní zápisem každého úložiště. Úložiště zaznamenávají repozitář někdy jako absolutní cestu k .git, jindy jako URL remote, worktree jako cestu i jako digest a relaci jako id epizody i UUID providera; tento povrch to říká, aby čtenář nikdy neporovnával dva zápisy různých věcí a nedošel k závěru, že se neshodují. |
session_domain.identity | query | Prázdné → IdentityReport | čtení — nic nemění |
majordomus_session_machineKaždý stav, v němž může být epizoda, zda je koncový a kam se může přesunout; každý přechod — open, resume, checkpoint, detach, close, recover — se stavy, mezi nimiž běží, a zda stav vůbec posouvá. Odvozeno z typů, takže diagram, který se rozchází s kódem, nemůže existovat. Na čem stroj záměrně nezávisí, je řečeno, ne ponecháno k dedukci: na stavu úlohy, což je ADR 0052. |
session_domain.machine | query | Empty → MachineReport | čtení — nic nemění |
majordomus_shell_checkKaždá shellová jednotka pod bin/, lib/, scripts/, share/, .githooks/ a .claude/hooks/ — podle řádku interpretu nebo názvu .sh, tak jak by ji commitoval git, odkazy se nesledují — proti .ai/repo/automation/inventory.jsonl: nedeklarovaná jednotka, záznam, jehož jednotka zmizela, výjimka bez důvodu nebo podmínky odstranění, dispozice mimo A-F, duplikát a záznam mimo kanonické pořadí jsou každé zjištění, které pojmenovává soubor a nápravu. Čte jen strom a index gitu; žádný build a žádná síť. |
shell.check | query | Empty → ShellReport | čtení — nic nemění |
majordomus_skill_explainJedna dovednost celá: její autorská identita, stav a značka původu, každý test, který ji jmenuje, se stavem posledního zaznamenaného běhu a příkazem, který ho reprodukuje, její stránka, doktrína a kontroly, každé vyvolání podle cesty a řádku, její postavení a zjištění o ní. Samotný soubor zůstává na `majordomus://skill/<id>`. |
skills.explain | query | SkillExplainInput → SkillStatus | čtení — nic nemění |
majordomus_skillsKaždá dovednost, kterou index drží, každá s testy, které ji jmenují, a stavem důkazů jejich posledních běhů, její projekcí stránky, doktrínou a kontrolami, které ji drží, každým vyvoláním, které na ni odkazuje, a postavením, které z toho vyplývá: proven, partial, orphan, invalid nebo not_required pro dovednost ve stavu konceptu či zastaralou. |
skills.status | query | Empty → SkillStatusList | čtení — nic nemění |
majordomus_skills_verifyKaždý nález nad dovednostmi: soubor, který porušuje kontrakt dovednosti, aktivní dovednost, kterou nejmenuje žádný test nebo ji nic nevyvolává, test, jehož poslední běh selhal, test nebo vyvolání jmenující dovednost, která neexistuje — každé selhání — a důkazy, které nejsou aktuální, chybějící stránka nebo chybějící kontrola, každé varování. |
skills.verify | query | Prázdné → SkillVerification | čtení — nic nemění |
majordomus_trace_commitJeden commit s úkolem a milníkem, kterým sloužil, nebo fakt, že žádný nelze najít. Přičtený, když ho drží větve právě jednoho úkolu, nejednoznačný, když ho drží větve pojmenovávající dva úkoly, a nepřičtený, když ho nedrží žádná větev pojmenovávající úkol — což je buď práce commitnutá bez kontraktu provedení, nebo větev smazaná po svém mergi, a odpověď to říká, místo aby mezi nimi hádala. |
trace.commit | query | TraceCommitInput → CommitAttribution | čtení — nic nemění |
majordomus_trace_issueJeden úkol s větvemi, které ho pojmenovávají — lokálními i vzdálenými sledovacími, kde větev má už jen remote — a u každé s commity, které drží a trunk ne: měřeno proti trunku, dokud je větev otevřená, a proti prvnímu rodiči merge commitu, který ji přinesl, jakmile je mergnutá. Větev, která se dostala do trunku bez vlastního merge commitu, to říká a nic si nenárokuje, protože její commity nelze od trunkových rozeznat. Milník pochází z kanonického záznamu úkolu, což je jediná hrana, kterou git nedrží, a `declared` říká, zda projektový model toto id vůbec má — repozitář bez plánu stále dostane větve a překlep se stále nemůže číst jako práce, kterou nikdo neudělal. |
trace.issue | query | TraceIssueInput → IssueTrace | čtení — nic nemění |
majordomus_traceabilityKaždý úkol, který jmenuje alespoň jedna větev, s jeho větvemi a commity, každý deklarovaný úkol, který nejmenuje žádná větev, a nejnovější úsek trunku s každým commitem přiřazeným úkolu, jehož větve jej drží, nebo ohlášeným jako nepřiřazený. Součty počítají obě strany, takže podíl trunku, který nezohledňuje žádný kontrakt provádění, je číslo, ne dojem. Čte se z gitu při každém volání: historie se mění mimo tento proces. |
trace.report | query | TraceReportInput → TraceReport | čtení — nic nemění |
majordomus_web_surfacesWebová topologie v pořadí priority tras, s připojením, kategorií, viditelností, druhem, producentem, artefaktem, runtime funkcí každého povrchu a původem každé hodnoty, která by čtenáře mohla překvapit; a které id se poskytují, publikují a nabízejí člověku. Odpovídá z vyřešení, ze kterého tento proces poskytuje, takže se nemůže rozejít s tím, co směruje router nebo co vypisuje domovská stránka. |
web.surfaces | query | Empty → SurfaceReport | čtení — nic nemění |
majordomus_why_areasKaždá provozní oblast, kterou katalog deklaruje, každá s veřejnými okamžiky, které pod ni spadají. Členství se odvozuje z okamžiků a nikdy se nevypisuje ve vlastním souboru oblasti. |
why.areas | query | Prázdné → AreaList | čtení — nic nemění |
majordomus_why_audiencesKaždé publikum, které katalog deklaruje, s veřejnými momenty, které ho jmenují. Členství se odvozuje z momentů a nikdy se neuvádí ve vlastním souboru publika. |
why.audiences | query | Prázdné → AudienceList | čtení — nic nemění |
majordomus_why_diagnoseCo implikují vlastní příznaky čtenáře: okamžiky, na které se výběr vyřeší, provozní oblasti a publikum, k nimž se přiklánějí, a schopnosti, příkazy, tvrzení, pravidla a případy užití, které na ně odpovídají — každé nese okamžiky, které ho vytvořily. Počítání, ne odhad: žádné vážení a žádná procenta. |
why.diagnose | query | DiagnoseInput → Diagnosis | čtení — nic nemění |
majordomus_whyKaždý provozní moment, který tento repozitář drží, zúžený kterýmkoli z fasetů, které hlásí sám katalog, s publikem, oblastmi, odvozenými filtry a počty. Výchozí je veřejný katalog; předejte status=any pro koncepty také. |
why.list | query | Query → CatalogueView | čtení — nic nemění |
majordomus_why_momentJeden provozní moment celý: jak vypadá, proč nastává, kolik stojí, co s tím tento nástroj dělá a každá relace odvozená z jeho metadat — odpovědnosti, k nimž patří jeho tvrzení, momenty, které jej jmenují, a momenty jemu nejbližší podle sdílené oblasti, publika a štítku. |
why.moment | query | MomentInput → MomentDetail | čtení — nic nemění |
majordomus_why_validateKaždý nález nad katalogem: odkaz, který nevede nikam, s nejbližším kandidátem; duplicitní identita; název souboru, který se neshoduje s jeho id; a veřejný záznam, který nesplňuje laťku, již jeho stav slibuje. Chyby činí katalog neplatným; varování ne. |
why.validate | query | Empty → ValidationReport | čtení — nic nemění |
majordomus_worktree_inspectKanonická cesta větve, odvozená pouze z jejího názvu, zda větev existuje, zda tu cestu něco zabírá, worktree, které větev drží, když nějaké je, a co brání jeho vytvoření nebo migraci. Odpověď pro větev, která ještě neexistuje, je cesta, kterou by použilo `worktree create`. |
worktree.inspect | query | InspectInput → InspectReport | čtení — nic nemění |
majordomus_worktree_migration_planJeden krok na každý špatně umístěný worktree s větví: kde je, kam patří, jak by se přesunul, necommitnutá práce, která se přesouvá s ním, a co ho blokuje; plus výjimky, které migrace z podstaty nemůže řešit — detached worktrees, zastaralé registrace, primární checkout mimo trunk — každá s tím, co s ní člověk udělá. Plánování nic nemění; `majordomus worktree migrate` jej aplikuje s otiskem pořízeným před každým přesunem i po něm. |
worktree.migration_plan | query | Empty → MigrationPlan | čtení — nic nemění |
majordomus_worktree_statusJeden worktree — vlastní repozitáře, nebo ten, který drží adresář jmenovaný volajícím — s jeho postavením, branchí, kanonickou cestou, spočtenou necommitnutou prací, informací, zda je tam, kam patří, a počtem chyb celé topologie. To, co agent čte, než začne, a podle čeho rozhoduje guard. |
worktree.status | query | StatusInput → StatusReport | čtení — nic nemění |
majordomus_worktreesRepozitář, kontejner, trunk a jak bylo rozhodnuto, každý registrovaný worktree s jeho postavením (primary, canonical, misplaced, detached, missing), jeho necommitnutou prací, vzdáleností od upstreamu a úkolem, který jeho větev prokazatelně jmenuje, každá lokální větev s worktree nebo bez něj a zda je způsobilá k úklidu, každá diagnostika s kódem a nápravou a součty. Čte se z gitu při každém volání: topologie se mění mimo tento proces. |
worktree.topology | query | Prázdné → RepositoryTopology | čtení — nic nemění |
majordomus_worktree_trunk`HEAD` checkoutu a lokální větev trunku, každé započítané proti vzdálenému sledovacímu trunku — commity pozadu a napřed, přičemž probíhající merge počítá, co přináší — k poslednímu fetchi, jehož čas je součástí odpovědi; posuzováno proti `checkout.trunk_distance` politiky jako `current`, `lagging`, `stale`, `unjudged` (není deklarován práh) nebo `unmeasured` (není vzdálený trunk), s příkazy, které ho aktualizují. Co vykresluje doctor a co o stromu, který server poskytuje, říkají `server.status` a instrukce MCP (`project.a-checkout-serves-the-current-trunk`). Nic nestahuje a nic nezapisuje. |
worktree.trunk | query | StatusInput → TrunkDistance | čtení — nic nemění |
majordomus_worktree_uncommittedKaždý propojený worktree, jehož index nebo pracovní strom drží změny, které žádný commit nenese: kolik cest (staged, unstaged, untracked, conflicted), kdy byla provedena nejstarší změna (nejstarší čas úpravy mezi změněnými cestami, u smazané ho zastupuje stav souboru indexu) a co práci drží — záznam aktivní úlohy, otevřená epizoda, která není opuštěná, nebo proces, jehož pracovní adresář je uvnitř. Práce, kterou nic nedrží a která je starší než práh, je `abandoned`, s příkazem, který by ji dostal na vzdálený ref `rescue/`; ten se navrhuje, nikdy nespouští. Práh je `session.stranded_after` z politiky, pokud `older_than` nejmenuje jiný. Čte každý worktree a žádný nezapisuje: každý status běží bez volitelných zámků, takže se neobnovuje žádný index. |
worktree.uncommitted | query | UncommittedInput → UncommittedReport | čtení — nic nemění |
Zdroje
The builtin capabilities that answer a URI, and the shape of every declarative object's URI. resources/list returns these first, then one entry per object of the layer (2955 in this repository, listed on the registry page).
majordomus://artifactsVypsat generované artefaktyartifacts.listmajordomus://commandsKaždý příkaz, jeden řádek na příkazcommands.listmajordomus://commit/planCo by pracovní strom commitovalcommit.planmajordomus://commit/scopesSlovník rozsahůcommit.scopesmajordomus://continuityCo drží životní cykluscontinuity.statemajordomus://convergenceDrží se nějaká práce tam, kde se může ztratit?convergence.reportmajordomus://deploymentsNasazenídeploy.listmajordomus://designDesignový systémdesign.systemmajordomus://devcontext/policyVlastní pravidla kompilátorudevcontext.policymajordomus://directoriesAdresářové smlouvy vrstvydirectories.listmajordomus://economicsShrnutí ekonomiky tokenůeconomics.summarymajordomus://editorsProjekce pro editory a agentyeditors.statusmajordomus://environment/preflightZda je Majordomus zde v platnosti a co to dokazujeenvironment.preflightmajordomus://environmentProstředí repozitářeenvironment.statusmajordomus://evidenceKaždé tvrzení proti zaznamenaným důkazůmevidence.reportmajordomus://executionsVýpis provedeníexecutions.listmajordomus://executions/protocolKontrakt živého kanáluexecutions.protocolmajordomus://gates/completionZda lze tuto úlohu označit za hotovougates.completionmajordomus://gatesModel CIgates.modelmajordomus://graphsVypsat grafygraph.listmajordomus://healthZdraví tohoto procesuhealth.reportmajordomus://intentsKaždý intent s odvozenou fází a verdiktemintents.listmajordomus://knowledge-candidatesKandidáti čekající na reviewknowledge_base.candidatesmajordomus://knowledge-statusZda deriver ještě zapisujeknowledge_base.statusmajordomus://lifecycle/episodesKaždá otevřená epizodalifecycle.episodesmajordomus://lifecycle/recoveryCo úložiště potřebuje, aby někdo udělallifecycle.recoverymajordomus://mcpProjekce MCP tohoto registrumcp.projectionmajordomus://meshMesh na první pohledmesh.statusmajordomus://modelsKatalog modelůmodels.listmajordomus://obligations/closureCo tato úloha ještě dlužíobligations.closuremajordomus://obligationsKaždá existující povinnostobligations.vocabularymajordomus://planCelý odvozený plánplan.modelmajordomus://product/domainsDoményproduct.domainsmajordomus://productFunkceproduct.featuresmajordomus://product/matrixFunkce a rozhraníproduct.matrixmajordomus://product/providersPoskytovateléproduct.providersmajordomus://qualityZpráva o kvalitě veřejného APIquality.reportmajordomus://quality/rustdocIntegrita stromu rustdocquality.rustdocmajordomus://reasoning/advisorsPoradci a co umějí nyníreasoning.advisorsmajordomus://reasoningStav uvažování relacereasoning.statusmajordomus://changelogChangelogrelease.changelogmajordomus://repositoryStav repozitáře a indexurepository.infomajordomus://scopeRozsah repozitářerepository.scopemajordomus://rulesKaždé pravidlo proti důkazu, který pro ně existujerules.reportmajordomus://servedCo každý deployment naposledy obsluhovalserved.showmajordomus://serverSdílený server a každý server repozitářeserver.statusmajordomus://session/identityCo identifikuje tento checkout a jak to který store zapisujesession_domain.identitymajordomus://session/machineŽivotní cyklus epizody jako datasession_domain.machinemajordomus://skillsKaždá dovednost s odvozeným postavenímskills.statusmajordomus://traceabilityCelý graf práce nad větvítrace.reportmajordomus://webKaždý webový povrch, rozřešenýweb.surfacesmajordomus://why/areasProvozní oblastiwhy.areasmajordomus://why/audiencesPublikumwhy.audiencesmajordomus://whyKatalogwhy.listmajordomus://worktreesCelá topologieworktree.topologymajordomus://<kind>/<identity>jeden na objekt vrstvy; čtení rozloží URI přesně jako nástroj objektu a trasa HTTP
Protokol
- název serveru
- majordomus 1.0.0-alpha.2
- verze protokolu
- 2025-06-18, 2025-03-26, 2024-11-05
- transporty
- stdio (
majordomus mcp) a MCP přes HTTP na/mcpna sdíleném serveru - vedlejší účinky
- Do repozitáře zapisuje 8 nástrojů:
majordomus_continuity_publish,majordomus_continuity_resume,majordomus_continuity_sync,majordomus_execution_start,majordomus_intent_propose,majordomus_plan_transition,majordomus_reasoning_record,majordomus_recover_orphans; a lease v adresáři lokálního stavu, dokud server běží
Tvrzení o povrchu MCP a sdíleném serveru
Připojeno souborem, který každé tvrzení implementuje; každé odkazuje na svou stránku s implementací a testem, který je dokazuje.
- zaručeno mcp-stdio-surfaceSpustitelný soubor v Rustu servíruje AI vrstvu repozitáře klientovi MCP přes stdio, přičemž na stdout jsou samotné rámce protokolutest: test/cases/72_rust_mcp.sh
- zaručeno mcp-shared-serverJeden sdílený server obsluhuje checkout: první majordomus mcp naváže loopback HTTP se Swagger UI a MCP přes HTTP vedle své stdio relace a zaloguje URL, každý další klient toho checkoutu se k němu připojí a končí, když odejde poslední klienttest: test/cases/90_mcp_shared_server.sh
- zaručeno mcp-lease-resilienceNic, co klient po sobě nechá, nezamkne jiného klienta ze sdíleného serveru; poškozený, prázdný, zastaralý nebo opuštěný lease se převezme a pojmenuje, klient, který nemůže sdílet, je obsloužen sám s důvodem zalogovaným a signál odstraní lease dřív, než server zemřetest: apps/majordomus-cli/tests/mcp_shared.rs
- zaručeno mcp-lease-lostServer, jehož lease byl převzat, to říká na endpointu, který sonduje každý čtenář, odmítá přijmout nového klienta a hlásí, že to, co popisuje jeho zdraví, je jiný proces; relace, které už měl, pokračují a skončí s nímtest: apps/majordomus-cli/tests/lease_lost.rs
- zaručeno mcp-peersKaždý klient připojený k serveru checkoutu je peer pojmenovaný vlastním initialize a majordomus_peers vypíše každého pracovníka repozitáře - jeho vlastní nástěnku i nástěnku každého jiného checkoutu, každý peer označený worktree, ve kterém pracuje - zatímco majordomus_announce říká ostatním, na čem pracuje a kterých cest se chce dotknouttest: test/cases/250_the_board_is_repository_wide.sh
- zaručeno mesh-off-by-defaultŽádný objevovací socket meshe se neotevře, dokud repozitář necommituje zapnutou deklaraci meshe, a vypnutá nebo chybějící deklarace se hlásí jako důvod, nikoli jako chybatest: apps/majordomus-cli/tests/mesh.rs