Execution Tickets

Generate engineering tickets from document blocks and push to GitHub, Linear, or Jira.

Overview

The Execution API generates scoped engineering tickets from document blocks. Tickets can be reviewed, edited, and pushed to GitHub, Linear, or Jira. Status sync keeps Praxiom in sync with your issue tracker.


Generate Tickets

POST /api/execution/generate

Generate tickets from a document's blocks using the AI agent.

Request Body

NameTypeRequiredDescription
workspace_idUUIDYesWorkspace ID
document_idUUIDYesDocument to generate tickets from
include_block_typesstring[]NoFilter to specific block types (e.g., ["user_story", "solution"])

Response (200 OK)

{
  "tickets": [
    {
      "id": "a1b2c3d4-...",
      "document_id": "e5f6a7b8-...",
      "block_id": "b2c3d4e5-...",
      "workspace_id": "550e8400-...",
      "title": "Implement step 3 progress indicator",
      "body": "## Context\nUsers are dropping off at step 3...\n\n## Acceptance Criteria\n- [ ] Progress bar visible...",
      "ticket_type": "task",
      "priority": "P1",
      "labels": ["onboarding", "ux"],
      "acceptance_criteria": ["Progress bar visible at all times", "Step count shown"],
      "estimated_effort": "medium",
      "status": "generated",
      "created_at": "2026-03-27T14:00:00Z"
    }
  ],
  "total": 5
}

List Tickets

GET /api/execution/{document_id}/tickets

List all generated tickets for a document.

Query Parameters

NameTypeRequiredDescription
statusstringNoFilter by status: generated, reviewed, pushed, push_failed, synced

Edit Ticket

PATCH /api/execution/tickets/{ticket_id}

Edit a ticket before pushing. This is the review step.

Request Body

NameTypeRequiredDescription
titlestringNoUpdated title
bodystringNoUpdated description
prioritystringNoP0, P1, P2, or P3
labelsstring[]NoUpdated labels
acceptance_criteriastring[]NoUpdated criteria
estimated_effortstringNoUpdated effort estimate

Push Tickets

POST /api/execution/push

Bulk push tickets to an external platform.

Request Body

NameTypeRequiredDescription
workspace_idUUIDYesWorkspace ID
document_idUUIDYesDocument ID
platformstringYesTarget platform: github, linear, or jira
ticket_idsUUID[]NoSpecific tickets to push (default: all reviewed)

Response (200 OK)

{
  "results": [
    {
      "ticket_id": "a1b2c3d4-...",
      "status": "pushed",
      "external_url": "https://github.com/acme/app/issues/42",
      "external_id": "42"
    }
  ],
  "pushed": 4,
  "failed": 1
}

Platform Priority Mapping

PriorityGitHubLinearJira
P0Label: priority:criticalUrgent (1)Highest
P1Label: priority:highHigh (2)High
P2Label: priority:mediumMedium (3)Medium
P3Label: priority:lowLow (4)Low

Sync Tickets

POST /api/execution/sync

Sync ticket status from external platforms back to Praxiom.

Request Body

NameTypeRequiredDescription
workspace_idUUIDYesWorkspace ID
document_idUUIDYesDocument ID

Response (200 OK)

{
  "results": [ ... ],
  "synced": 3,
  "unchanged": 1,
  "errors": 0
}

Was this helpful?