Skip to content

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.

Exposure

Where this one definition is reachable. Absence is explicit: a surface not listed does not carry it.

surfaceas
MCPtool majordomus_projections
HTTPGET /api/v1/capabilities/projections operationId capabilities.projections
command linemajordomus 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.

propertytyperequireddescription
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".

propertytyperequireddescription
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.

transportstatecasestargets
directcovered2all cold+warm
unmet cold+warm
mcpcovered2all cold+warm
unmet cold+warm
httpcovered2all cold+warm
unmet cold+warm