Přeskočit na obsah

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.

Syntaxe

majordomus doctor [--json]

Životní cyklus

  1. Nastavit
  2. Začít
  3. Pracovat
  4. Ověřit
  5. Uzavřít
  6. Prozkoumat

Další příkazy v této fázi:watch, history, search, doctrine, version, knowledge, rules, bench, archive.

Čte

  • .ai/repo/policy.yaml
  • .ai/repo/profiles/
  • git hooky
  • .ai/local/state/
  • .ai/repo/rules/

Zapisuje

Nic. Tento příkaz je jen pro čtení.

Návratové kódy

Jen kódy, které tento příkaz může vrátit. Úplný kontrakt je na indexu příkazů.

  • 0 ok
  • 2 použití
  • 10 kontrakt nesplněn
  • 12 chybě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ázkaKde 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í:

  1. policy.yaml se naparsuje; version podporováno; žádné neznámé klíče na žádné úrovni.

  2. Každý profiles/*.yaml se parsuje; každý profil, na který politika odkazuje, existuje; žádné neznámé klíče.

  3. 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.

  4. 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í.

  5. Projekce označená always_loaded: true je v mezích context.always_loaded_budget_lines.

  6. Každá cesta relativní k repozitáři, na kterou se odkazuje z vždy načítané projekce, se vyřeší.

  7. Žá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.

  8. Limity retence nepřekročeny na state/ledger.jsonl a state/handovers/.

  9. 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.

$ majordomus doctor
OK   policy      .ai/repo/policy.yaml — parsed, version 1
OK   profiles    4 files — parsed
FAIL wiring      finish-contract — bin/majordomus is not invoked by .git/hooks/pre-push  [reproduce: grep -n 'majordomus finish' .git/hooks/pre-push]
OK   projection  CLAUDE.md — content matches its stamp
FAIL budget      CLAUDE.md — 212 lines, budget 150  [reproduce: wc -l CLAUDE.md]
OK   links       3 projections — all references resolve
OK   retention   ledger 412 lines, cap 5000
INFO env         bash 3.2.57, git 2.45, yq 4.44, jq 1.7
doctor: 2 failures
$ echo $?
10

Důkazy

Každý případ níže běží v CI na Linuxu i macOS. Web se odmítne sestavit, pokud veřejný příkaz nemá behaviorální případ, negativní případ nebo ukázku.

Ukázka

Testuje test/cases/34_command_fixtures.sh, který přehraje fixture a porovná ji s tím, co příkaz vypíše.

Záruky, které tento příkaz nese

Prohledává názvy a popisy všech stránek, které tento web publikuje.