capabilities.projections
A row per capability with the command line, HTTP route, MCP tool and MCP resource it reaches, whether every exposure it declares is answered by that surface, and the runnable commands no capability claims. Derived from the registry and the clap declaration; nothing is written down.
A row per capability with the command line, HTTP route, MCP tool and MCP resource it reaches, whether every exposure it declares is answered by that surface, and the runnable commands no capability claims. Derived from the registry and the clap declaration; nothing is written down.
- query
- behaviorally_verified
- module capabilities
- #introspection
- #projections
Exposure
Where this one definition is reachable. Absence is explicit: a surface not listed does not carry it.
| surface | as |
|---|---|
| MCP | tool majordomus_projections |
| HTTP | GET /api/v1/capabilities/projections operationId capabilities.projections |
| command line | majordomus capabilities projections |
Schemas
The canonical input and output, from the Rust types; the MCP tool schema and the OpenAPI parameters and responses are derived from these.
input · ProjectionsInput
The input of `capabilities.projections`: which rows, and whether only the unmet claims.
| property | type | required | description |
|---|---|---|---|
| module | string | null | no | Only capabilities composed in this module. default null |
| unmet | boolean | no | Only the capabilities whose declared exposures are not all answered by their surface. Empty is the closure the rule asks for. default 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
The whole matrix, with the findings and the debt beside it: one value that answers "where does each capability appear, and is any claim unmet".
| property | type | required | description |
|---|---|---|---|
| rows | array | yes | One row per capability, in id order. |
| unbacked | array | yes | Runnable commands of the command line that no capability claims, in command order. |
JSON Schema
{
"$defs": {
"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"
},
"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",
"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"
}
},
"required": [
"rows",
"unbacked"
],
"title": "ClosureMatrix",
"type": "object"
}Policies
- benchmark
- required — a target on every transport the exposure declares; the cases are the input type's
- cache
- process — up to 8 entries in the process, scoped by the registry fingerprint
Benchmark targets
Derived from the registry for this repository: one requirement per transport, and the cases the input type provides. The whole matrix is on the benchmarks page.