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.

Dotčený soubor mimo nárokovaný rozsah je selhání, ne varování

Pokud změny úlohy — necommitnuté nebo commitnuté od začátku úlohy — zahrnují soubor mimo deklarovaný rozsah, check i finish na něm selžou jménem. Soubory pod .ai/ a generované instrukční soubory jsou vždy povoleny, protože je zapisuje sám nástroj.

deklarovaný stavdeklarovaný stav: zaručeno Deklarováno jako deterministické a blokující, implementováno a s uvedeným behaviorálním testem, který to má dokázat. Zda to zaznamenaný běh podporuje, říká verdikt důkazů zobrazený vedle.

zaznamenané důkazyzaznamenané důkazy: nespuštěno Deklarováno jako zaručené, ale nepodložené zaznamenaným během: test je pojmenován, ale žádný úspěšný běh nad současnými vstupy zaznamenán není. jak se zaznamenávají důkazy

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)
# 10

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

Detail vykreslený z docs/claims/scope-enforcement.md.

Od tvrzení k důkazu

  1. 1 · veřejné tvrzení

    Dotčený soubor mimo nárokovaný rozsah je selhání, ne varování

    Vytvořeno na Koordinace, Rozsah.

  2. 2 · kanonické tvrzení

    scope-enforcementdeklarovaný stav: zaručeno v docs/CLAIMS.yaml

    Definováno v přečtěte si to na tomto webu · docs/DESIGN.md

  3. 3 · implementace

    lib/check.sh · majordomus check

  4. 4 · test a scénáře

    Test: test/cases/04_start_check.sh

    Provedeno v Odchyťte agenta, který tvrdí, že je hotov, a není, Provozujte několik pracovníků v jednom repozitáři, aniž by se srazili.

  5. 5 · zaznamenané běhy

    zaznamenané důkazy: nespuštěno jak se zaznamenávají důkazy

Ověřte si to sami

Test běží v jednorázovém dočasném repozitáři a ověřuje chování, ne řetězec ve zdrojovém kódu.

z klonu repozitáře
bash test/run.sh 04_start_check

Kde se toto tvrzení používá

Související tvrzení stejná implementace

Okamžiky, na které to odpovídá

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