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é tvrzení, pravidlo, funkce, příkaz, schopnost, nástroj MCP a případ užití, které repozitář deklaruje, je předmět důkazů, jehož členové a testy se odvozují z již existujících deklarací, a odevzdaný index předmětů, který se od tohoto odvození liší, se odmítne

Verdikt je vždy verdiktem o něčem. Čtenář se ptá "jsou důkazy funkce

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

`majordomus generate site` zapisuje site/data/registry/evidence-subjects.json z matice tvrzení, pravidel, funkcí, případů užití, registru příkazů, zdokumentovaných příkladů příkazové řádky, vestavěných schopností a první hlavičky pokrytí a negativní hlavičky každého případu; schopnost se skládá z tvrzení implementovaných v souboru, v němž je její modul sestaven, a slovo příkazu, na které odpovídá shellový nástroj i spustitelný soubor, jmenuje oba programy. Nic neuvádí subjekt, člena ani route ručně, takže přidání deklarace přidá její subjekt a odebrání ho odebere. `generate --check` ruční úpravu odmítne. Soubor nese jen strukturu - žádný řádek knihy ani commit - takže zaznamenání běhu ho nikdy nezastará.

Co to znamená

Verdikt je vždy verdikt o něčem. Čtenář se ptá „je funkce evidence prokázána?“, „je majordomus commit plan testováno?“, „co dokazuje pravidlo project.scope-is-declared?“ — a každá z těchto otázek se týká subjektu: jedné deklarace, kterou repozitář už činí, pojmenované klíčem tvaru <kind>:<id>, například feature:evidence, command:commit plan nebo rule:project.scope-is-declared.

Index předmětů odpovídá na tu polovinu otázky, která nevyžaduje běh: které testy předmět zasahuje, přímo svými trasami a nepřímo předměty, z nichž se skládá. Nic neuvádí předmět, člena ani trasu ručně. Přidání tvrzení, pravidla, funkce, případu užití, příkazu, zdokumentovaného příkladu, schopnosti nebo hlavičky případu přidá do indexu to, co deklaruje; odebrání to odebere.

Commitnutá kopie, site/data/registry/evidence-subjects.json, je to, k čemu se web a shellové nástroje připojují. majordomus generate --check odmítne kopii, která se liší od odvození, takže ruční úprava — předmět, o kterém si někdo přál, aby byl testovaný, trasa, kterou někdo přidal, aby stránka vypadala pokrytá — je selhání, ne fakt.

Princip

majordomus generate site odvozuje index ve spustitelném souboru z deklarací, které jejich vlastníci už čtou:

  • tvrzení pochází ze spojení důkazů nad docs/CLAIMS.yaml s prázdným ledgerem, takže jeho identita testu sleduje jedinou gramatiku, kterou ledger používá; jeho jedinou trasou je test, který pojmenovává, přičemž zdroj tvrzení, implementace a zdroj testu jsou vstupy, podle kterých se běh posuzuje;
  • pravidlo pochází z definic v reportu pravidel; každá cesta, kterou blok vynucování pravidla uvádí a kterou řídí runner, je trasa, a každá další cesta je vypsána jako mechanismus;
  • funkce pochází z modelu produktu a skládá se z tvrzení, pravidel, příkazů a případů užití, které pojmenovává;
  • případ užití pochází z indexu a skládá se z příkazů, které spouští, pravidel, která zkouší, tvrzení, která dokládá, a nástrojů MCP, které volá — hran, které graf už kreslí ze stejných polí; jeho vlastní trasou je jeho scénář;
  • příkaz je veřejný příkaz shellového nástroje, dokumentovaná cesta příkladu příkazového řádku programu nebo cesta příkazového řádku schopnosti: slova grafu příkazů, jehož spustitelné příkazy programu nesou každý dokumentovaný příklad, takže skupina, která drží jen příkazy, například evidence, není slovem programu. Jeho chování a negativní trasy jsou případy, jejichž první řádek # majordomus-covers: a první řádek # majordomus-negative: jej pojmenovávají; pozdější řádek téhož druhu nepojmenovává nic a none nepojmenovává nic. Dokumentovaná cesta příkladu dosahuje i binárky, která spouští každý příklad, ale jen tam, kde ta binárka existuje;
  • schopnost je vestavěná schopnost registru. Skládá se z cesty příkazového řádku a ze všech tvrzení implementovaných v souboru, v němž je její modul složen, což je pravidlo, které už stránky schopností uplatňují;
  • nástroj MCP je alias schopnosti, která jej deklaruje, bez vlastní stránky.

