Ticket operations
2 operations named ticket.*. Every one runs in a batch through apply_ops, dry_run_ops, the CLI or the admin.
| Operation | What it does | Permission | Confirmation |
|---|---|---|---|
| ticket.create | Report a problem to the platform owner: a bug, a missing capability, a refusal that looks wrong (category refusal), a docs gap, anything that blocks the person you work for. | ticket.report | none |
| ticket.list | List the tickets you reported on this site, newest first (at most 100), optionally only those with a status: open, triaged (the platform owner has seen it) or closed (with the platform owner's closeNote). | ticket.report | none |
ticket.create
Report a problem to the platform owner: a bug, a missing capability, a refusal that looks wrong (category refusal), a docs gap, anything that blocks the person you work for. Write the title as one line and the body in Markdown (what you were doing, for whom, what blocked you); add steps, expected and actual (paste the error code and message) when you have them, the requestId of the failing batch and the pageId it was on. severity blocking means the person cannot go on. The platform owner reads it in the admin and answers by closing it with a note, which ticket.list shows. It is not site content: it writes no document, has no undo and must run alone in a batch, not as a dry run; the MCP tool report_issue does the same in one call. At most 20 tickets an hour per person (429 ticket_rate_limited); a pageId that is not a page of this site is 422 ticket_page_unknown.
Example input
{
"title": "tree.commit refuses a hover colour on a button label",
"body": "Setting the hover colour of a `ds.button` label through `p:label|s::hover` is refused, although the inspector sets it.",
"category": "refusal",
"severity": "high",
"pageId": "6f1d2c3b-4a59-4e8d-9c7b-1a2b3c4d5e6f",
"actual": "422 tree_invalid I8",
"requestId": "0b7c6d5e-4f3a-4b2c-8d1e-9f0a1b2c3d4e"
}Input
| Field | Type | Required | Notes |
|---|---|---|---|
| title | string | yes | At least 1 character. At most 160 characters. |
| body | string | yes | At least 1 character. At most 20000 characters. |
| category | string | yes | One of "bug", "missing-capability", "refusal", "docs", "other". |
| severity | string | no | One of "low", "medium", "high", "blocking". Default "medium". |
| pageId | string | no | At least 1 character. At most 36 characters. |
| steps | string | no | At least 1 character. At most 5000 characters. |
| expected | string | no | At least 1 character. At most 5000 characters. |
| actual | string | no | At least 1 character. At most 5000 characters. |
| requestId | string (uuid) | no |
Output
| Field | Type | Required | Notes |
|---|---|---|---|
| ticket | object | yes | |
| ticket.id | string (uuid) | yes | |
| ticket.status | string | yes | One of "open", "triaged", "closed". |
| ticket.title | string | yes | |
| ticket.body | string | yes | |
| ticket.category | string | yes | One of "bug", "missing-capability", "refusal", "docs", "other". |
| ticket.severity | string | yes | One of "low", "medium", "high", "blocking". |
| ticket.steps | string | null | yes | |
| ticket.expected | string | null | yes | |
| ticket.actual | string | null | yes | |
| ticket.requestId | string | null | yes | |
| ticket.pageId | string | null | yes | |
| ticket.site | object | null | yes | |
| ticket.program | object | null | yes | |
| ticket.reporter | object | yes | |
| ticket.closeNote | string | null | yes | |
| ticket.createdAt | string (date-time) | yes | |
| ticket.updatedAt | string (date-time) | yes |
Fields nested deeper are in the output schema that discover_operations answers with outputSchemas: true.
A dry run refuses an external operation, so it has no dry-run line: run it alone in a batch.
ticket.list
List the tickets you reported on this site, newest first (at most 100), optionally only those with a status: open, triaged (the platform owner has seen it) or closed (with the platform owner's closeNote).
Example input
{
"status": "open"
}Input
| Field | Type | Required | Notes |
|---|---|---|---|
| status | string | no | One of "open", "triaged", "closed". |
Output
| Field | Type | Required | Notes |
|---|---|---|---|
| tickets | array of object | yes | |
| tickets[].id | string (uuid) | yes | |
| tickets[].status | string | yes | One of "open", "triaged", "closed". |
| tickets[].title | string | yes | |
| tickets[].body | string | yes | |
| tickets[].category | string | yes | One of "bug", "missing-capability", "refusal", "docs", "other". |
| tickets[].severity | string | yes | One of "low", "medium", "high", "blocking". |
| tickets[].steps | string | null | yes | |
| tickets[].expected | string | null | yes | |
| tickets[].actual | string | null | yes | |
| tickets[].requestId | string | null | yes | |
| tickets[].pageId | string | null | yes | |
| tickets[].site | object | null | yes | |
| tickets[].program | object | null | yes | |
| tickets[].reporter | object | yes | |
| tickets[].closeNote | string | null | yes | |
| tickets[].createdAt | string (date-time) | yes | |
| tickets[].updatedAt | string (date-time) | yes |
Fields nested deeper are in the output schema that discover_operations answers with outputSchemas: true.
Try it
yarn splash ticket.list '{"status":"open"}' --dry-runGenerated from the operation registry and the MCP tool catalogue (source e579e5ca36df9f2f).
Something wrong on this page? Write to docs@librettocms.com.