why.list
Every operational moment this repository holds, narrowed by any of the facets the catalogue itself reports, with the audiences, the areas, the derived filters and the counts. The default is the public catalogue; pass status=any for the drafts too.
Every operational moment this repository holds, narrowed by any of the facets the catalogue itself reports, with the audiences, the areas, the derived filters and the counts. The default is the public catalogue; pass status=any for the drafts too.
- 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 resource majordomus://why |
| HTTP | GET /api/v1/why operationId why.list |
| command line | majordomus why 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 · Query
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 catalogue reports, never a list written anywhere.
| property | type | required | description |
|---|---|---|---|
| area | string | null | no | Only moments in this operational area. default null |
| audience | string | null | no | Only moments this audience recognises. default null |
| capability | string | null | no | Only moments naming this capability of the executable. default null |
| command | string | null | no | Only moments naming this command. default null |
| featured | boolean | null | no | Only moments the homepage features. default null |
| frequency | string | null | no | Only moments of this frequency. default null |
| lifecycle | string | null | no | Only moments at this stage of work. default null |
| q | string | null | no | Case-insensitive text, matched against the identity, the titles, the hook, the summary, the tags, the aliases, the signals, the examples and the body. default null |
| severity | string | null | no | Only moments of this severity. default null |
| status | string | null | no | Only moments of this status. Absent means the public ones (`stable`); pass `any` for everything the catalogue holds. default null |
| tag | string | null | no | Only moments carrying this tag. 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 catalogue reports, never a\nlist written anywhere.",
"properties": {
"area": {
"default": null,
"description": "Only moments in this operational area.",
"type": [
"string",
"null"
]
},
"audience": {
"default": null,
"description": "Only moments this audience recognises.",
"type": [
"string",
"null"
]
},
"capability": {
"default": null,
"description": "Only moments naming this capability of the executable.",
"type": [
"string",
"null"
]
},
"command": {
"default": null,
"description": "Only moments naming this command.",
"type": [
"string",
"null"
]
},
"featured": {
"default": null,
"description": "Only moments the homepage features.",
"type": [
"boolean",
"null"
]
},
"frequency": {
"default": null,
"description": "Only moments of this frequency.",
"type": [
"string",
"null"
]
},
"lifecycle": {
"default": null,
"description": "Only moments at this stage of work.",
"type": [
"string",
"null"
]
},
"q": {
"default": null,
"description": "Case-insensitive text, matched against the identity, the titles, the hook, the\nsummary, the tags, the aliases, the signals, the examples and the body.",
"type": [
"string",
"null"
]
},
"severity": {
"default": null,
"description": "Only moments of this severity.",
"type": [
"string",
"null"
]
},
"status": {
"default": null,
"description": "Only moments of this status. Absent means the public ones (`stable`); pass `any`\nfor everything the catalogue holds.",
"type": [
"string",
"null"
]
},
"tag": {
"default": null,
"description": "Only moments carrying this tag.",
"type": [
"string",
"null"
]
}
},
"title": "Query",
"type": "object"
}output · CatalogueView
The whole catalogue as a client reads it.
| property | type | required | description |
|---|---|---|---|
| areas | array | yes | Every area, with its derived membership. |
| audiences | array | yes | Every audience, with its derived membership. |
| counts | reference | yes | The counts. |
| facets | reference | yes | The filters, derived from the records. |
| fingerprint | string | yes | The hash of the catalogue's own sources: stable for a tree, and independent of the rest of the index, so two runs over one tree agree. |
| moments | array | yes | The matching moments, in presentation order. |
| schema | string | yes | [`SCHEMA`]. |
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"
},
"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"
},
"Counts": {
"description": "How much the catalogue holds. Every count anywhere — a page, a heading, a report — is\none of these, so no number is ever written down.",
"properties": {
"areas": {
"description": "Public areas.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"audiences": {
"description": "Public audiences.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"examples": {
"description": "Concrete situations across the public moments.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"moments": {
"description": "Public moments.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"moments_all": {
"description": "Moments of every status, drafts included.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"signals": {
"description": "Signals across the public moments: the size of the questionnaire.",
"format": "uint",
"minimum": 0,
"type": "integer"
}
},
"required": [
"moments",
"moments_all",
"audiences",
"areas",
"signals",
"examples"
],
"type": "object"
},
"FacetValue": {
"description": "One selectable value of one facet, with how many public moments carry it. Every filter\na reader is offered is one of these; nothing anywhere lists the values by hand.",
"properties": {
"count": {
"description": "How many public moments carry it.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"label": {
"description": "The name to show; the value itself when the taxonomy holds no title for it.",
"type": "string"
},
"value": {
"description": "The value as a moment declares it.",
"type": "string"
}
},
"required": [
"value",
"label",
"count"
],
"type": "object"
},
"Facets": {
"description": "The filters the catalogue offers, derived from the records rather than declared.",
"properties": {
"areas": {
"description": "By operational area.",
"items": {
"$ref": "#/$defs/FacetValue"
},
"type": "array"
},
"audiences": {
"description": "By audience.",
"items": {
"$ref": "#/$defs/FacetValue"
},
"type": "array"
},
"capabilities": {
"description": "By capability of the executable.",
"items": {
"$ref": "#/$defs/FacetValue"
},
"type": "array"
},
"commands": {
"description": "By command.",
"items": {
"$ref": "#/$defs/FacetValue"
},
"type": "array"
},
"frequencies": {
"description": "By frequency.",
"items": {
"$ref": "#/$defs/FacetValue"
},
"type": "array"
},
"lifecycle": {
"description": "By stage of work.",
"items": {
"$ref": "#/$defs/FacetValue"
},
"type": "array"
},
"severities": {
"description": "By severity.",
"items": {
"$ref": "#/$defs/FacetValue"
},
"type": "array"
},
"tags": {
"description": "By tag.",
"items": {
"$ref": "#/$defs/FacetValue"
},
"type": "array"
}
},
"required": [
"audiences",
"areas",
"tags",
"severities",
"frequencies",
"lifecycle",
"capabilities",
"commands"
],
"type": "object"
},
"MomentSummary": {
"description": "One moment as a listing shows it: everything a card needs and nothing a page needs.",
"properties": {
"areas": {
"description": "The operational areas it falls under.",
"items": {
"type": "string"
},
"type": "array"
},
"audiences": {
"description": "The audiences that recognise it.",
"items": {
"type": "string"
},
"type": "array"
},
"examples": {
"description": "How many concrete situations it carries.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"featured": {
"description": "Whether the homepage shows it.",
"type": "boolean"
},
"frequency": {
"description": "`rare`, `occasional`, `common` or `constant`.",
"type": "string"
},
"hook": {
"description": "The first-person line an index shows.",
"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: `/why/<id>/`.",
"type": "string"
},
"severity": {
"description": "`low`, `medium` or `high`.",
"type": "string"
},
"signals": {
"description": "How many observable symptoms it declares.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"status": {
"description": "`stable`, `draft` or `deprecated`.",
"type": "string"
},
"summary": {
"description": "One line: what is actually wrong.",
"type": "string"
},
"tags": {
"description": "Free tags.",
"items": {
"type": "string"
},
"type": "array"
},
"title": {
"description": "The moment as a heading.",
"type": "string"
},
"weight": {
"description": "Presentation order.",
"format": "uint32",
"minimum": 0,
"type": "integer"
}
},
"required": [
"id",
"title",
"label",
"hook",
"summary",
"status",
"severity",
"frequency",
"weight",
"featured",
"audiences",
"areas",
"tags",
"route",
"signals",
"examples"
],
"type": "object"
}
},
"description": "The whole catalogue as a client reads it.",
"properties": {
"areas": {
"description": "Every area, with its derived membership.",
"items": {
"$ref": "#/$defs/AreaView"
},
"type": "array"
},
"audiences": {
"description": "Every audience, with its derived membership.",
"items": {
"$ref": "#/$defs/AudienceView"
},
"type": "array"
},
"counts": {
"$ref": "#/$defs/Counts",
"description": "The counts."
},
"facets": {
"$ref": "#/$defs/Facets",
"description": "The filters, derived from the records."
},
"fingerprint": {
"description": "The hash of the catalogue's own sources: stable for a tree, and independent of the\nrest of the index, so two runs over one tree agree.",
"type": "string"
},
"moments": {
"description": "The matching moments, in presentation order.",
"items": {
"$ref": "#/$defs/MomentSummary"
},
"type": "array"
},
"schema": {
"description": "[`SCHEMA`].",
"type": "string"
}
},
"required": [
"schema",
"fingerprint",
"counts",
"moments",
"audiences",
"areas",
"facets"
],
"title": "CatalogueView",
"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.
| transport | state | cases | targets |
|---|---|---|---|
| direct | covered | 3 | all cold+warm by-audience cold+warm search cold+warm |
| mcp | covered | 3 | all cold+warm by-audience cold+warm search cold+warm |
| http | covered | 3 | all cold+warm by-audience cold+warm search cold+warm |