The catalogue
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
- benchmark required
- cache process (max_entries=32)
- MCP tool majordomus_why
- MCP resource {"name": "why", "uri": "majordomus://why"}
- $ why list
Query parameters
| name | type | required | description | examples |
|---|---|---|---|---|
| audience | string | no | Only moments this audience recognises. | by-audience: "agency" |
| area | string | no | Only moments in this operational area. | |
| tag | string | no | Only moments carrying this tag. | |
| severity | string | no | Only moments of this severity. | |
| frequency | string | no | Only moments of this frequency. | |
| lifecycle | string | no | Only moments at this stage of work. | |
| capability | string | no | Only moments naming this capability of the executable. | |
| command | string | no | Only moments naming this command. | |
| featured | boolean | no | Only moments the homepage features. | |
| status | string | no | Only moments of this status. Absent means the public ones (`stable`); pass `any` for everything the catalogue holds. | |
| q | string | 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. | search: "context" |
Try it
The port is whatever the server logged; 8741 is the one it asks for first. The values are the operation's first example.
curl -s "http://127.0.0.1:8741/api/v1/why?audience=agency&q=context"
Tested by apps/majordomus-cli/tests/http_serve.rs, which replays the route with these values against a server on a real socket.
Responses
| status | body | meaning |
|---|---|---|
| 200 | CatalogueView | The catalogue: the result. |
| 400 | ErrorBody | invalid_input: The input does not fit the schema: a parameter of the wrong type, an unknown one, or a value the capability rejects. |
| 404 | ErrorBody | not_found: The input names something the repository does not hold. |
| 500 | ErrorBody | internal: The capability failed for a reason of its own; the message names it. |
| default | ErrorBody | Any other failure the transport reports: 405 method_not_allowed for another method on this path, 400 invalid_input for a body that is not a JSON object. |