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.

Co nástroj ví o provideru, se deklaruje jednou a promítá se všude

Co nástroj ví o provideru, se deklaruje jednou a promítá se všude

majordomus://rule/project.providers-are-data@1aktivní dokumentaceproviderodvozování

odkazuje na něj

Zdůvodnění

Poskytovatel byl před tímto pravidlem znám na třech místech a žádné z nich nebyla data. Jeho titul a klientská konfigurace, kterou čte, byly tabulkou zkompilovanou do programu; scratch kořeny, pod nimiž vytváří checkouty, byly seznamem zkompilovaným do topologie worktree; a množina poskytovatelů byla ručně jmenována v tuctu dokumentů — README, návrhový dokument, průvodce MCP, titulek funkce, shrnutí případu užití — z nichž každý byl správný v den napsání a chybný v den, kdy byl přidán poskytovatel (ADR 0024). Pravidlo o číslech, project.no-counts-in-prose, existuje, protože počet v próze je zastaralý ve chvíli, kdy se změní to, co počítá; seznam jmen má stejnou vlastnost a stejný lék.

Jedna deklarace vedle šablon a jedna generovaná tabulka, na kterou ukazuje každý dokument, je tvar, který už má všechno ostatní v tomto repozitáři: schopnosti mají docs/generated/capabilities.md, příkazová řádka má docs/generated/cli.md, artefakty mají svůj manifest. Ručně psaný seznam poskytovatelů v dokumentu je druhá deklarace téhož faktu a druhá deklarace je designová vada (docs/CAPABILITIES.md, ADR 0004).

Požadované chování

  1. Jedna deklarace. share/providers.yaml deklaruje pro každého providera titulek, pod nímž ho člověk zná, soubor, z něhož čte konfiguraci klienta MCP v rozsahu projektu, a scratch kořeny, pod nimiž vytváří checkouty. Množina providerů jsou šablony pod share/providers/; deklarace bez šablony je chyba a šablona bez deklarace varování, obojí hlásí majordomus product validate.
  2. Každá projekce čte deklaraci. majordomus product providers, nástroj MCP majordomus_providers, GET /api/v1/product/providers, karty poskytovatelů na webu, scratch kořeny topologie worktree a docs/generated/providers.{md,json,yaml} se z ní odvozují. Žádný zdrojový soubor nenese titul poskytovatele, konfigurační soubor ani scratch kořen jako literál.
  3. Dokumenty ukazují, nevypisují. Dokument, který musí říct, kteří poskytovatelé existují, jmenuje docs/generated/providers.md. Řádek, který jmenuje tři a více deklarovaných poskytovatelů, je seznam a soubor, který jej nese, musí ukazovat na generovanou tabulku; záznamy okamžiku — rozhodnutí, tvrzení, changelog — jsou vyňaty, protože říkají, co platilo, když byly napsány.
  4. Přidání providera je data a šablona. Záznam v share/providers.yaml, šablona vedle něj a — když toto repozitář přes něj promítá bootstrap — projekce v .ai/repo/policy.yaml s cílem pod merge=derived. Pak scripts/derive. Nic dalšího se neupravuje.

Chování při selhání

scripts/ci/providers-check je kontrola: selže na deklaraci bez šablony nebo šabloně bez deklarace, na promítnutém bootstrapu, který merge driver nepokrývá, na promítnutí politiky přes providera, který neexistuje, a na dokumentu, který vyjmenovává providery ručně, aniž by odkazoval na generovanou tabulku; s dostupným spustitelným souborem selže také tehdy, když jsou docs/generated/providers.* zastaralé, a bez něj selže scripts/derive-check. Kontrola běží v úloze structure pro změny pod share/, docs/, .ai/, crate a generovanými artefakty.

Ověření

scripts/ci/providers-check na tomto stromě a majordomus generate --check providers. apps/majordomus-cli/tests/product.rs dokazuje, že tabulka poskytovatelů jsou šablony, které distribuce dodává, ozdobené politikou; testy služby worktree dokazují, že scratch kořeny jsou rozbalené deklarace.

Odkud to pochází

kanonický soubor
.ai/repo/rules/project/providers-are-data.v1.md
identity
project.providers-are-data@1
dostupné také jako
Zdroj MCP majordomus://rule/project.providers-are-data@1 · majordomus entity show rule/project-providers-are-data-1 · GET /api/v1/entity?uri=majordomus://rule/project.providers-are-data@1
v Cockpitu
/cockpit/objects/rule/project-providers-are-data-1

Tato stránka je generována z výše uvedeného souboru pomocí scripts/generate-site-data; úprava stránky nic nemění, úprava souboru změní všechna rozhraní. Výše uvedené vztahy jsou hrany docs/generated/graph.json, které spustitelný program zapisuje ze stejného indexu.

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