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.

každý odmítnutý finish připojí událost task.refused jmenující nárokovaný výsledek, počet nesplněných a doktríny, které odmítly, a finish --check nezapíše žádnou

Pokaždé, když majordomus finish odmítne, kniha získá řádek task.refused: tvrzený výsledek, kolik řádků kontraktu zůstalo nesplněno, které doktríny odmítly a verdikt každé doktríny. Úloha přijatá po čtyřech odmítnutích zanechá čtyři řádky task.refused a pak jeden task.finished, v tomto pořadí. finish --check se ptá, zda by kontrakt prošel, a nic nezaznamenává, protože check je otázka a finish je tvrzení.

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á

Pokaždé, když majordomus finish odmítne, ledger získá řádek task.refused: jaký výsledek byl tvrzen, kolik řádků kontraktu zůstalo nesplněno, které doktríny odmítly a verdikt každé doktríny. Úloha přijatá po čtyřech odmítnutích zanechá čtyři řádky task.refused a pak jeden task.finished, v tomto pořadí. finish --check se ptá, zda by kontrakt prošel, a nic nezaznamenává, protože kontrola je otázka a finish je tvrzení.

Princip

lib/finish.sh vyhodnotí kontrakt jako dříve. Když je kterýkoli řádek nesplněn, připojí task.refused přes mj_ledger_append, který odmítne událost, jíž registr nedeklaruje, nebo takovou, které chybí povinné pole (task_id, outcome, unmet, refused), a pak skončí kódem 10. Událost je deklarována v share/events.yaml, zdokumentována v docs/SCHEMAS.md a vykreslena majordomus history. --check se vrací před připojením.

Jak to vidět

majordomus finish --outcome completed            # refused: verification not run
majordomus finish --outcome completed --verify-command "make test"   # accepted
majordomus history --event task.refused --all
# 2026-09-16T…  task.refused        t-…   9b1e2d4  outcome=completed unmet=2

Co nepokrývá

Zaznamenává odmítnutí finish, ne odmítnutí hooků gitu nebo kontrol CI, a sám nic nepočítá: počet je to, co vypisuje history --event task.refused. Odmítnutí je lokální stav pod .ai/local/, který se nikdy necommituje ani nepublikuje, takže záznam patří checkoutu, který jej vytvořil.

Proč existuje

Kontrakt dokončení činí hotovo vyvratitelným a dokud tato událost neexistovala, vyvrácení nezanechávala stopu: úloha odmítnutá čtyřikrát, než prošla, vypadala v knize stejně jako ta, která prošla napoprvé. Tím bylo nemožné ukázat hlavní přínos nástroje — každé falešné hotovo, které zachytil, zmizelo s výstupem terminálu. Repozitář tu mezeru zaznamenal sám, jako finish-refusal-leaves-no-trace s prioritou 1 v docs/HARDCODING_LEDGER.yaml. Odmítnutí později splněné je zachycené falešné hotovo a nyní jej lze spočítat.

Detail vykreslený z docs/claims/finish-refusal-is-recorded.md.

Od tvrzení k důkazu

  1. 1 · veřejné tvrzení

    každý odmítnutý finish připojí událost task.refused jmenující nárokovaný výsledek, počet nesplněných a doktríny, které odmítly, a finish --check nezapíše žádnou

    Vytvořeno na Kontrakt dokončení, Finish.

  2. 2 · kanonické tvrzení

    finish-refusal-is-recordeddeklarovaný stav: zaručeno v docs/CLAIMS.yaml

    Definováno v share/events.yaml

  3. 3 · implementace

    lib/finish.sh · majordomus finish

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

    Test: test/cases/06_finish.sh

  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 06_finish

Kde se toto tvrzení používá

pokryté odpovědnosti

Související tvrzení stejná implementace

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