Členové tvoří orientovaný graf bez cyklů: funkce se skládá z tvrzení, pravidel, příkazů a případů užití; případ užití z příkazů, pravidel, tvrzení a nástrojů MCP; nástroj MCP ze své schopnosti; schopnost ze svého příkazu a svých tvrzení. Případ užití nikdy nezahrnuje funkce, které ho jmenují, a nic nezahrnuje funkci.

Příkazové slovo, na které odpovídá nástroj v shellu i spustitelný soubor, je jeden subjekt, který jmenuje oba programy, s poradním zjištěním, které to říká: jeho trasy v hlavičkách dokazují nástroj v shellu, jeho ukázková trasa dokazuje spustitelný soubor a jedna stránka ukazuje obojí.

Plánované nebo zamítnuté tvrzení nejmenuje žádný test, takže žádného nedosáhne. Scénář případu užití je uveden jako trasa bez testu, protože kniha nemůže zaznamenat běh scénáře. Funkce, jejíž členové nedosáhnou vůbec žádného testu, nese poradní nález feature_without_evidence, chybu pro stabilní funkci a jinak varování.

Soubor nese jen strukturu: žádný řádek ledgeru, žádný commit a žádný čas. Zaznamenání běhu ho nikdy neučiní zastaralým a oba průchody generování derivace zapisují stejné bajty.

Jak to vidět

jq '.pages[:3]' site/data/registry/evidence-subjects.json
jq '.subjects["feature:evidence"]' site/data/registry/evidence-subjects.json
majordomus generate site --check
bash test/run.sh 507_evidence_subjects_are_derived

Případ odvodí index vlastního fixture repozitáře, odstraní funkci, testovací binárku a hlavičku, odvodí jej znovu a ručně upraví commitnutou kopii, aby ukázal, že ji generate site --check odmítne. Nad tímto repozitářem drží index shodný s projekcemi, které už existovaly: matice tvrzení, produktový model, katalog případů užití, registr, stránky příkazů, stránky schopností, stránky doktríny a graf příkazů.

Co nepokrývá

Zda zasažený test prošel. Index říká, které testy subjekt zasahuje, nikdy co řekly; to je verdikt, na který příkaz evidence subject odpoví z ledgeru v předložené revizi.

Nálezy jsou poradní. Nic neodmítne funkci bez důkazu ani příkazové slovo, na které odpovídají dva programy, dokud je neudrží vrstva kontrol.

Proč existuje

Žádný odznak ani stránka nesmí nést ručně psaný seznam toho, co ji dokládá. Seznam, který někdo udržuje, je seznam, který se rozejde: test se přejmenuje a stránka jej stále jmenuje, funkce získá případ užití a žádná stránka se to nedozví. Odvozování subjektů z deklarací, které repozitář už činí, znamená, že jediný způsob, jak změnit, co stránka říká o důkazu subjektu, je změnit, co repozitář deklaruje, a každý jiný způsob generate --check odmítne.

Podrobnosti vykresleny z docs/claims/evidence-subjects-are-derived.md.

Od tvrzení k důkazu

  1. 1 · veřejné tvrzení

    Každé tvrzení, pravidlo, funkce, příkaz, schopnost, nástroj MCP a případ užití, které repozitář deklaruje, je předmět důkazů, jehož členové a testy se odvozují z již existujících deklarací, a odevzdaný index předmětů, který se od tohoto odvození liší, se odmítne

    Žádná funkce ani odpovědnost v README ji nepojmenovává; tato stránka je místo, kde je uvedena.

  2. 2 · kanonické tvrzení

    evidence-subjects-are-deriveddeklarovaný stav: zaručeno v docs/CLAIMS.yaml

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

  3. 3 · implementace

    apps/majordomus-cli/src/evidence/subject.rs

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

    Test: test/cases/507_evidence_subjects_are_derived.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 507_evidence_subjects_are_derived

Související tvrzení stejná implementace

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