Examples / one complete action

A ticket. An interruption.
The original result.

Follow the same request from its profile through the service contract to a verification receipt. All data below is illustrative.

1. Describe the action

The profile connects three operations: create a ticket, check the request, and read the resulting ticket.

{
  "$schema": "https://ruagentic.org/schemas/agentic-0.1.schema.json",
  "agentic": "0.1.0-draft",
  "origin": "https://support.example",
  "actions": [
    {
      "id": "create-ticket",
      "description": "Create a support ticket and verify the original result.",
      "openapi": "/openapi.json",
      "submit": "createTicket",
      "status": "getRequestStatus",
      "verify": "getTicket",
      "request": {
        "header": "Idempotency-Key",
        "scope": "principal-action",
        "retentionSeconds": 86400
      },
      "bindings": {
        "statusRequestId": "requestId",
        "verifyResourceId": "ticketId"
      },
      "evidence": {
        "resourceIdPointer": "/id",
        "requestIdPointer": "/request_id",
        "statePointer": "/status",
        "successValues": [
          "open",
          "closed"
        ],
        "inputBindings": [
          {
            "inputPointer": "/subject",
            "resourcePointer": "/subject"
          }
        ]
      },
      "recovery": {
        "maxChecks": 3,
        "checkDelayMs": 100,
        "timeoutMs": 3000,
        "retry": "never-automatically"
      }
    }
  ]
}

2. Bind three OpenAPI operations

RoleOperationEndpoint
SubmitcreateTicketPOST /tickets
ReconcilegetRequestStatusGET /requests/{requestId}
VerifygetTicketGET /tickets/{ticketId}

After submission, the client checks the request status and reads the ticket. It confirms that the ticket ID, request ID, state, and subject match before reporting success.

3. Keep a receipt

This synthetic receipt demonstrates the format. It is not a record of a real customer action or an independent pilot.

{
  "agentic": "0.1.0-draft",
  "request_id": "illustrative-request-001",
  "action_id": "create-ticket",
  "origin": "https://support.example",
  "outcome": "succeeded",
  "observed_at": "2026-09-07T12:00:00.000Z",
  "resource_id": "T-example-001",
  "reason": "Illustrative receipt: original ticket verified against the request and input.",
  "evidence": {
    "url": "https://support.example/tickets/T-example-001",
    "resource_id": "T-example-001",
    "request_id": "illustrative-request-001",
    "state": "open",
    "matched": [
      {
        "inputPointer": "/subject",
        "resourcePointer": "/subject"
      }
    ]
  }
}

Test your own implementation

Use the compatibility runner with an independently written client. Compare normal completion, response loss, unavailable status, mismatched evidence, pending work, and process restart.