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.

Úloha "in progress", které se tři týdny nikdo nedotkl

Stav, který byl napsán, a ne vypočten, je pravdivý v okamžiku zápisu a od té chvíle tiše chátrá.

→ našel úlohu „v práci“, kterou tři týdny nikdo neotevřel

cena, když k tomu dojde
střední
jak často
běžné

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

Jak to vypadá

Konkrétní situace, jedna pro každé publikum. Každá je deklarována v záhlaví okamžiku, takže stav před a po jsou data, ne próza, od které by se stránka mohla odchýlit.

  1. Migrace na nástěnce engineering-lead

    před
    Nástěnka říká, že se pracuje; větev je o čtyřicet commitů pozadu a relace, která ji vlastnila, skončila v srpnu.
    po
    `watch` hlásí stáří kontrolního bodu proti intervalu, který profil nastavuje, jako drift, s vlastním návratovým kódem.
  2. Pracovník, který se zastavil uprostřed úlohy ai-native-team

    před
    Noční worker se někde zastavil; záznam úlohy stále tvrdí, že práce probíhá.
    po
    Identita záznamu byla spočítána z gitu a nyní se s gitem porovnává: `exact`, `advanced`, `diverged` nebo `different_context`.
  3. Předání zakázky agency

    před
    Čtyři z pěti worktree nesou záznam úlohy, který už nepopisuje nic reálného, a nic to neřeklo.
    po
    Každý záznam jmenuje checkout, kterému patří, a zastaralý se hlásí, místo aby se mu věřilo.

Jak to poznáte

Pozorovatelné příznaky, které tento okamžik deklaruje. Jsou dotazníkem na indexu a vstupem pro majordomus why diagnose; nic jiného je nedefinuje.

  • Něco je označeno jako rozpracované a nikdo se toho týdny nedotkl. stale-in-progress
  • Větev pro aktivní práci je daleko za trunkem a nikdo si toho nevšiml. branch-behind
  • Nikdo neumí říct, zda se má stará práce dokončit, začít znovu, nebo smazat. finish-restart-delete

Kde to v nástroji najdete

Vše níže je načteno z vlastního záhlaví tohoto okamžiku a ověřeno proti repozitáři. Neexistující název by neprošel validací.

příkazy, které na to odpovídají

schopnosti spustitelného souboru, které na to odpovídají

co dohlíží — odvozeno z tvrzení níže

tvrzení, která tuto stránku podpírají, a důkazy za každým z nich

pravidla, která jej řídí

  • majordomus.checkpoint-freshness
  • majordomus.state-consistency
  • majordomus.task-continuity
  • majordomus.one-worker-one-scope

případy užití, které ukazují cestu ven

Pokud vám tohle zní povědomě, další také

Co tento okamžik pojmenovává, co pojmenovává jeho a co sdílí jeho oblast, publikum nebo štítky. Druhé a třetí je odvozeno; zapsáno je jen první.

Všech 38 a jak souvisejí s nástrojem →

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