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ý generovaný instrukční soubor nese vlastní razítko a ruční úprava se odhalí

Když update zapisuje projekci, označí ji razítkem: první řádek cíle v režimu souboru, nebo začátečním markerem cíle v režimu oblasti, jmenuje hash politiky, ze které byla vykreslena, a hash obsahu, který razítko pokrývá. doctor a watch zahashují obsah na disku a porovnají ho s razítkem; rozdíl znamená, že někdo upravil generovaný soubor ručně, a hlásí se jménem. Nic se nezaznamenává jinde, takže čerstvý klon se kontroluje přesně jako checkout, který soubor vygeneroval.

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á

Když update zapisuje projekci, označí ji: první řádek cíle v režimu souboru nebo počáteční značka cíle v režimu oblasti jmenuje hash politiky, z níž se vykreslila, a hash obsahu, který razítko pokrývá. doctor a watch zahashují obsah na disku a porovnají jej s razítkem; rozdíl znamená, že někdo ručně upravil generovaný soubor, a hlásí se jménem. Nic jiného se nikam nezaznamenává, takže čerstvý klon se kontroluje přesně tak jako checkout, který soubor vygeneroval.

Princip

lib/update.sh vykreslí každý cíl, spočítá hash obsahu a zapíše řádek razítka (mj_stamp_line v lib/common.sh) nebo payload značky nad obsahem. lib/doctor.sh přečte razítko zpět (mj_stamp_read), zahashuje vlastněný obsah (mj_owned_content) a selže při neshodě (content differs from its own stamp (hand-edited?)), u cíle bez razítka a u chybějícího cíle; lib/watch.sh navíc hlásí drift politiky, když hash politiky, který razítko jmenuje, není politikou na disku, což znamená, že projekce je zastaralá.

Jak to vidět

echo "my own rule" >> CLAUDE.md
majordomus doctor
# FAIL projection  CLAUDE.md — content differs from its own stamp (hand-edited?)  [reproduce: majordomus update --diff CLAUDE.md]

Co nepokrývá

Razítko říká, že se soubor změnil, ne co změna znamenala. update --diff <target> ukáže rozdíl, aby člověk mohl rozhodnout, zda úprava patří do těla politiky. Razítko je důkaz o obsahu pod ním; není to podpis a nedokazuje nic o tom, kdo soubor vygeneroval.

Proč existuje

Ruční úpravy generovaných souborů jsou způsob, jak vzniknou dvě sady pravidel. Razítko uvnitř souboru zviditelní okamžik rozchodu jedním příkazem místo za měsíce a zviditelní ho na každém klonu, ne jen tam, kde byl zrovna commitnut soubor s proveniencí.

Detail vykreslený z docs/claims/projection-fingerprint.md.

Od tvrzení k důkazu

  1. 1 · veřejné tvrzení

    Každý generovaný instrukční soubor nese vlastní razítko a ruční úprava se odhalí

    Vytvořeno na Policy, Projection.

  2. 2 · kanonické tvrzení

    projection-fingerprintdeklarovaný stav: zaručeno v docs/CLAIMS.yaml

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

  3. 3 · implementace

    lib/update.sh · majordomus update

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

    Test: test/cases/03_update.sh

    Provedeno v Převzetí repozitáře, který už má vlastní pravidla, Zjištění, co se od posledního pohledu změnilo, Udržení každého bootstrapu poskytovatele tenkého, generovaného a v rámci rozpočtu.

  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 03_update

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.