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