Okamžik
git worktree list vypíše pět položek. Dvě jsou zjevně aktuální. Další tři mají necommitnuté změny, větve s ne zcela popisnými názvy a žádný způsob, jak poznat, zda obsahují odpoledne práce, nebo vůbec nic.
Proč k tomu dochází
Vytvořit izolaci je jeden příkaz a zaznamenat záměr není práce nikoho. Worktree je adresář; adresář nenese žádný cíl, žádného vlastníka a žádný stav. Rozhodnutí smazat jej se proto vždy dělá na základě diffu, který je drahý na čtení a při čtení nejednoznačný.
Proč to lepší model nevyřeší
Nic neběží. Informace, která by otázku rozhodla — k čemu to bylo, jak daleko to došlo, zda bylo nahrazeno — nikdy nezapsala relace, která ji znala.
Co to stojí
Buď se změť ponechá, a pak každý audit opakuje tuto otázku, nebo se uklidí, a pak někdo občas smaže práci. Obojí se platí opakovaně a druhé se platí hlasitě.
Co Majordomus dělá
Záznam úlohy patří k jednomu checkoutu a nese cíl, deklarovaný rozsah a identitu gitu spočtenou při start. Načtení záznamu porovná tuto identitu se stavem gitu nyní a označí ji exact, advanced, diverged nebo different_context, takže worktree sám oznámí, že zastaral. Když relace skončí, handover zapíše cíl, aktuální stav a další krok, z nichž každý je povinný a neprázdný. watch hlásí každý drift, který vidí napříč záznamy, které tento repozitář drží.
Samotné worktrees mají jedinou topologii: checkout větve je na <repo>-wt/<branch>, odvozený z identity gitu a nikdy neregistrovaný, takže „kde je větev X“ je odvození, ne hledání. worktree.topology dává každému checkoutu postavení — canonical, misplaced, detached, ephemeral, missing — a každé větvi verdikt o způsobilosti k úklidu: sloučena do trunku a čistá nebo nevyzvednutá. Zbloudilý checkout se přenese domů s neuloženou prací, otiskovanou před a po; nástroj nic nemaže a seznam toho, co by mohlo pryč, je odvozený stav, na kterém má jednat člověk.
Před a po
before $ git worktree list
../wt-3 8c31f0e [fix/auth-2] ...and then what?
after $ majordomus handover --resolve --repo ../wt-3
t-20260812… diverged (-40 commits)
# Objective: split the auth callback validation
# Next Action: the legacy mobile form still needs a decisionCo nedělá
Nic nemaže ani nemerguje a nevidí klony na jiných strojích. Hlásí, co o sobě říká každý worktree; zda ponechat některý z nich, je rozhodnutí, které předává člověku.