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 init

Vytvoří vrstvu .ai/ v tomto repozitáři a odmítne přepsat existující.

Vytvoří vrstvu .ai/ v tomto repozitáři a odmítne přepsat existující.

  • generated-output-mutating
  • systém
  • běží před init

Jediný příkaz, který běží dříve, než vrstva .ai/ existuje. Existující vrstvu odmítne; --extend přidá jen to, co chybí, a nic nepřepíše. S --personal je vrstva osobní vrstvou jedné osoby ve sdíleném repozitáři: nezapíše se žádný řádek do .gitignore, vrstva se místo toho kryje v info/exclude adresáře gitu a init skončí s kódem 10, pokud git status po něm nevypadá stejně jako před ním. --shared předá osobní vrstvu týmu odstraněním tohoto krytí.

Syntaxe

majordomus init [--extend] [--personal | --shared]

Ž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: update, migrate, recover.

Čte

  • share/skeleton/ai

Zapisuje

  • .ai/manifest.yaml
  • .ai/README.md
  • .ai/repo/
  • .ai/local/state/
  • .gitignore
  • .git/info/exclude

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
  • 13 interní chyba
  • 15 odmítnuto

Nastavení a odmítnutí přepsat

init je jediný příkaz, který běží dřív, než vrstva .ai/ existuje. Zaseje manifest, politiku, profily, vendorovanou základní sadu pravidel a prázdné sekce z kostry a nikdy se nedotkne .ai/local/.

Repozitář bez vrstvy AI

--extend
ne
již nainstalováno
ne

Pro tento repozitář platí

# An empty git repository: no AI layer at all.
git commit -q --allow-empty -m base 2>/dev/null || true

Spustit

$ majordomus init

Výstup obsahuje

  • ^created$
  • .ai/repo/policy.yaml
  • next: majordomus update

ukončení 0

Kostra se zkopíruje, přidá se řádek ignorování pro .ai/local/ a vypíšou se dva řádky hooků, které politika potřebuje, spolu s příkazem, který ověří, že byly přidány. init hooky sám neinstaluje.

Repozitář, který už nějaká pravidla má

--extend
ne
již nainstalováno
ano

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 init

Výstup obsahuje

  • již existuje

ukončení 15

Kód 15 je ODMÍTNUTO, ne chyba. Přepsat politiku, kterou někdo upravil, je přesně ten druh tichých ztrát, jemuž má tento nástroj zabránit, takže se zastaví a jmenuje příznak, který přidává bez přepisování.

Doplnění chybějícího pomocí --extend

--extend
ano
již nainstalováno
ano

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 init --extend

Výstup obsahuje

  • není co přidat

ukončení 0

--extend doplní jen soubory, které vrstvě chybí, a nic nepřepisuje. Na úplné vrstvě to řekne; soubory pod .ai/repo/ patří repozitáři od okamžiku, kdy vznikly.

Reference

Vytvořit vrstvu AI repozitáře, .ai/, z kostry nástroje. Nic neinstaluje: nástroj zůstává tam, odkud byl spuštěn, nedotkne se žádného hooku ani souboru shellu a .majordomus/ se nikdy nevytvoří.

Čte: skeleton pod share/skeleton/ a standardní balíček pravidel pod share/standard/majordomus/. Zapisuje: .ai/README.md (protokol, čitelný bez nástroje) a .ai/manifest.yaml (registr sekcí, ai-repository/v1); pod .ai/repo/ sledovanou polovinu: jeho README.md, policy.yaml, profiles/, prompts/, rules/ s jeho README.md, vendorovanou baseline rules/vendor/majordomus/ (manifest a soubory pravidel, bajt po bajtu balíček, který nástroj dodává) a prázdné rules/project/, knowledge/sources.yaml vedle prázdného knowledge/curated/, workflows/, skills/, adrs/, project/; pod .ai/local/ vlastní polovinu checkoutu: state/ osazené decisions.md a open-questions.md a prázdné state/handovers/ a state/checkpoints/, plus cache/, prompts/ a session-contexts/; a jeden řádek .ai/local/ v .gitignore, přidaný jednou. Vše pod .ai/repo/ od té chvíle patří repozitáři; novější nástroj to nepřepisuje.

Odmítne (15), když .ai/ již existuje, pokud není --extend, který přidá každý soubor, jenž kostra dodává a repozitáři chybí, a nic nepřepíše; (15), když .ai/ existuje bez manifestu, a pojmenuje volbu mezi odsunutím stranou a --extend; a (15), když data projektu stále leží pod .majordomus/, v rozvržení před .ai, a pojmenuje majordomus migrate.

Neinstaluje git hooky. Vypíše dva řádky, které hook potřebuje, a příkaz majordomus doctor, který ověří, že byly přidány.

$ majordomus init
created
  .ai/README.md
  .ai/manifest.yaml
  .ai/repo/README.md
  .ai/repo/policy.yaml
  .ai/repo/profiles/
  .ai/repo/prompts/
  .ai/repo/rules/README.md
  .ai/repo/rules/vendor/majordomus/
  .ai/repo/knowledge/
  .ai/repo/workflows/
  .ai/repo/skills/
  .ai/repo/adrs/
  .gitignore:.ai/local/
local state: .ai/local/state/ (ignored by git; this checkout's own)
next: majordomus update      # generate the provider instruction files named in the policy
next: majordomus doctor      # verify nothing is declared that is not wired

$ majordomus init
majordomus: .ai/ already exists in … (use --extend to add what is missing; nothing is overwritten)
$ echo $?
15

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.

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

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