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.

Externí rozhraní jsou projekce jedné definice schopnosti

Externí rozhraní jsou projekce jedné definice schopnosti

majordomus://rule/project.interfaces-are-projections@1aktivní architekturacapabilitiesrust

odkazuje na

Nic. Tento objekt nedeklaruje žádný odkaz.

odkazuje na něj

Zdůvodnění

Spustitelný soubor v Rustu zpřístupňuje tytéž věci přes několik rozhraní. Tabulka nástrojů v kódu MCP, tabulka rout v kódu HTTP, ručně psaný dokument OpenAPI a Markdown inventář by byly čtyři kopie jednoho faktu a kopie se rozcházejí v okamžiku, kdy se jedna upraví. Registr v apps/majordomus-cli/src/capability/ je jediné místo, kde schopnost existuje; docs/CAPABILITIES.md říká, co je kanonické, co odvozené a co není autoritativní.

Požadované chování

Spustitelná schopnost je jeden typovaný deskriptor s jedním handlerem, složený do registru v capability/builtin.rs. Deklarativní objekt je soubor, který sources.yaml vrstvy mapuje na druh, jehož čtení deklarují share/kinds.yaml a share/schemas/, načítaný za běhu; repozitář přidává druhy a schémata pod .ai/repo/knowledge/ a nikdy neupravuje Rust kvůli dalšímu objektu známého druhu. Nástroje a zdroje MCP, HTTP routy, dokument OpenAPI, shell Swagger UI, příkazy capabilities, docs/generated/ a stránky /registry/ webu jsou projekce sestavené z registru na požádání; žádná z nich nedeklaruje vlastní jméno, popis, schéma ani routu. Allow-listy shellového nástroje pod share/allow/ jsou generovány ze schémat.

Chování při selhání

Recenzent rozhoduje o tomto pravidle u změny, která přidává definici do projekce; sady crate rozhodují o strojově kontrolovatelné části: tests/projections.rs selže, když projekce nese položku, kterou registr nemá, nebo postrádá takovou, kterou deklaruje, a majordomus generate --check selže, když se commitnutá projekce liší od registru.

Příkazová řádka je jediné rozhraní, které je deklarováno dvakrát — clap vlastní parsování, --help a množiny hodnot, takže CliExposure je tvrzení o deklaraci, která žije jinde, ne projekce vybudovaná průchodem registru. Obojí se porovnává: capability/closure.rs shodí schopnost, která si nárokuje příkazovou řádku, na niž deklarace clap neodpovídá (CLOSURE_CLI_ABSENT) nebo odpovídá jen skupinou, kterou nelze spustit (CLOSURE_CLI_NOT_RUNNABLE), v tests/projections.rs, ve vlastních testech cratu a jako řádek projection z capabilities validate, který skončí s exit 10. Spustitelný příkaz, který si žádná schopnost nenárokuje, se hlásí, ne odmítá — příkazy procesů a slovesa životního cyklu jsou legitimně psána ručně a počet je mírou toho, kolik příkazové řádky se stále neodvozuje — ale nikdy to není tiché. Každý takový příkaz jednou řekne, proč je lokální, v apps/majordomus-cli/src/cli/local.rs, s jedním ze čtyř strukturálních důvodů a poznámkou o daném příkazu; quality::parity toto tvrzení kontroluje v obou směrech, capabilities projections nese příkazy, které žádné nenesou, a scripts/ci/projection-check skončí s exit 10 na prvním z nich. Nikde jinde neexistuje soupis takových příkazů: seznam jmen bez důvodů je třetí kopie množiny, kterou už pinují dvě deklarace, a ten, který tento repozitář držel, dvakrát zastaral, než byl odstraněn.

Ověření

Review, cargo test --manifest-path apps/majordomus-cli/Cargo.toml, majordomus capabilities validate (řádek projection) a majordomus capabilities projections --unmet, a test/cases/76_capabilities_projections.sh, který sestaví spustitelný soubor, nemění nic než data a přečte tutéž schopnost zpět přes každé rozhraní. Web je jedno další rozhraní: jeho stránky o spustitelném souboru se vykreslují z datové sady registru a routují z manifestu registru (test/cases/95_executable_reference.sh) a scripts/site-check odmítne šablonu, generátor nebo navigační soubor, který schopnost jmenuje ručně.

Odkud to pochází

kanonický soubor
.ai/repo/rules/project/interfaces-are-projections.v1.md
identity
project.interfaces-are-projections@1
dostupné také jako
Zdroj MCP majordomus://rule/project.interfaces-are-projections@1 · majordomus entity show rule/project-interfaces-are-projections-1 · GET /api/v1/entity?uri=majordomus://rule/project.interfaces-are-projections@1
v Cockpitu
/cockpit/objects/rule/project-interfaces-are-projections-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.