Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.
majordomus doctor
Kontroluje pouze správu: je samotný Majordomus v pořádku a je každé vynucování, které deklaruje, skutečně zapojeno i tady?
Kontroluje pouze správu: je samotný Majordomus v pořádku a je každé vynucování, které deklaruje, skutečně zapojeno i tady?
jen pro čtení
systém
aktivní úloha volitelná
--json
Primární zárukou je sesouhlasení zapojení — deklarované vynucování, které žádný hook nevyvolá nebo jehož návratový kód hook spolkne, je selhání, ne procházející řádek. Nečte nic ze serveru checkoutu, jeho leasu ani meshe: zastaralý server hlásí `majordomus serve status`, mesh `majordomus mesh doctor` a zdraví samotného serveru GET /api/v1/health a GET /api/v1/ready.
Jen kódy, které tento příkaz může vrátit. Úplný kontrakt je na indexu příkazů.
0ok
2použití
10kontrakt nesplněn
12chybějící artefakt
Je každé deklarované vynucování skutečně zapojeno?
Primární záruka doctor je smíření: pro každé vynucování, které politika deklaruje, musí cesta existovat, být spustitelná a být vyvolána artefaktem pojmenovaným ve wired_by, aniž by byl jeho exit kód spolknut. Vše ostatní, co hlásí, je sekundární.
Politika deklaruje vynucování, které nic nespouští
hooky nainstalovány
ne
Pro tento repozitář platí
# A repository with Majordomus installed and projections generated, and one commit of work.
"$MJ" init >/dev/null
"$MJ" update >/dev/null
mkdir -p lib docs
echo a > lib/a
echo d > docs/d
git add . && git commit -qm base
Spustit
$ majordomus doctor
Výstup obsahuje
FAIL wiring
doctor-on-commit
ukončení10
Tohle je selhání, které má nástroj zachytit. Politika říká, že kontrola běží při každém commitu; nic ji nespouští. Deklarováno a nezapojeno je horší než chybějící, protože to vypadá jako ochrana.
Oba hooky na místě a respektují exit kód
hooky nainstalovány
ano
Pro tento repozitář platí
# Installed, and the two enforcements the policy declares are actually in place as hooks.
. "$FIXTURE_SETUP/installed.sh"
mkdir -p .githooks
printf '#!/bin/sh\n%s doctor || exit $?\n' "$MJ" > .githooks/pre-commit
printf '#!/bin/sh\n%s finish --check || exit $?\n' "$MJ" > .githooks/pre-push
chmod +x .githooks/pre-commit .githooks/pre-push
git config core.hooksPath .githooks
Spustit
$ majordomus doctor
Výstup obsahuje
OK zapojení
doctor: 0 failure
ukončení0
doctor pojmenovává soubor, který provádí zapojení, takže zpráva je ověřitelná, ne jen uklidňující. Hook, který příkaz vyvolal a zahodil jeho návratový kód, by se stejně hlásil jako nezapojený.
Reference
Je řídicí dozorová vrstva zde skutečná? Pouze čtení. Záměrně blokující: určeno ke spouštění z pre-commit hooku a z CI.
Kontroluje pouze governance — politiku, profily, zapojení každého deklarovaného vynucování, projekce, záznamy a jejich retenci. Nečte nic ze serveru checkoutu, jeho lease ani z meshe, takže čistý report nic neříká o tom, zda je server odpovídající za tento checkout aktuální (I2707). Runtime se čte pomocí:
Otázka
Kde se čte
Je server odpovídající za tento checkout aktuální, nebo zastaralý?
majordomus serve status
Je mesh tady zdravý: identita, důvěra, spojení, runtime, žurnál?
majordomus mesh doctor
Co o sobě hlásí server, včetně mesh?
GET /api/v1/health (health.report)
Umí tento proces odpovědět: lease drží, spustitelný soubor je aktuální?
GET /api/v1/ready (health.ready)
majordomus doctor --help vypíše totéž před svým použitím.
Kontroly v tomto pořadí:
policy.yaml se naparsuje; version podporováno; žádné neznámé klíče na žádné úrovni.
Každý profiles/*.yaml se parsuje; každý profil, na který politika odkazuje, existuje; žádné neznámé klíče.
Zapojení vynucování. Pro každou položku v policy.enforcement: path se vyřeší (na PATH, relativně k repozitáři, absolutně nebo jako cesta ke spustitelnému souboru přímo na řádku hooku) a artefakt pojmenovaný wired_by existuje, je spustitelný, vyvolává majordomus <first arg> a nepohlcuje jeho kód ukončení přes || true nebo || exit 0. Když je hook dispečer, hledá se vyvolání v souboru hooku a v každém souboru jeho adresáře <hook>.d/; nález pojmenuje ten soubor, který ho skutečně nese. Subhook, který vyvolání nese, ale není spustitelný, se hlásí jako nezapojený, protože ho dispečer přeskočí. wired_by: manual se hlásí jako neověřeno, nikdy jako zapojeno. Deklarováno, ale nezapojeno je 10.
Každý projections[].target existuje, jeho poskytovatel má šablonu a jeho položka v obsahu odpovídá razítku, které nese. Chybějící nebo neoznačený → 12; neshoda → 10 (ručně upraveno). Pro mode: region se hash bere jen z oblasti; chybějící nebo poškozené značky se tak hlásí.
Projekce označená always_loaded: true je v mezích context.always_loaded_budget_lines.
Každá cesta relativní k repozitáři, na kterou se odkazuje z vždy načítané projekce, se vyřeší.
Žádné napevno zapsané počty v projekci, která se načítá vždy (posloupnost číslic vedle slov jako agents, files, apps, commands, skills, rules).
Kontroly 5 až 7 posuzují pouze generovaný obsah. U projekce regionu je to region a nikdy hostitelský dokument, aby každé selhání, které doctor hlásí, šlo opravit úpravou politiky.
Limity retence nepřekročeny na state/ledger.jsonl a state/handovers/.
Sondy prostředí: verze bashe, git, jq a shellcheck, pokud je přítomen. Hlásí se jako INFO. Nic v doctor nepotřebuje nástroj nad bash, git a příkaz pro kontrolní součet.