{
  "name": "Local Task Orchestrator",
  "description": "AI-powered task board for managing workspaces, agents, and development tickets. Accepts inbox tickets from external agents, auto-classifies them to workspaces, generates execution plans (spec enhancement, checklists, pipelines), and coordinates AI agent instances to complete tasks.",
  "url": "https://gta.the-orchestrator.com",
  "version": "1.0.0",
  "protocolVersion": "0.3.0",
  "capabilities": {
    "streaming": true,
    "pushNotifications": false,
    "stateTransitionHistory": true
  },
  "defaultInputModes": [
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json",
    "text/event-stream"
  ],
  "provider": {
    "organization": "Local Development",
    "url": "https://gta.the-orchestrator.com"
  },
  "securitySchemes": {
    "serviceToken": {
      "type": "apiKey",
      "name": "X-Service-Token",
      "in": "header",
      "description": "Service token for agent-to-service communication. Set via AGENT_SERVICE_TOKEN environment variable on the server."
    },
    "bearerAuth": {
      "type": "http",
      "scheme": "bearer",
      "bearerFormat": "JWT",
      "description": "JWT access token obtained from POST /api/auth/login."
    }
  },
  "security": [
    {
      "serviceToken": []
    }
  ],
  "skills": [
    {
      "id": "discover-workspaces",
      "name": "Discover Workspaces",
      "description": "List all enabled project workspaces. Returns workspace names, paths, and project types so agents can select the right workspace for a ticket. No authentication required.",
      "tags": [
        "workspaces",
        "discovery",
        "public"
      ],
      "examples": [
        "GET https://gta.the-orchestrator.com/api/workspaces/discover"
      ]
    },
    {
      "id": "submit-inbox-ticket",
      "name": "Submit Inbox Ticket",
      "description": "Create a new task in the inbox from an external source. Accepts title, spec, priority, source, tags, ticket_type, and create_pr. If workspace_path is omitted, the system auto-classifies the ticket to the best-matching workspace using AI. Optionally generates an execution plan (enhanced spec + checklist + pipeline) asynchronously. All ticket types default create_pr=true (agent creates a branch and opens a PR for every type — feature/bug/hotfix/improvement/refactor/spike/chore/docs). Override create_pr=false explicitly to opt out for a specific ticket. Requires X-Service-Token header.",
      "tags": [
        "inbox",
        "tasks",
        "create",
        "tickets"
      ],
      "inputSchema": {
        "type": "object",
        "required": [
          "title"
        ],
        "properties": {
          "title": {
            "type": "string",
            "description": "Short title for the ticket"
          },
          "spec": {
            "type": "string",
            "description": "Detailed specification or description"
          },
          "priority": {
            "type": "string",
            "enum": [
              "low",
              "medium",
              "high",
              "urgent"
            ]
          },
          "source": {
            "type": "string",
            "description": "Origin system (e.g. \"github\", \"slack\", \"agent\")"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Categorization tags"
          },
          "workspace_path": {
            "type": "string",
            "description": "Target workspace path; auto-classified if omitted"
          },
          "ticket_type": {
            "type": "string",
            "enum": [
              "feature",
              "bug",
              "spike",
              "chore",
              "hotfix",
              "docs",
              "refactor",
              "improvement"
            ],
            "default": "feature",
            "description": "Type of ticket. Determines agent behavior: feature (new functionality), bug (defect fix), spike (research/investigation), chore (maintenance), hotfix (urgent production fix), docs (documentation), refactor (code restructure), improvement (enhance existing feature)."
          },
          "create_pr": {
            "type": "boolean",
            "description": "When true, the agent creates a git branch and opens a pull request on completion. Defaults to true for every ticket_type (every agent's work must be reviewable). Set to false explicitly to opt out for a specific ticket."
          }
        }
      },
      "examples": [
        "POST https://gta.the-orchestrator.com/api/inbox with JSON body: {\"title\":\"Fix login bug\",\"spec\":\"Users get 500 error on login\",\"source\":\"github\",\"tags\":[\"bug\"],\"priority\":\"high\",\"ticket_type\":\"bug\",\"create_pr\":true}",
        "POST https://gta.the-orchestrator.com/api/inbox with JSON body: {\"title\":\"Research caching strategies\",\"spec\":\"Evaluate Redis vs Memcached\",\"source\":\"agent\",\"ticket_type\":\"spike\",\"create_pr\":false}"
      ]
    },
    {
      "id": "manage-tasks",
      "name": "Manage Tasks",
      "description": "Full CRUD operations on tasks: list with filters (status, actor, source, tag, ticket_type, search), get task details with artifacts/history/messages, update status and fields (including ticket_type and create_pr), delete tasks. ticket_type and create_pr can be set on creation and updated via PATCH. Requires X-Service-Token or Bearer JWT.",
      "tags": [
        "tasks",
        "crud",
        "management"
      ],
      "examples": [
        "GET https://gta.the-orchestrator.com/api/tasks?status=todo&inbox_only=true",
        "GET https://gta.the-orchestrator.com/api/tasks?ticket_type=bug",
        "GET https://gta.the-orchestrator.com/api/tasks/{id}",
        "PATCH https://gta.the-orchestrator.com/api/tasks/{id} with JSON body: {\"status\":\"in_progress\"}",
        "PATCH https://gta.the-orchestrator.com/api/tasks/{id} with JSON body: {\"ticket_type\":\"hotfix\",\"create_pr\":true}"
      ]
    },
    {
      "id": "read-board-shape",
      "name": "Read Board Shape",
      "description": "Describe the board in one request: the ordered columns (including the virtual Backlog and Future Work columns), per-column ticket counts broken down by status, the enabled / visible flags so the caller decides what to hide, and the full agent roster including agents not attached to a column. Use this instead of re-deriving the Backlog / Future Work split from workspace_id and is_future_work. Requires X-Service-Token.",
      "tags": [
        "board",
        "columns",
        "counts",
        "agents",
        "discovery"
      ],
      "examples": [
        "GET https://gta.the-orchestrator.com/api/board"
      ]
    },
    {
      "id": "agent-task-lifecycle",
      "name": "Agent Task Lifecycle",
      "description": "Poll for next available task, claim it atomically, send/receive messages during execution, and update task status upon completion. Designed for AI agent instances. Requires X-Service-Token.",
      "tags": [
        "agents",
        "execution",
        "lifecycle",
        "messages"
      ],
      "examples": [
        "GET https://gta.the-orchestrator.com/api/agents/{agentId}/next-task",
        "POST https://gta.the-orchestrator.com/api/agents/{agentId}/claim-task/{taskId}",
        "GET https://gta.the-orchestrator.com/api/agents/{agentId}/messages?since=2026-01-01T00:00:00Z",
        "POST https://gta.the-orchestrator.com/api/tasks/{taskId}/messages with JSON body: {\"content\":\"Done\",\"role\":\"agent\"}"
      ]
    },
    {
      "id": "stream-events",
      "name": "Stream Real-Time Events",
      "description": "Server-Sent Events (SSE) stream for real-time updates on tasks, actors, logs, messages, and checklist items. Optionally filter by actor IDs. Requires Bearer JWT.",
      "tags": [
        "streaming",
        "sse",
        "events",
        "realtime"
      ],
      "examples": [
        "GET https://gta.the-orchestrator.com/api/stream/events",
        "GET https://gta.the-orchestrator.com/api/stream/events?actor_ids=uuid1,uuid2"
      ]
    },
    {
      "id": "manage-actors",
      "name": "Manage Agent Instances",
      "description": "Create, configure, and control AI agent instances (columns on the board). Supports lifecycle operations: start, stop, pause, resume, restart. Configure skills, connectors, and tool permissions per agent. Requires X-Service-Token or Bearer JWT.",
      "tags": [
        "actors",
        "agents",
        "instances",
        "lifecycle"
      ],
      "examples": [
        "GET https://gta.the-orchestrator.com/api/actors",
        "POST https://gta.the-orchestrator.com/api/actors/{id}/start",
        "POST https://gta.the-orchestrator.com/api/actors/{id}/stop"
      ]
    },
    {
      "id": "ai-generation",
      "name": "AI-Powered Generation",
      "description": "Generate enhanced specifications, checklists, and execution pipelines from a task title and description using Claude AI. No authentication required.",
      "tags": [
        "ai",
        "generation",
        "spec",
        "checklist",
        "pipeline",
        "public"
      ],
      "examples": [
        "POST https://gta.the-orchestrator.com/api/enhance-spec with JSON body: {\"brief\":\"Add dark mode\",\"title\":\"Dark Mode\",\"detail_level\":\"standard\"}",
        "POST https://gta.the-orchestrator.com/api/generate-checklist with JSON body: {\"title\":\"Add dark mode\",\"spec\":\"...\"}",
        "POST https://gta.the-orchestrator.com/api/generate-pipeline with JSON body: {\"title\":\"Add dark mode\",\"spec\":\"...\"}"
      ]
    }
  ]
}