why.audiences
Every audience the catalogue declares, each with the public moments that name it. Membership is derived from the moments and is never listed in an audience's own file.
Every audience the catalogue declares, each with the public moments that name it. Membership is derived from the moments and is never listed in an audience'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_audiences resource majordomus://why/audiences |
| HTTP | GET /api/v1/why/audiences operationId why.audiences |
| command line | majordomus why audiences |
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 · AudienceList
Every audience.
| property | type | required | description |
|---|---|---|---|
| audiences | array | yes | Each, with its derived membership, in presentation order. |
| count | integer | yes | How many. |
JSON Schema
{
"$defs": {
"AudienceView": {
"description": "One audience, 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 name it, in presentation order.",
"items": {
"type": "string"
},
"type": "array"
},
"route": {
"default": "",
"description": "Derived: `/why/audiences/<id>/`.",
"type": "string"
},
"short_title": {
"description": "Two or three words for a filter chip.",
"type": [
"string",
"null"
]
},
"source": {
"default": "",
"description": "Derived: the file it came from.",
"type": "string"
},
"status": {
"description": "`stable`, `draft` or `deprecated`.",
"type": "string"
},
"summary": {
"description": "One line: the working situation.",
"type": "string"
},
"tags": {
"default": [],
"description": "Free tags.",
"items": {
"type": "string"
},
"type": "array"
},
"title": {
"description": "Who they are.",
"type": "string"
},
"weight": {
"default": 0,
"description": "Presentation order.",
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"workflow": {
"description": "One line: how work flows for them.",
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"title",
"summary",
"status",
"moments",
"count"
],
"type": "object"
}
},
"description": "Every audience.",
"properties": {
"audiences": {
"description": "Each, with its derived membership, in presentation order.",
"items": {
"$ref": "#/$defs/AudienceView"
},
"type": "array"
},
"count": {
"description": "How many.",
"format": "uint",
"minimum": 0,
"type": "integer"
}
},
"required": [
"count",
"audiences"
],
"title": "AudienceList",
"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.