capabilities.projections
Řádek na schopnost s příkazovou řádkou, trasou HTTP, nástrojem MCP a zdrojem MCP, které dosahuje, zda je každá expozice, kterou deklaruje, zodpovězena tímto povrchem, a spustitelnými příkazy, které si nenárokuje žádná schopnost. Odvozeno z registru a deklarace clap; nic se nepíše ručně.
Řádek na schopnost s příkazovou řádkou, trasou HTTP, nástrojem MCP a zdrojem MCP, které dosahuje, zda je každá expozice, kterou deklaruje, zodpovězena tímto povrchem, a spustitelnými příkazy, které si nenárokuje žádná schopnost. Odvozeno z registru a deklarace clap; nic se nepíše ručně.
- query
- behaviorally_verified
- module capabilities
- #introspection
- #projections
Zpřístupnění
Kde je tato jedna definice dosažitelná. Absence je explicitní: povrch, který není uveden, ji nenese.
| povrch | jako |
|---|---|
| MCP | nástroj majordomus_projections |
| HTTP | GET /api/v1/capabilities/projections operationId capabilities.projections |
| příkazová řádka | majordomus capabilities projections |
Schémata
Kanonický vstup a výstup z typů Rustu; schéma nástroje MCP a parametry a odpovědi OpenAPI se odvozují z nich.
vstup · ProjectionsInput
capabilities.projections: které řádky a zda jen nesplněná tvrzení.| vlastnost | typ | povinné | popis |
|---|---|---|---|
| modul | string | null | ne | Pouze schopnosti složené v tomto modulu. default null |
| nesplněno | boolean | ne | Jen schopnosti, jejichž deklarovaná vystavení nejsou všechna zodpovězena jejich povrchem. Prázdné je uzavření, které pravidlo žádá. výchozí false |
JSON Schema
{
"additionalProperties": false,
"description": "The input of `capabilities.projections`: which rows, and whether only the unmet claims.",
"properties": {
"module": {
"default": null,
"description": "Only capabilities composed in this module.",
"type": [
"string",
"null"
]
},
"unmet": {
"default": false,
"description": "Only the capabilities whose declared exposures are not all answered by their\nsurface. Empty is the closure the rule asks for.",
"type": "boolean"
}
},
"title": "ProjectionsInput",
"type": "object"
}output · ClosureMatrix
| vlastnost | typ | povinné | popis |
|---|---|---|---|
| řádky | array | ano | Jeden řádek na schopnost, v pořadí podle id. |
| nepodloženo | array | ano | Spustitelné příkazy příkazové řádky, které si nenárokuje žádná schopnost, v pořadí příkazů. |
| nezařazeno | array | ano | Z nich ty, které nevysvětluje ani crate::cli::local::LOCAL: příkaz, který není projekcí schopnosti ani deklarovaným příkazem jen pro příkazovou řádku s důvodem. Prázdné je uzavření, které pravidlo žádá; cokoli tu je, je operace, která opustila API omylem, a ne rozhodnutím. |
JSON Schema
{
"$defs": {
"ExecutionEffect": {
"description": "What running a capability changes outside the caller.\n\nClassified, never declared: it follows from the kind, which is the field a declaration\nalready carries. A projection reads this to decide whether to ask before running\nsomething — the Cockpit's confirmation is derived from it — instead of naming\ncapabilities it must treat carefully, which is a list that goes stale the day after it\nis written.",
"oneOf": [
{
"const": "read",
"description": "Nothing changes. Every query and every resource of this executable.",
"type": "string"
},
{
"const": "process_state",
"description": "This process's own memory changes, and nothing outside it.",
"type": "string"
},
{
"const": "repository_mutation",
"description": "The repository changes.\n\nFor most of this executable's life nothing classified to this, because no capability\nof any kind wrote to the repository. That day arrived with [ADR 0040]: development\nsemantics are capabilities of this runtime, and the first of them — `plan.transition`\n— stamps a field into an issue's own tracked record. The variant was put on the model\nin advance so that when one did, it would say so *here*, where a projection already\nreads it and a client already asks before running it, rather than in whichever page\nhappens to render its button.\n\nIt is not classified from the kind, because the kind cannot know it: a command that\nannounces a peer and a command that writes a tracked file are the same kind. A\nhandler that writes the repository says so with\n`ExecutionPolicy::writes_repository`, the way one that stops says so with\n`ExecutionPolicy::stoppable`.\n\n[ADR 0040]: https://github.com/korczis/prismatic-majordomus/blob/master/.ai/repo/adrs/0040-development-semantics-are-capabilities-of-one-runtime.md",
"type": "string"
}
]
},
"Row": {
"description": "Where one capability is projected, and where it is not.\n\nThis is the coverage matrix of the rule: a row per capability, a column per interface.\nIt is derived, never written down — a capability that reaches nothing shows as a row of\n`false`, which is exactly the \"exists but is invisible\" case worth seeing.",
"properties": {
"cli": {
"description": "The command line, when it declares one and clap has it.",
"type": [
"string",
"null"
]
},
"closed": {
"description": "Whether every exposure this row declares is answered by its surface.",
"type": "boolean"
},
"effect": {
"$ref": "#/$defs/ExecutionEffect",
"description": "What a call changes: nothing, this process's memory, or the repository. The same\nclassification every projection reads, so the matrix answers \"where is it reachable\"\nand \"what does reaching it risk\" in one row."
},
"http": {
"description": "The HTTP route, when it declares one.",
"type": [
"string",
"null"
]
},
"id": {
"description": "The canonical id.",
"type": "string"
},
"kind": {
"description": "Query, command or resource.",
"type": "string"
},
"mcp_resource": {
"description": "The MCP resource URI, when it declares one.",
"type": [
"string",
"null"
]
},
"mcp_tool": {
"description": "The MCP tool name, when it declares one.",
"type": [
"string",
"null"
]
},
"module": {
"description": "The module that composes it.",
"type": "string"
},
"source": {
"description": "Where the capability is declared; repository-relative.",
"type": "string"
},
"stability": {
"description": "Where it stands.",
"type": "string"
}
},
"required": [
"id",
"module",
"kind",
"stability",
"effect",
"closed",
"source"
],
"type": "object"
}
},
"description": "The whole matrix, with the findings and the debt beside it: one value that answers\n\"where does each capability appear, and is any claim unmet\".",
"properties": {
"rows": {
"description": "One row per capability, in id order.",
"items": {
"$ref": "#/$defs/Row"
},
"type": "array"
},
"unbacked": {
"description": "Runnable commands of the command line that no capability claims, in command order.",
"items": {
"type": "string"
},
"type": "array"
},
"unclassified": {
"description": "Of those, the ones `crate::cli::local::LOCAL` does not explain either: a command\nthat is neither the projection of a capability nor declared command-line-only with\na reason. Empty is the closure the rule asks for; anything here is an operation\nthat left the API by accident rather than by decision.",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"rows",
"unbacked",
"unclassified"
],
"title": "ClosureMatrix",
"type": "object"
}Politiky
- benchmark
- povinné — cíl na každém transportu, který expozice deklaruje; případy jsou ty ze vstupního typu
- cache
- process — až 8 položek v procesu, omezených otiskem registru
Cíle benchmarku
Odvozeno z registru pro tento repozitář: jeden požadavek na transport a případy, které poskytuje typ vstupu. Celá matice je na stránce měření výkonu.