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ý adresář vrstvy nese kontextový dokument, výjimku deklaruje kontrakt, který podstrom řídí, a potomek může tento požadavek zúžit, ale nikdy oslabit

Adresář, který o sobě nic neříká, není neutrální. Nepřispívá ničím k

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

Adresář uvnitř stromu bez dokumentu je missing-contract, s uvedením adresáře a tam, kde požadavek explicitně učinil předek, i kontraktu, který ho učinil. Výjimka je children.require_contract v dokumentu podstromu; platí hodnota nejblíže adresáři, absence znamená, že je kontrakt dlužen, a snížení zděděného true je illegal-override. Strom je adresář manifestu bez poloviny, kterou manifest deklaruje jako nesledovanou; nic jiného se nepřeskakuje podle jména a podstrom, který vrstva nese, ale nevytváří, se uvolní pomocí children.exempt na kontraktu, který ho řídí a který smí jmenovat jen adresáře uvnitř svého rozsahu.

Co to znamená

Adresář, který o sobě nic neříká, není neutrální. Nepřispívá nic do řetězce, který worker rozřeší, nepojmenuje žádný formát souborů, které drží, a kdo tam přistane, čte jeho předky a zbytek hádá. Pokrytí mění zvyk psát README.md v invariant: každý adresář stromu vrstvy nese kontextový dokument a adresář, který ho nemá, je nález missing-contract, jenž jmenuje adresář a — kde předek učinil požadavek výslovným — smlouvu, která tak učinila.

Strom je ten, který už řešitel čte: adresář manifestu minus polovina, kterou sám manifest deklaruje jako netrackovanou (local.tracked: false). Nic dalšího se nepřeskakuje podle jména — podstrom, který nedluží kontrakt, to říká v kontraktu nad sebou.

Princip

Výjimka jsou data na kontraktu, který řídí podstrom, nikdy seznam v kořeni, takže se pohybuje se stromem, který popisuje:

scope: subtree
children:
  require_contract: false

Hodnota, která platí pro adresář, je ta z nejbližšího předka, jehož kontrakt ji deklaruje; kde ji nedeklaruje nikdo, dokument se dluží. Pole se skládá jen zužováním: potomek může pro svůj podstrom zvýšit false na true a snížení zděděného true je illegal-override — stejná třída, jakou potomek získá za nahrazení dokumentu final. Říká, co dluží potomci, takže se přijímá jen na dokumentu subtree a jeho hodnotou je true nebo false a nic jiného.

Podstrom vyjměte pomocí require_contract: false, když adresáře pod ním jsou instance druhu, a ne sekce vrstvy: dovednost je SKILL.md a její příklady a kontrakt v každém instančním adresáři by opakoval, jednou na instanci, formát, který sekce uvádí jednou.

Podstrom, který vrstva nese, ale nepíše, se uvolní jménem:

scope: subtree
children:
  require_contract: true
  exempt: [.ai/repo/rules/vendor]

Vše na jmenovaném adresáři a pod ním nic nedluží. Záznam musí ležet uvnitř rozsahu dokumentu, který jej zapisuje, a nesmí být vlastním adresářem tohoto dokumentu: kontrakt uvolňuje adresáře, které řídí, a žádné jiné, takže zužující pravidlo nelze obejít vynětím podstromu z boku. Převzatý balíček pravidel je takto vyňat — je nainstalován, ne zde napsán, a jeho integrita je věcí jeho vlastního manifestu — zatímco každý adresář, který tento repozitář zapisuje, stále kontrakt dluží.

Jak to vidět

majordomus context validate                 # the whole tree; missing-contract names the directory
majordomus context explain .ai/repo/rules   # the chain that applies, and why each document is in
majordomus doctor                           # the same check through majordomus.context-integrity

test/cases/69_context_documents.sh to dokazuje mutací: adresář bez dokumentu selže, po přidání jednoho projde, adresář pod ním selže zase, výjimka řídicí smlouvy dosáhne celého podstromu, potomek ji zúží zpět na true, potomek, který se pokusí snížit zděděné true, je odmítnut jménem a klíč na dokumentu s rozsahem directory nebo s hodnotou, která není boolean, je invalid-front-matter. Případ užití document-every-directory-of-the-layer provádí odmítnutí od začátku do konce.

Co nepokrývá

Nic zde nesoudí, zda je smlouva dobrá. Nástroj kontroluje, že dokument existuje, parsuje se a potomek ho neoslabuje; zda jeho text skutečně říká workerovi, co do adresáře patří, posoudí recenzent. Pokrytí také končí u vrstvy: docs/ a zdrojový strom popisují dokumenty, které tracks, ne smlouva v každém adresáři.

Proč existuje

Osmnáct adresářů pod .ai/ zapadlo do ticha, zatímco strom, který je držel, se čistě validoval, protože nástroj kontroloval jen dokumenty, které existovaly. Povinnost, kterou nikdo nevynucuje, je zvyk, a zvyk je to první, o co repozitář přichází. .ai/repo/adrs/0011-every-directory-in-the-layer-carries-a-contract.md zaznamenává rozhodnutí a to, co odmítlo.

Detail vykreslený z docs/claims/context-coverage.md.

Od tvrzení k důkazu

  1. 1 · veřejné tvrzení

    Každý adresář vrstvy nese kontextový dokument, výjimku deklaruje kontrakt, který podstrom řídí, a potomek může tento požadavek zúžit, ale nikdy oslabit

    Vytvořeno na Context, Layer.

  2. 2 · kanonické tvrzení

    context-coveragedeklarovaný stav: zaručeno v docs/CLAIMS.yaml

    Definováno v přečti si to na tomto webu · docs/CONTEXT.md

  3. 3 · implementace

    lib/context_docs.sh

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

    Test: test/cases/69_context_documents.sh

    Provedeno v Odmítnutí adresáře vrstvy, který nic nedokumentuje.

  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 69_context_documents

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.