Okamžik
Nástěnka říká, že migrace probíhá. Větev je tři týdny stará, její head je čtyřicet commitů za main a worktree, v níž žije, patří relaci, která skončila v srpnu. Nikdo neví, zda ji dokončit, restartovat, nebo smazat.
Proč k tomu dochází
„Rozpracováno“ se napsalo jednou, tím, kdo práci zahájil, a nic nikdy nemělo povinnost to říct znovu. Stav, který se píše místo aby se počítal, je pravdivý v okamžiku zápisu a od té doby tiše chátrá stejnou rychlostí, jakou se hýbe vše kolem. Registr úloh, ze kterého byl tento nástroj vydestilován, nesl při jednom auditu zastaralý záznam u čtyř worktree z pěti; opravou byl opravný příkaz, který nikdo nespustil, protože nic neohlásilo, že je třeba ho spustit.
Proč to lepší model nevyřeší
V tom selhání není zapojen žádný worker. Záznam zastaral mezi relacemi, kdy nic neběželo. Jediná oprava je odvozovat stav z faktů, která se hýbou sama — git, souborový systém, hodiny — místo ukládání slova.
Co to stojí
Práce se buď duplikuje, nebo opouští, a obojí se rozhoduje hádáním. Širší cenou je, že se nástěnka přestane číst: jakmile je o několika položkách známo, že jsou zastaralé, každá položka se považuje za nespolehlivou a tým se vrací k dotazování lidí.
Co Majordomus dělá
Záznam úlohy není stav. Jeho identita — branch, head, worktree — se počítá z gitu při start a nikdy nepíše a čtení záznamu zpět porovnává tyto fakty s gitem nyní a výsledek označí exact, advanced, diverged nebo different_context. Záznam pojmenovává checkout, kterému patří, a jiný checkout se jeho rozsahem nikdy neřídí.
Profil, pod nímž úloha běží, nastavuje interval checkpointu. majordomus checkpoint zaznamenává, co platilo před chvílí, s omezenou délkou, aby ho další kontext mohl citovat celý; tělo nad limit je odmítnuto, ne zkráceno. majordomus check hlásí stáří checkpointu vedle stavu, rozsahu a blokátorů. majordomus watch ho hlásí jako drift, s překročeným intervalem, spolu se všemi dalšími drifty, které vidí, a končí vlastním kódem, takže skript rozliší „driftoval“ od „je rozbitý“.
Před a po
before board: "in progress" (written once, in July)
after majordomus watch
DRIFT checkpoint t-20260812… — last checkpoint 21d ago, interval 30m
DRIFT state t-20260812… — diverged (+40 commits on master)Jak to ověřit
Zahajte úlohu, počkejte za interval jejího checkpointu a spusťte watch: drift se ohlásí s intervalem, který překročil. Posuňte větev a načtěte záznam zpět: štítek divergence se změní, aniž by ho kdokoli upravil.
Co nedělá
Nezavírá, nepřiřazuje ani nemaže zastaralou úlohu; to je rozhodnutí a hlásí se tomu, kdo ho činí. watch nikdy nic neblokuje. Zná worktree jednoho repozitáře na jednom stroji, takže úloha v klonu, který nevidí, je pro něj neviditelná.