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.

Stav lokální pro checkout žije pod .ai/local/, git jej ignoruje a na novém klonu nebo worktree chybí

Záznam úlohy, kniha, rozhodnutí, otevřené otázky, checkpointy, předávky a uzavřené obálky relací patří checkoutu, který je zapsal. Žijí pod .ai/local/state/, init zapíše do .gitignore jediný řádek .ai/local/ a nic, co Majordomus dělá, je nestaguje ani necommituje. Čerstvý klon nebo nový worktree začíná bez jakéhokoli lokálního stavu a tato nepřítomnost se hlásí jako nepřítomnost, ne zaměňuje se za záznam.

deklarovaný stavdeklarovaný stav: zaručeno Deklarováno jako deterministické a blokující, implementováno a s uvedeným behaviorálním testem, který to má dokázat. Zda to zaznamenaný běh podporuje, říká verdikt důkazů zobrazený vedle.

zaznamenané důkazyzaznamenané důkazy: nespuštěno Deklarováno jako zaručené, ale nepodložené zaznamenaným během: test je pojmenován, ale žádný úspěšný běh nad současnými vstupy zaznamenán není. jak se zaznamenávají důkazy

Záznam úlohy, ledger, rozhodnutí, otázky, checkpointy a předávky nikdy neputují přes git. Záznam, který do jiného checkoutu dorazí jinak, pojmenovává checkout, kterému patří, a jinde se nevynucuje, což dokazuje test/cases/27_foreign_task.sh.

Co to znamená

Záznam úlohy, kniha, rozhodnutí, otevřené otázky, kontrolní body, předávky a uzavřené obálky relací patří checkoutu, který je zapsal. Žijí pod .ai/local/state/, init zapíše jedinou řádku .ai/local/ do .gitignore a nic, co Majordomus dělá, je neindexuje ani necommituje. Čerstvý klon nebo nový worktree začíná bez jakéhokoli lokálního stavu a tato nepřítomnost se hlásí jako nepřítomnost, ne jako omylem pokládaný záznam.

Princip

lib/common.sh vyřeší každou cestu stavu pod sekcí local vrstvy. init přidá řádek ignorování jednou, bez ohledu na to, kolikrát běží, a doctor selže, když je cokoli pod .ai/local/ sledováno. Každý záznam stále nese vypočtenou identitu — repository_id, worktree, branch, head — takže záznam, který se dostane do jiného checkoutu jinak (zkopírovaný pracovní adresář, synchronizovaná složka), je rozpoznán jako cizí: check, finish --check a watch to hlásí a nic z něj nevynucují a druhý checkout může vedle něj zahájit vlastní úlohu.

Jak to vidět

majordomus init && git add -A && git commit -qm install
git ls-files .ai/local             # nothing
git worktree add ../elsewhere -b elsewhere
ls ../elsewhere/.ai/local          # No such file or directory
majordomus start "here" --scope docs
cp .ai/local/state/current.yaml ../elsewhere/.ai/local/state/   # after mkdir -p
( cd ../elsewhere && majordomus check )                          # OK task — foreign record (worktree …), not enforced here

Co nepokrývá

Trvanlivost lokálního stavu je checkout plus jakákoli záloha, kterou operátor drží; git ho záměrně nenese. Předávka určená pro jiný stroj se tam přenáší záměrně, jak říká výstup příkazu handover. Migrace z rozvržení, které stav sledovalo, nejdřív pořídí ověřenou zálohu, což dokazuje test/cases/66_migrate_legacy.sh.

Proč existuje

Sledovaný záznam úlohy cestuje s větví a 2026-09-04 jeden zastaralý commitnutý záznam držel každý worktree tohoto repozitáře u rozsahu, který žádný z nich nenárokoval, a blokoval každý push, dokud jej někdo ručně neuzavřel. Stav, který patří jednomu checkoutu, nesmí moci udělat tohle jinému. test/cases/01_init.sh dokládá ignorování i nepřítomnost; test/cases/27_foreign_task.sh dokládá, že záznam, který přesto dorazí, se respektuje jen tam, kde byl zapsán.

Detail vykreslený z docs/claims/local-state-ignored.md.

Od tvrzení k důkazu

  1. 1 · veřejné tvrzení

    Stav lokální pro checkout žije pod .ai/local/, git jej ignoruje a na novém klonu nebo worktree chybí

    Učiněno na Kontext, Stav.

  2. 2 · kanonické tvrzení

    local-state-ignoreddeklarovaný stav: zaručeno v docs/CLAIMS.yaml

    Definováno v přečtěte si to na tomto webu · docs/SCHEMAS.md

  3. 3 · implementace

    lib/common.sh

  4. 4 · test a scénáře

    Test: test/cases/01_init.sh

    Provádí se v Používat nástroj jako vlastní ve sdíleném repozitáři a navrhnout ho týmu, když si obhájil své místo, Pokračovat ve správném worktree, nikdy proti cizí úloze, Rozhodnout jako data, co patří do kontextu AI.

  5. 5 · zaznamenané běhy

    zaznamenané důkazy: nespuštěno jak se zaznamenávají důkazy

Ověřte si to sami

Test běží v jednorázovém dočasném repozitáři a ověřuje chování, ne řetězec ve zdrojovém kódu.

z klonu repozitáře
bash test/run.sh 01_init

Kde se toto tvrzení používá

pokryté odpovědnosti

Související tvrzení stejná implementace

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