Co to znamená
repository_id, branch, head, working_tree a changed_files na záznamu úlohy a na každé předávce se počítají z git rev-parse a git status v okamžiku zápisu. Pracovník je nemůže nastavit a tělo předávky obsahující řádek, který vypadá jako některé z těchto polí, se odmítne. Model si sebejistě vymyslí název větve; git ne.
Princip
lib/start.sh a lib/handover.sh volají git helpery v lib/common.sh a zapisují výsledky do záznamu. handover před zápisem prohledá příchozí tělo (grep) na klíče identity a odmítne s návratovým kódem 10, pokud je nějaký přítomen. Štítky divergence se pak počítají při čtení z těchto polí, což má smysl jen proto, že nebyla nikdy psána ručně.
Jak to vidět
majordomus start "t" --scope lib
grep -E '^(branch|head|working_tree):' .ai/local/state/current.yaml # values from git
printf '# Objective\nx\nhead: abc\n# Current State\ny\n# Next Action\nz\n' | majordomus handover
# majordomus: handover: body must not contain identity fields; they are computedCo nepokrývá
owner a popis úlohy jsou psané; jsou to popisky, ne identita.
Proč existuje
Nejcennější pravidlo nalezené v protokolu předávky zdrojového prostředí: zapisovatel zachytil repozitář, worktree, větev, head a změněné soubory deterministicky a instrukce workera zakazovaly je vymýšlet. Vše ostatní o důvěře ve stav z toho plyne.