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.

majordomus handover

Zapíše záznam o pokračování určený jen k připojování a najde nejrelevantnější předchozí.

Zapíše záznam o pokračování určený jen k připojování a najde nejrelevantnější předchozí.

  • mění stav
  • continuity
  • aktivní úloha volitelná

Rozlišení je vymezeno tímto worktree a větví a hlásí absenci, místo aby vrátilo zastaralou shodu odjinud. Tělo nese sekce, které politika vyžaduje, a žádný přepis. --derive tyto sekce skládá ze záznamu úlohy, ledgeru, gitu a otevřených otázek, takže záznam existuje, ať už jej pracovník napíše, či ne.

Syntaxe

majordomus handover [--derive] [--close] [--no-task] < body.md

Životní cyklus

  1. Nastavit
  2. Začít
  3. Pracovat
  4. Ověřit
  5. Uzavřít
  6. Prozkoumat

Další příkazy v této fázi:finish, adr.

Čte

  • .ai/repo/policy.yaml
  • .ai/local/state/current.yaml
  • .ai/local/state/handovers/
  • .ai/local/state/ledger.jsonl

Zapisuje

  • .ai/local/state/handovers/
  • .ai/local/state/current.yaml
  • .ai/local/state/ledger.jsonl

Návratové kódy

Jen kódy, které tento příkaz může vrátit. Úplný kontrakt je na indexu příkazů.

  • 0 ok
  • 2 použití
  • 10 kontrakt nesplněn
  • 12 chybějící artefakt
  • 13 interní chyba

Záznam, který relaci přežije

Předávka je jediný artefakt navržený pro čtení někým, kdo u toho nebyl. Nese sekce, které politika vyžaduje, a žádný přepis.

Tělo se všemi povinnými sekcemi

všechny požadované sekce jsou přítomny
ano

Pro tento repozitář platí

# ... and an active task scoped to lib, with work done inside that scope.
. "$FIXTURE_SETUP/installed.sh"
"$MJ" start "narrow the parser" --scope lib >/dev/null
echo work >> lib/a

…a toto tělo na standardním vstupu

# Objective
narrow the parser
# Current State
tabs are refused with a message
# Next Action
none

Spustit

$ majordomus handover < body.md

Výstup obsahuje

  • .ai/local/state/handovers/

ukončení 0

Objective, Current State a Next Action. Front matter — úloha, větev, head, worktree — se počítá, takže tělo se nemůže s gitem rozejít v tom, kde bylo napsáno.

Tělo bez povinné sekce

všechny požadované sekce jsou přítomny
ne

Pro tento repozitář platí

# ... and an active task scoped to lib, with work done inside that scope.
. "$FIXTURE_SETUP/installed.sh"
"$MJ" start "narrow the parser" --scope lib >/dev/null
echo work >> lib/a

…a toto tělo na standardním vstupu

# Objective
narrow the parser

Spustit

$ majordomus handover < body.md

Výstup obsahuje

  • chybějící nebo prázdná sekce

ukončení 10

Sekce jsou pojmenovány v odmítnutí. Předávka bez Next Action je přesně ten způsob selhání, kterému tento záznam má zabránit, proto se nepřijímá a potichu neodkládá.

Reference

Zapsat záznam pokračování jen pro připisování.

Rozlišení záznamu — výběr, který dřívější záznam se týká práce probíhající zde — je stejné pravidlo pro předávky, checkpointy i context: stejný worktree a větev, jinak stejná větev, jinak nic.

Vstup: sepsané tělo na stdin. Povinné sekce jsou handover.required_sections politiky jako nadpisy první úrovně, každá s neprázdným obsahem; zástupné znaky šablony ve špičatých závorkách se počítají jako prázdné. Volitelné: # Completed, # Decisions, # Verification, # Risks, # Open Work.

--derive sestaví tělo místo čtení ze stdin, a to ze záznamu úlohy, ledgeru, gitu, otevřených otázek a nejnovějšího checkpointu — každý z nich je již zapsaný, zvalidovaný a ověřený na identitu. Nevolá žádný model ani nedělá síťový požadavek, a proto ho může bezpečně spouštět hook poskytovatele: odvozené tělo může být chybné jen tehdy, je-li chybný některý záznam, který čte, a každý z nich má vlastní kontrolu. Povinné sekce politiky se vypisují v pořadí politiky; povinnou sekci, kterou tento generátor nedokáže naplnit, odmítne podle jména, místo aby ji zapsal prázdnou, protože prázdná sekce projde kontrolou sekcí a dalšímu workerovi nic neřekne. Ručně napsané tělo stále řekne víc než odvozené a --derive existuje proto, aby nepřítomnost někoho, kdo chce psát, už neznamenala nepřítomnost záznamu.

Zapisuje: jeden nový soubor state/handovers/<utc-ts>--<branch-key>--<short-head>--<rand>.md, režim 0600, vytvořený atomicky (dočasný soubor, pak pevný odkaz; při kolizi opakování s novou náhodnou příponou). Front matter se počítá z gitu a z current.yaml; tělo, které se pokouší nastavit pole identity, se odmítne.

Nikdy nestaguje, necommituje ani neupravuje žádný jiný soubor než checkpoint_at záznamu úlohy. Připojí task.handed_over do ledgeru. Vypíše cestu.

--close navíc nastaví výsledek úlohy na handed_over, aby mohla v tomto checkoutu start nová úloha; starý záznam se tím start archivuje. Bez --close zůstává úloha aktivní, aby v ní pokračovala další relace.

Událost SessionEnd poskytovatele spustí --derive --close, nebo --derive --no-task, když záznam úlohy neexistuje, aby epizoda, která skončí, zanechala záznam pokračování, a ne jen obálku toho, co vytvořila. Oba odpovídají na různé otázky: záznam relace indexuje epizodu a předávka je to, z čeho další worker pokračuje. Neptá se, zda je úloha aktivní — do ADR 0052 se ptala a repozitář, jehož poslední úloha byla předána, přestal na šest dní zapisovat jediný záznam, z něhož by budoucí worker pokračoval, zatímco všechny kontroly zdraví procházely.

Odmítne (10), pokud povinná sekce chybí nebo je prázdná, nebo pokud tělo obsahuje pole identity. Odmítne (12) bez aktivní úlohy, pokud není --no-task.

Resolve: majordomus handover --resolve najde nejrelevantnější dřívější předávku pro aktuální worktree a branch: nejprve stejný worktree a branch, pak stejná branch, nikdy záloha v rámci celého repozitáře. Vypíše štítek stavu gitu a tělo. Žádný kandidát je běžný výsledek a skončí s kódem 0 s No relevant handover. --path vypíše jen cestu, pro skriptování; --no-task rozřeší i bez aktivní úlohy.

Důkazy

Každý případ níže běží v CI na Linuxu i macOS. Web se odmítne sestavit, pokud veřejný příkaz nemá behaviorální případ, negativní případ nebo ukázku.

Záruky, které tento příkaz nese

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