why.areas
Every operational area the catalogue declares, each with the public moments that fall under it. Membership is derived from the moments and is never listed in an area's own file.
Every operational area the catalogue declares, each with the public moments that fall under it. Membership is derived from the moments and is never listed in an area's own file.
- query
- behaviorally_verified
- module why
- #why
- #catalogue
Exposure
Where this one definition is reachable. Absence is explicit: a surface not listed does not carry it.
| surface | as |
|---|---|
| MCP | tool majordomus_why_areas resource majordomus://why/areas |
| HTTP | GET /api/v1/why/areas operationId why.areas |
| command line | majordomus why areas |
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 · Empty
No input.
No properties: the capability takes no input.
JSON Schema
{
"additionalProperties": false,
"description": "No input.",
"title": "Empty",
"type": "object"
}output · AreaList
Every area.
| property | type | required | description |
|---|---|---|---|
| areas | array | yes | Each, with its derived membership, in presentation order. |
| count | integer | yes | How many. |
JSON Schema
{
"$defs": {
"AreaView": {
"description": "One area, with the membership nobody authored.",
"properties": {
"body": {
"description": "The Markdown body.",
"type": "string"
},
"count": {
"description": "Derived: how many.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"id": {
"description": "The identity, the slug and the file name.",
"type": "string"
},
"moments": {
"description": "Derived: the public moments that fall under it, in presentation order.",
"items": {
"type": "string"
},
"type": "array"
},
"route": {
"default": "",
"description": "Derived: `/why/areas/<id>/`.",
"type": "string"
},
"source": {
"default": "",
"description": "Derived: the file it came from.",
"type": "string"
},
"status": {
"description": "`stable`, `draft` or `deprecated`.",
"type": "string"
},
"summary": {
"description": "One line: what falls under it.",
"type": "string"
},
"tags": {
"default": [],
"description": "Free tags.",
"items": {
"type": "string"
},
"type": "array"
},
"title": {
"description": "The area.",
"type": "string"
},
"weight": {
"default": 0,
"description": "Presentation order.",
"format": "uint32",
"minimum": 0,
"type": "integer"
}
},
"required": [
"id",
"title",
"summary",
"status",
"moments",
"count"
],
"type": "object"
}
},
"description": "Every area.",
"properties": {
"areas": {
"description": "Each, with its derived membership, in presentation order.",
"items": {
"$ref": "#/$defs/AreaView"
},
"type": "array"
},
"count": {
"description": "How many.",
"format": "uint",
"minimum": 0,
"type": "integer"
}
},
"required": [
"count",
"areas"
],
"title": "AreaList",
"type": "object"
}Policies
- benchmark
- required — a target on every transport the exposure declares; the cases are the input type's
- cache
- process — up to 4 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.