product.features
Every product feature this repository declares, narrowed by any of the facets the model derives — featured, area, module, command, surface, text — with the interfaces each is exposed through, the counts behind it and what is guaranteed about it, none of which its file states. The default is the stable set; pass status=any for the drafts too.
Every product feature this repository declares, narrowed by any of the facets the model derives — featured, area, module, command, surface, text — with the interfaces each is exposed through, the counts behind it and what is guaranteed about it, none of which its file states. The default is the stable set; pass status=any for the drafts too.
- query
- behaviorally_verified
- module product
- #product
- #features
- #introspection
Exposure
Where this one definition is reachable. Absence is explicit: a surface not listed does not carry it.
| surface | as |
|---|---|
| MCP | tool majordomus_features resource majordomus://product |
| HTTP | GET /api/v1/product/features operationId product.features |
| command line | majordomus product list |
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 · ProductQuery
What a listing is narrowed by. Every field is optional and they compose as a conjunction; the values a caller may pass are the facets the model derives, never a list written anywhere.
| property | type | required | description |
|---|---|---|---|
| area | string | null | no | Only features serving this operational area. default null |
| command | string | null | no | Only features made of this shell command. default null |
| featured | boolean | null | no | Only the features the homepage shows. default null |
| module | string | null | no | Only features made of this capability module. default null |
| q | string | null | no | Case-insensitive text, matched against the identity, the titles, the headline, the summary, the tags and the body. default null |
| status | string | null | no | Only features of this status. Absent means the stable ones; pass `any` for everything the model holds. default null |
| surface | string | null | no | Only features exposed through this surface: `cli`, `api`, `mcp`, `cockpit`, `docs`. default null |
JSON Schema
{
"additionalProperties": false,
"description": "What a listing is narrowed by. Every field is optional and they compose as a\nconjunction; the values a caller may pass are the facets the model derives, never a list\nwritten anywhere.",
"properties": {
"area": {
"default": null,
"description": "Only features serving this operational area.",
"type": [
"string",
"null"
]
},
"command": {
"default": null,
"description": "Only features made of this shell command.",
"type": [
"string",
"null"
]
},
"featured": {
"default": null,
"description": "Only the features the homepage shows.",
"type": [
"boolean",
"null"
]
},
"module": {
"default": null,
"description": "Only features made of this capability module.",
"type": [
"string",
"null"
]
},
"q": {
"default": null,
"description": "Case-insensitive text, matched against the identity, the titles, the headline, the\nsummary, the tags and the body.",
"type": [
"string",
"null"
]
},
"status": {
"default": null,
"description": "Only features of this status. Absent means the stable ones; pass `any` for\neverything the model holds.",
"type": [
"string",
"null"
]
},
"surface": {
"default": null,
"description": "Only features exposed through this surface: `cli`, `api`, `mcp`, `cockpit`, `docs`.",
"type": [
"string",
"null"
]
}
},
"title": "ProductQuery",
"type": "object"
}output · FeatureList
The features as a client reads them.
| property | type | required | description |
|---|---|---|---|
| counts | reference | yes | The counts. |
| features | array | yes | The matching features, in presentation order. |
| fingerprint | string | yes | The hash of the model's sources and derived facts. |
| schema | string | yes | [`SCHEMA`]. |
| surfaces | array | yes | The surface vocabulary, with how many stable features each exposes. |
JSON Schema
{
"$defs": {
"FeatureCounts": {
"description": "How much stands behind a feature, every number derived.",
"properties": {
"adrs": {
"description": "Decisions it names.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"capabilities": {
"description": "Builtin capabilities of the modules it names.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"claims": {
"description": "Claims it names.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"cli_paths": {
"description": "Command-line paths of the executable among them.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"commands": {
"description": "Public commands of the shell tool it names.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"docs": {
"description": "Documents it names.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"enforced_rules": {
"description": "Rules the tool enforces among them.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"http_routes": {
"description": "HTTP routes among them.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"mcp_resources": {
"description": "MCP resources among them, plus one per object of the kinds it names.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"mcp_tools": {
"description": "MCP tools among them.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"moments": {
"description": "Moments it answers.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"objects": {
"description": "Objects of the kinds it names.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"rules": {
"description": "Rules it names.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"use_cases": {
"description": "Use cases it names.",
"format": "uint",
"minimum": 0,
"type": "integer"
}
},
"required": [
"capabilities",
"mcp_tools",
"mcp_resources",
"http_routes",
"cli_paths",
"commands",
"objects",
"rules",
"enforced_rules",
"docs",
"adrs",
"claims",
"use_cases",
"moments"
],
"type": "object"
},
"FeatureEvidence": {
"description": "What is guaranteed about a feature, counted from the claims it names: never a word a\nperson wrote about the feature's maturity.",
"properties": {
"claims": {
"additionalProperties": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"description": "Claims by status: `guaranteed`, `advisory`, `planned`, `rejected`.",
"type": "object"
},
"modules": {
"additionalProperties": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"description": "The modules it names by stability.",
"type": "object"
}
},
"required": [
"claims",
"modules"
],
"type": "object"
},
"FeatureSummary": {
"description": "One feature as a listing shows it: everything a card needs and nothing a page needs.",
"properties": {
"areas": {
"description": "The operational areas it serves.",
"items": {
"type": "string"
},
"type": "array"
},
"audiences": {
"description": "The audiences it is written for.",
"items": {
"type": "string"
},
"type": "array"
},
"counts": {
"$ref": "#/$defs/FeatureCounts",
"description": "Derived: how much stands behind it."
},
"evidence": {
"$ref": "#/$defs/FeatureEvidence",
"description": "Derived: what is guaranteed."
},
"featured": {
"description": "Whether the homepage shows it.",
"type": "boolean"
},
"headline": {
"description": "The promise a visitor reads first.",
"type": "string"
},
"id": {
"description": "The identity and the slug.",
"type": "string"
},
"label": {
"description": "The name a narrow column shows: the short title, or the title.",
"type": "string"
},
"route": {
"description": "Derived: `/features/<id>/`.",
"type": "string"
},
"status": {
"description": "`stable`, `draft` or `deprecated`.",
"type": "string"
},
"summary": {
"description": "One line: what it does.",
"type": "string"
},
"surfaces": {
"$ref": "#/$defs/Surfaces",
"description": "Derived: the interfaces it is exposed through."
},
"tags": {
"description": "Free tags.",
"items": {
"type": "string"
},
"type": "array"
},
"title": {
"description": "The feature as a heading.",
"type": "string"
},
"weight": {
"description": "Presentation order.",
"format": "uint32",
"minimum": 0,
"type": "integer"
}
},
"required": [
"id",
"title",
"label",
"headline",
"summary",
"status",
"weight",
"featured",
"areas",
"audiences",
"tags",
"route",
"surfaces",
"counts",
"evidence"
],
"type": "object"
},
"ProductCounts": {
"description": "How much the model holds. Every count anywhere is one of these.",
"properties": {
"commands": {
"description": "Public commands of the shell tool.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"commands_covered": {
"description": "Commands a stable feature names.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"featured": {
"description": "Stable features the homepage shows.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"features": {
"description": "Stable features.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"features_all": {
"description": "Features of every status, drafts included.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"kinds": {
"description": "Kinds of the layer a feature can present.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"kinds_covered": {
"description": "Kinds a stable feature names.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"modules": {
"description": "Builtin modules of the executable, and how many a stable feature names.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"modules_covered": {
"description": "Modules a stable feature names.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"providers": {
"description": "Providers the tool has an adapter for.",
"format": "uint",
"minimum": 0,
"type": "integer"
}
},
"required": [
"features",
"features_all",
"featured",
"providers",
"modules",
"modules_covered",
"commands",
"commands_covered",
"kinds",
"kinds_covered"
],
"type": "object"
},
"SurfaceInfo": {
"description": "One surface of the vocabulary, as a client reads it.",
"properties": {
"features": {
"description": "How many stable features it exposes.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"id": {
"description": "`cli`, `api`, `mcp`, `cockpit` or `docs`.",
"type": "string"
},
"route": {
"description": "The route on the website where the surface is documented.",
"type": "string"
},
"title": {
"description": "The name a person reads.",
"type": "string"
}
},
"required": [
"id",
"title",
"route",
"features"
],
"type": "object"
},
"Surfaces": {
"description": "The interfaces a feature is exposed through, decided from what its references project\nand from nothing a file says. Each is a fact with a reason a reader can check: `cli` is\ntrue when a module of the feature has a capability with a command-line path or the\nfeature names a shell command; `api` when a module has an HTTP route; `mcp` when a module\nhas an MCP tool or resource, or the feature names a kind, since every object of the layer\nis an MCP resource; `cockpit` when the feature names a Cockpit area or a module, since\nevery capability has a Cockpit page; `docs` when it names a document.",
"properties": {
"api": {
"description": "The HTTP routes under `/api/v1/`, and the OpenAPI document over them.",
"type": "boolean"
},
"cli": {
"description": "The command line: the executable's own, or the shell tool's.",
"type": "boolean"
},
"cockpit": {
"description": "The Cockpit.",
"type": "boolean"
},
"docs": {
"description": "The documentation.",
"type": "boolean"
},
"mcp": {
"description": "MCP: a tool, or a resource.",
"type": "boolean"
}
},
"required": [
"cli",
"api",
"mcp",
"cockpit",
"docs"
],
"type": "object"
}
},
"description": "The features as a client reads them.",
"properties": {
"counts": {
"$ref": "#/$defs/ProductCounts",
"description": "The counts."
},
"features": {
"description": "The matching features, in presentation order.",
"items": {
"$ref": "#/$defs/FeatureSummary"
},
"type": "array"
},
"fingerprint": {
"description": "The hash of the model's sources and derived facts.",
"type": "string"
},
"schema": {
"description": "[`SCHEMA`].",
"type": "string"
},
"surfaces": {
"description": "The surface vocabulary, with how many stable features each exposes.",
"items": {
"$ref": "#/$defs/SurfaceInfo"
},
"type": "array"
}
},
"required": [
"schema",
"fingerprint",
"counts",
"surfaces",
"features"
],
"title": "FeatureList",
"type": "object"
}Policies
- benchmark
- required — a target on every transport the exposure declares; the cases are the input type's
- cache
- process — up to 32 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.