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í.
Jen kódy, které tento příkaz může vrátit. Úplný kontrakt je na indexu příkazů.
0ok
2použití
10kontrakt nesplněn
13interní chyba
15odmí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 initcreated .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 policynext: majordomus doctor # verify nothing is declared that is not wired$ majordomus initmajordomus: .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.