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.

Adopce

první den, první týden, více pracovníků, odebrání

Vykresleno z docs/ADOPTION.md — tentýž Markdown, který ukazuje GitHub.

Majordomus sedí kolem existujícího workflow. Nic se nepřepisuje.

První den: jeden repozitář, jeden člověk

curl -fsSL https://majordomus.dev/install.sh | sh

cd <your project>
majordomus init          # .ai/ with the policy, profiles, rules, prompts and workflows
majordomus update        # CLAUDE.md, AGENTS.md, GEMINI.md generated from the policy
majordomus doctor        # tells you exactly which hook lines are missing

Přidejte dva řádky hooků, které init vypsal, a pak spusťte doctor znovu.

Co druhý běh skutečně říká

Ne „nic“. Slib nuly tu kdysi stál a mýlil se o 112 nálezů (ADOPTION_FIRST_RUN.md je záznam), takže tato sekce je místo toho měření: repozitář git init s README, jedním zdrojovým souborem a jedním commitem, převzatý doslovným provedením čtyř příkazů výše. Váš repozitář se bude lišit v detailech, ne v tvaru.

FAIL bootstrap   README.md — does not name AGENTS.md; a reader cannot find the agent bootstrap
WARN clone       unpushed — commits on no remote: main(1)
INFO doctrine    vendor evidence — v0.5.0 is a packaged distribution, so the tests, claims
                 and CI each rule cites are not here to read
INFO adr         .ai/repo/adrs/ — no decisions; nothing to validate
INFO skill       .ai/repo/skills/ — no skills; nothing to validate
...
OK   ...         43 of them

Čtěte to podle verdiktu, protože ty tři znamenají různé věci:

  • FAIL je vaše a normálně je jedno. update napsal AGENTS.md; kontrola žádá, aby na něj váš README.md čtenáře odkázal. Opraví to jeden řádek a běh je pak čistý. Každé další FAIL, které vidíte, se také týká vašeho repozitáře — projekce, kterou jste upravili ručně, hook, který je přítomen, ale není spustitelný, .ai/local/, který byl commitnut — a každé jmenuje příkaz, který jej opraví.
  • WARN je skutečnost o tomto checkoutu, ne vada. Repozitář bez remote zatím hlásí unpushed; skončí, jakmile pushnete. doctor také varuje, když běží déle, než je jeho rozpočet, což na zatíženém stroji říká něco o stroji.
  • INFO je kontrola, která neměla na co se dívat, a stojí za to ji jednou přečíst, abyste věděli, co není ověřováno. no decisions; nothing to validate přestane ten den, kdy napíšete ADR. vendor evidence je trvalé a vysvětleno níže.

majordomus doctor končí s 10, dokud stojí jakékoli FAIL, což činí řádek pre-commit hodným přidání. WARN a INFO příkaz nikdy neshodí.

Nula tedy je dosažitelná a v naměřeném běhu to stálo jeden řádek — větu v README.md jmenující AGENTS.md. Po této úpravě tentýž příkaz hlásí žádná selhání a končí s 0, přičemž dvě varování a informační řádky tam stále jsou a stále nejsou selháními. To je slib, který tato stránka dávala před prvním doctor a nyní dává po první opravě.

Proč doctor ve vašem repozitáři přeskakuje vlastní důkazy

Každé pravidlo v balíčku nese testovací případ a tvrzení, která je dokazují — tests: [test/cases/01_init.sh] a tak dále. To jsou naše důkazy pro naše pravidlo, žijí ve zdrojovém stromu Majordomus a archiv releasu je nedodává: nese bin/, lib/, libexec/, share/ a razítko RELEASE.json. Nainstalovaný nástroj je tedy nemůže číst, řekne to jednou a váš repozitář k ničemu z toho nedrží. Nečeká se od vás, že budete mít test/cases/, docs/CLAIMS.yaml nebo kopii našeho CI workflow, a nic zde o ně nepožádá.

Ve vašem repozitáři se stále kontroluje ta polovina, která putuje s nástrojem: že každé pravidlo jmenuje validátor, který existuje, že příkaz, pod nímž je deklarováno, ho skutečně spouští, a že blokující pravidlo může tento příkaz opravdu zastavit. Pravidlo, které je napsáno, ale není zapojeno, se tady hlásí stále, přesně jako doma.

Commitněte .ai/repo/ a generované soubory. .ai/local/ je vlastní stav tohoto checkoutu — záznam úlohy, ledger, checkpointy, předávky — a init ho ignoruje; nikdy neputuje přes git a čerstvý klon začíná bez něj.

