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.

Schopnost přidaná do registru se objeví v seznamu, navigaci a vyhledávání Cockpitu a na vlastní stránce s formulářem generovaným z jejího schématu, aniž by se upravil jediný řádek Cockpitu

Cockpit na /cockpit nemá žádný vlastní seznam. To, co ukazuje, je to, co registr

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

a_capability_the_repository_adds_reaches_every_cockpit_surface přidá jedno pravidlo do fixture repozitáře, z něhož registr udělá schopnost, a ptá se Cockpitu na ni přes skutečný socket v jeho výpisu, na její vlastní stránce, na stránce jejího objektu s položkou navigace pro její druh a v jeho vyhledávání; the_runner_form_is_generated_from_the_input_schema ve stejném souboru dokazuje formulář. Nic v Cockpitu tu schopnost nejmenuje.

Co to znamená

Cockpit na /cockpit nemá žádný vlastní seznam. To, co ukazuje, je to, co registr odpoví, takže schopnost, která v době psaní Cockpit neexistovala, se v něm přesto objeví: ve výpisu schopností, v navigaci pro svůj druh, ve vyhledávání, na vlastní stránce a s formulářem spouštěče generovaným ze vstupního schématu schopnosti. Nikdo pro ni nepřidává routu, položku šablony ani položku menu a nic ve zdroji Cockpit ji nejmenuje.

Totéž platí opačným směrem. Schopnost, kterou registr už nenese, zmizí ze všech těchto povrchů, protože žádný z nich neuchoval kopii.

Princip

Sdílený server staví registr schopností z kanonických deklarací capability! a z deklarativních objektů vrstvy, z nichž registr každý promění ve vlastní schopnost. Cockpit pod apps/majordomus-cli/src/cockpit/ vykresluje tento registr: výpis a vyhledávání čtou vlastní výpis registru, navigace se odvozuje z druhů, které index drží, stránka entity se adresuje slugem odvozeným z identity objektu a formulář runneru se generuje ovládací prvek po ovládacím prvku ze vstupního schématu schopnosti, s příklady převzatými z případů měření výkonu schopnosti.

apps/majordomus-cli/tests/cockpit.rs to dokazuje přes skutečný socket proti jednorázovému repozitáři. a_capability_the_repository_adds_reaches_every_cockpit_surface přidá do fixture jedno pravidlo, commitne je, spustí server a poté se zeptá na novou schopnost ve výpisu, na její vlastní stránce, na stránce objektu s položkou navigace pro její druh, na její adrese entity, přes typované API entit, ve vyhledávání a v JSON, který čte paleta příkazů. the_runner_form_is_generated_from_the_input_schema dokazuje, že formulář schopnosti nese ovládací prvky, které deklaruje její schéma, s povinností a mezemi, a žádné napsané pro tuto schopnost.

Jak to vidět

majordomus serve                                   # logs the URL of the shared server
# then open <url>/cockpit/capabilities, pick any capability, and use its runner form
cd apps/majordomus-cli && cargo test --test cockpit

Přidejte pravidlo pod .ai/repo/rules/project/, commitněte ho a znovu načtěte Cockpit: schopnost pravidla je ve výpisu, ve vyhledávání i v indexu svého druhu, aniž by se cokoli jiného změnilo.

Co nepokrývá

Dokazuje, že schopnost dosáhne Cockpitu, ne že je každá stránka Cockpitu dobře rozvržena nebo že člověk najde, co hledá. Vizuální shodu drží designová pravidla a jejich vlastní případy.

Neprokazuje, že handler schopnosti je správný. Forma runneru pošle to, co schéma přijímá; co s tím schopnost udělá, dokazují vlastní testy té schopnosti.

Test přidává deklarativní objekt, což je způsob, jak repozitář přidá schopnost bez buildu. Schopnost deklarovaná v Rustu dosáhne týchž povrchů přes týž registr a dokazuje ji procházení stránek ve stejném souboru, ne tento test.

Proč existuje

Druhý seznam je místo, kde projekce začíná driftovat. Rozhraní, které si vede vlastní katalog toho, co systém umí, je správné v den, kdy je napsáno, a špatné první den, kdy je přidána schopnost bez něj, a nikdo si mezery nevšimne, dokud člověk nehledá věc, kterou strojové plochy už servírují. project.interfaces-are-projections to vylučuje pro každé rozhraní a toto tvrzení je důkazem Cockpitu, že platí: důkazem je schopnost, kterou autoři Cockpitu nikdy neviděli, přesto zobrazená na každé ploše.

Detail vykreslený z docs/claims/cockpit-is-a-projection-of-the-registry.md.

Od tvrzení k důkazu

  1. 1 · veřejné tvrzení

    Schopnost přidaná do registru se objeví v seznamu, navigaci a vyhledávání Cockpitu a na vlastní stránce s formulářem generovaným z jejího schématu, aniž by se upravil jediný řádek Cockpitu

    Vzniklo v Cockpit.

  2. 2 · kanonické tvrzení

    cockpit-is-a-projection-of-the-registrydeklarovaný stav: zaručeno v docs/CLAIMS.yaml

    Definováno v přečíst na tomto webu · docs/COCKPIT.md

  3. 3 · implementace

    apps/majordomus-cli/src/cockpit/mod.rs

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

    Test: apps/majordomus-cli/tests/cockpit.rs

  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 apps/majordomus-cli/tests/cockpit.rs

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