Ticket operations

2 operations named ticket.*. Every one runs in a batch through apply_ops, dry_run_ops, the CLI or the admin.

Updated
OperationWhat it doesPermissionConfirmation
ticket.createReport 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.reportnone
ticket.listList 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.reportnone

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.

permission: ticket.reportreads onlyclass: external

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

FieldTypeRequiredNotes
titlestringyesAt least 1 character. At most 160 characters.
bodystringyesAt least 1 character. At most 20000 characters.
categorystringyesOne of "bug", "missing-capability", "refusal", "docs", "other".
severitystringnoOne of "low", "medium", "high", "blocking". Default "medium".
pageIdstringnoAt least 1 character. At most 36 characters.
stepsstringnoAt least 1 character. At most 5000 characters.
expectedstringnoAt least 1 character. At most 5000 characters.
actualstringnoAt least 1 character. At most 5000 characters.
requestIdstring (uuid)no

Output

FieldTypeRequiredNotes
ticketobjectyes
ticket.idstring (uuid)yes
ticket.statusstringyesOne of "open", "triaged", "closed".
ticket.titlestringyes
ticket.bodystringyes
ticket.categorystringyesOne of "bug", "missing-capability", "refusal", "docs", "other".
ticket.severitystringyesOne of "low", "medium", "high", "blocking".
ticket.stepsstring | nullyes
ticket.expectedstring | nullyes
ticket.actualstring | nullyes
ticket.requestIdstring | nullyes
ticket.pageIdstring | nullyes
ticket.siteobject | nullyes
ticket.programobject | nullyes
ticket.reporterobjectyes
ticket.closeNotestring | nullyes
ticket.createdAtstring (date-time)yes
ticket.updatedAtstring (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).

permission: ticket.reportreads onlyclass: read

Example input

{
  "status": "open"
}

Input

FieldTypeRequiredNotes
statusstringnoOne of "open", "triaged", "closed".

Output

FieldTypeRequiredNotes
ticketsarray of objectyes
tickets[].idstring (uuid)yes
tickets[].statusstringyesOne of "open", "triaged", "closed".
tickets[].titlestringyes
tickets[].bodystringyes
tickets[].categorystringyesOne of "bug", "missing-capability", "refusal", "docs", "other".
tickets[].severitystringyesOne of "low", "medium", "high", "blocking".
tickets[].stepsstring | nullyes
tickets[].expectedstring | nullyes
tickets[].actualstring | nullyes
tickets[].requestIdstring | nullyes
tickets[].pageIdstring | nullyes
tickets[].siteobject | nullyes
tickets[].programobject | nullyes
tickets[].reporterobjectyes
tickets[].closeNotestring | nullyes
tickets[].createdAtstring (date-time)yes
tickets[].updatedAtstring (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-run

Generated from the operation registry and the MCP tool catalogue (source e579e5ca36df9f2f).

Something wrong on this page? Write to docs@librettocms.com.

Libretto docs

Colophon. These docs are a Libretto site: 68 pages in two languages, 20 guide pages imported from Markdown and 41 reference pages generated from the operation registry. Set in Softcore, with code in IBM Plex Mono. Its outline:

/ Libretto docs /start Get started /start/request-access Request access /start/workspace Your workspace /start/first-site Your first site /start/invite-a-client Invite a client /start/connect-claude Connect Claude to Libretto /build Build /build/first-page Build a page /build/layers-and-canvas Layers and canvas /build/site-components Site components /design-system Design system /design-system/tokens Colours, space and themes /design-system/components Components and variants /design-system/fonts Typography and fonts /motion Motion /motion/scenes Scenes and recipes /motion/image-sequences Image sequences /motion/reduced-motion Reduced motion /publish Publish /publish/languages Site languages /publish/versions Publish and versions /publish/members-and-forms Members and forms /publish/domains Domains /handover Hand a site to a client /glossary Glossary /agents Agents and API /agents/mcp MCP server /agents/cli CLI /agents/batches Batches /agents/errors Errors and findings /agents/operations Operations /search Search