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é zjištění, které příkaz hlásí, pojmenuje příkaz, který ho reprodukuje

Nález bez možnosti vidět ho znovu je názor. Příkaz reprodukce je to, co umožňuje

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: zastaralé 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

`mj_finding` bere příkaz k reprodukci jako pátý argument a bez něj nález vypíše bez příkazu, takže volající, který na něj zapomněl, vytvořil nález, který vypadal přesně jako nález, který ho mít nemůže. Kontrola počítá argumenty každého volání pomocných funkcí pro hlášení, volání předávající dál bere jako věc volajícího a volání, které neumí rozebrat, hlásí jako nečitelné, místo aby ho tiše propustila. Zavedena byla s prázdnou baseline: devět porušení, která našla, bylo opraveno, ne zaznamenáno.

Co to znamená

Nález bez způsobu, jak ho znovu spatřit, je názor. Příkaz k reprodukci je to, co umožní dalšímu člověku nebo další relaci ověřit fakt, místo aby reportu věřili — a v repozitáři, na kterém pracuje několik agentů najednou, je věřit reportu, který nikdo nemůže znovu spustit, způsob, jak chybný nález přežije týden.

Princip

mj_finding v lib/common.sh bere příkaz k reprodukci jako pátý argument a když chybí, vypíše nález bez něj. To je ta chyba: volající, který ho zapomněl, vyprodukoval nález, který se čte přesně jako nález, který žádný mít nemohl. Nic je nedokázalo rozlišit, takže je nerozlišilo nic, a mezi oběma zbýval jen recenzent.

scripts/ci/finding-reproduce-check čte každé volání pomocné funkce pro hlášení v shellovém nástroji a skriptech — mj_fail, mj_drift, mj_warn, mj_doctrine_fail — a počítá její argumenty. Tři rozhodnutí činí počet poctivým:

  • Pomocná funkce jmenovaná uvnitř řetězce je text o ní, ne její volání. Sken prochází každý řádek mimo jeho uvozené úseky; bez toho by tato kontrola hlásila sama sebe.
  • Přeposílající volání — mj_fail "$@" — předá cokoli dostalo, takže počet patří tomu, kdo je zavolal, a ten volající se měří tam, kde je napsán.
  • Volání, které kontrola neumí zpracovat se hlásí jako unreadable a počítá se, nikdy se tiše nepropustí. Nezpracované volání, které by se tvářilo jako vyhovující, by bylo právě touto vadou, o úroveň výš.

mj_ok a mj_info jsou výroky, ne nálezy, a neměří se: na řádku, který říká, že je něco v pořádku, není co reprodukovat.

Jak to vidět

scripts/ci/finding-reproduce-check            report, and fail on new debt
scripts/ci/finding-reproduce-check --strict   fail on any finding, baseline ignored

Co nepokrývá

Zda příkaz skutečně reprodukuje nález. Kontrola počítá argumenty; nemůže spustit, co čte. Volající, který předá "true" jako pátý argument, ji splní, a to musí zachytit revize.

Měří také jen shellový nástroj a skripty tohoto repozitáře. Nálezy, které hlásí spustitelný soubor v Rustu, nesou příkaz k reprodukci v typovaném poli, ne v poziční položce, takže tuto vadu mít nemohou; behaviorální případy se také neměří, protože případ nad nálezy tvrdí, a nehlásí je.

Proč existuje

Protože oba stavy byly ve výstupu nerozeznatelné. mj_finding vytiskne nález bez příkazu k reprodukci, když žádný není předán, takže „tento nález nemá příkaz“ a „tento nález nemohl žádný mít“ se vykreslily stejně a čtenář nemohl rozeznat opomenutí volajícího od skutečné nepřítomnosti.

Co to dokazuje

Samotná kontrola, spouštěná proti tomuto repozitáři v CI při každé změně. Přistála s prázdnou základní hodnotou, což je část, kterou stojí za to říct: našla devět porušení napříč lib/doctor.sh a lib/watch.sh a ta byla opravena, a ne zaznamenána, takže kontrola drží hranici na nule, a ne na devíti.

Detail vykreslený z docs/claims/a-finding-names-how-to-see-it-again.md.

Od tvrzení k důkazu

  1. 1 · veřejné tvrzení

    Každé zjištění, které příkaz hlásí, pojmenuje příkaz, který ho reprodukuje

    Vytvořeno na Doktrína.

  2. 2 · kanonické tvrzení

    a-finding-names-how-to-see-it-againdeklarovaný stav: zaručeno v docs/CLAIMS.yaml

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

  3. 3 · implementace

    scripts/ci/finding-reproduce-check

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

    Test: test/cases/138_governance_gates.sh

  5. 5 · zaznamenané běhy

    zaznamenané důkazy: zastaralé 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 138_governance_gates

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