Od té chvíle:

majordomus start "<task>" --scope <paths> [--profile <name>]
# ... the AI worker reads the generated instructions and works ...
majordomus check
majordomus finish --outcome completed --verify-command "<your test command>"

Repozitář, který už má CLAUDE.md

Většina repozitářů, které stojí za dohled, už má ručně psané instrukce pro své nástroje AI. mode: region je ponechá. Majordomus pak vlastní jen text mezi dvěma značkami a vše ostatní kopíruje bajt po bajtu:

# .ai/repo/policy.yaml
projections:
  - provider: claude-code
    target: CLAUDE.md
    mode: region
    always_loaded: true
majordomus update        # appends the region once; the rest of CLAUDE.md is untouched
majordomus doctor        # hashes the region, and reports the host document's length

Co to přináší: úprava mimo značky je věcí samotného repozitáře a nikdy se nehlásí jako drift, zatímco úprava uvnitř nich se zachytí přesně jako u projekce celého souboru. Rozpočet, kontrola odkazů i kontrola počtů měří region, takže každé selhání, které doctor hlásí, lze opravit úpravou politiky.

Poškozené značky — neuzavřené, v nesprávném pořadí nebo opakované — se odmítnou, ne hádají, a nic se nezapíše.

Hooky, které jsou dispatchery

Pokud pre-commit spouští každý spustitelný soubor v pre-commit.d/, vložte vyvolání do subhooku a dispatcher nechte být. doctor hledá také v <hook>.d/ a pojmenuje soubor, který ho nese. Subhook, který je přítomen, ale není spustitelný, se hlásí jako nezapojený, protože tak s ním naloží dispatcher.

První týden: upravte politiku, ne projekce

Každé pravidlo, které workery vidí, pochází z .ai/repo/policy.yaml, profilů a pravidel v .ai/repo/rules/. Upravte je a spusťte update. Pokud někdo upraví CLAUDE.md přímo, doctor a watch to oznámí a update odmítne přepsat, dokud se nepodíváte na diff.

Typické první úpravy:

  • snižte always_loaded_budget_lines, pokud je generovaný soubor delší, než chcete, aby jej pracovníci četli v každé relaci
  • změňte profiles.default na routine u repozitáře náročného na údržbu
  • přidat požadavek na ověření specifický pro projekt přidáním profilu

Několik workerů najednou

Dejte každému souběžnému autonomnímu zapisovateli vlastní git worktree. start v každém worktree hlásí každý rozsah, který se překrývá s aktivní úlohou jiného worktree. Nic neblokuje; zpráva je pro člověka, který rozhoduje, kdo kde pracuje.

S jedním pracovníkem nebo pracovníky, kteří běží striktně jeden po druhém, jsou správné prosté větve a worktree jsou režie. README to říká; věřte tomu.

Existující repozitář s historií

Hák pre-push spouští finish --check, které projde, když není aktivní žádná úloha. Nic z minulosti repozitáře se neposuzuje. Dozor zahajte od prvního start.

Přechod z rozvržení před .ai

Repozitáře nastavené před vrstvou .ai/ držely vše pod .majordomus/. Každý příkaz toto rozložení odmítne a pojmenuje ten, který jej přesune:

majordomus migrate --dry-run   # the whole plan, one line per file; writes nothing
majordomus migrate             # git-moves the tracked half into .ai/repo/, moves the state
                               # into .ai/local/state/ after a verified byte-for-byte backup
                               # whose path it prints, re-stamps the projections, runs doctor

Nic pod .majordomus/, co migrace nerozpozná, se nemaže; hlásí se to a adresář zůstane, dokud jej nepřesunete ručně. .majordomus/bin/majordomus je instalace nástroje, nikoli data projektu, a nechává se být. Viz CLI.md.

Odebrání Majordomus

Smažte .ai/, generované projekce a dva řádky hooku. U regionální projekce smažte označený blok z hostitelského dokumentu; vše kolem se nikdy nedotklo.

Co adopce nevyžaduje

  • žádný server, účet, token ani přístup k síti
  • žádná změna ve způsobu spouštění AI nástroje
  • žádná závislost za běhu kromě bash 3.2, gitu a nástroje pro kontrolní součty
  • žádný souhlas celého týmu hned první den; jeden repozitář, jedna osoba stačí, aby se ukázalo, zda kontrakt dokončení něco zachytí

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