Co to znamená
Pokud změny úlohy — necommitnuté nebo commitnuté od jejího zahájení — zahrnují soubor mimo deklarovaný rozsah, check a finish na něm jmenovitě selžou. Soubory pod .ai/ a generované instrukční soubory jsou povoleny vždy, protože je zapisuje samotný nástroj.
Princip
lib/check.sh shromáždí dotčené soubory, každý normalizuje a testuje obsažení proti každému záznamu rozsahu pomocí mj_path_contains, které normalizuje obě strany. Každý soubor mimo je zjištění FAIL scope s příkazem k reprodukci. finish znovu spustí stejnou logiku jako první řádek svého kontraktu a při selhání odmítne.
Jak to vidět
majordomus start "t" --scope lib/auth
echo x > lib/other/b.txt
majordomus check; echo $?
# FAIL scope lib/other/b.txt — outside claimed scope (lib/auth)
# 10Co nepokrývá
Rozsah se týká souborů, ne sémantiky: změnu uvnitř lib/auth, která něco rozbije v lib/other, zachytí váš ověřovací příkaz, ne rozsah.
Proč existuje
Čtyřicet plně izolovaných worktrees ve zdrojovém prostředí přesto produkovalo asi tři tisíce souběžně změněných souborů, protože rozsah byl deklarován dobrovolně a nikde, kde to běželo, se nekontroloval. Deklarace něco znamená jen tehdy, když soubor mimo ni selže.