tessl.io Skills API

Skill discovery, reviews, and security checks.

OpenAPI Specification

tesslio-skills-api-openapi.yml Raw ↑
openapi: 3.1.1
info:
  title: Tessl Admin Keys Skills API
  version: 1.0.0
  description: Admin-scoped API keys for support tooling.
servers:
- url: https://api.tessl.io
tags:
- name: Skills
  description: Skill discovery, reviews, and security checks.
paths:
  /v1/tiles/{workspaceName}/{tileName}/versions/{version}/skill-reviews:
    get:
      tags:
      - Skills
      description: Returns the LLM skill reviews (per skill) for a tile version.
      parameters:
      - schema:
          type: string
        in: path
        name: workspaceName
        required: true
      - schema:
          type: string
        in: path
        name: tileName
        required: true
      - schema:
          type: string
        in: path
        name: version
        required: true
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                required:
                - links
                - meta
                - data
                properties:
                  links:
                    type: object
                    required:
                    - self
                    properties:
                      self:
                        format: uri
                        type: string
                  meta:
                    type: object
                    required:
                    - count
                    properties:
                      count:
                        type: number
                  data:
                    type: array
                    items:
                      type: object
                      required:
                      - id
                      - type
                      - attributes
                      properties:
                        id:
                          format: uuid
                          type: string
                        type:
                          type: string
                          enum:
                          - tile-version-skill-review
                        attributes:
                          type: object
                          required:
                          - path
                          - name
                          - description
                          - skillMdFingerprint
                          - reviewResults
                          - reviewScore
                          - reviewUpdatedAt
                          properties:
                            path:
                              type: string
                            name:
                              anyOf:
                              - type: string
                              - type: 'null'
                            description:
                              anyOf:
                              - type: string
                              - type: 'null'
                            skillMdFingerprint:
                              pattern: ^[0-9a-f]{64}$
                              type: string
                            reviewResults:
                              anyOf:
                              - type: object
                                required:
                                - validation
                                properties:
                                  validation:
                                    type: object
                                    required:
                                    - checks
                                    - overallPassed
                                    - errorCount
                                    - warningCount
                                    properties:
                                      skillName:
                                        type: string
                                      skillDescription:
                                        type: string
                                      checks:
                                        type: array
                                        items:
                                          type: object
                                          required:
                                          - name
                                          - status
                                          - message
                                          properties:
                                            name:
                                              type: string
                                            status:
                                              anyOf:
                                              - type: string
                                                enum:
                                                - passed
                                              - type: string
                                                enum:
                                                - warning
                                              - type: string
                                                enum:
                                                - error
                                            message:
                                              type: string
                                            details:
                                              type: object
                                              additionalProperties:
                                                anyOf:
                                                - type: string
                                                - type: number
                                                - type: array
                                                  items:
                                                    type: string
                                      overallPassed:
                                        type: boolean
                                      errorCount:
                                        type: number
                                      warningCount:
                                        type: number
                                  judges:
                                    type: object
                                    additionalProperties:
                                      type: object
                                      required:
                                      - success
                                      properties:
                                        success:
                                          type: boolean
                                        errorMessage:
                                          type: string
                                        scale:
                                          type: object
                                          required:
                                          - min
                                          - max
                                          properties:
                                            min:
                                              type: number
                                            max:
                                              type: number
                                        evaluation:
                                          type: object
                                          required:
                                          - scores
                                          - overall_assessment
                                          - suggestions
                                          properties:
                                            scores:
                                              type: object
                                              additionalProperties:
                                                type: object
                                                required:
                                                - score
                                                - reasoning
                                                properties:
                                                  score:
                                                    type: number
                                                  reasoning:
                                                    type: string
                                            overall_assessment:
                                              type: string
                                            suggestions:
                                              type: array
                                              items:
                                                type: string
                                            validation_skipped:
                                              type: boolean
                                        weightedScore:
                                          type: number
                                        normalizedScore:
                                          type: number
                                  scoring:
                                    type: object
                                    required:
                                    - components
                                    properties:
                                      components:
                                        type: array
                                        items:
                                          type: object
                                          required:
                                          - id
                                          - weight
                                          - normalized
                                          properties:
                                            id:
                                              type: string
                                            weight:
                                              type: number
                                            normalized:
                                              anyOf:
                                              - type: number
                                              - type: 'null'
                              - type: 'null'
                            reviewScore:
                              anyOf:
                              - type: integer
                              - type: 'null'
                            reviewUpdatedAt:
                              anyOf:
                              - format: date-time
                                type: string
                              - type: 'null'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                description: Not Found
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - title
                    - status
                    - message
                    properties:
                      title:
                        type: string
                        enum:
                        - Not Found
                      status:
                        type: number
                        enum:
                        - 404
                      message:
                        type: string
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                description: Internal Server Error
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - title
                    - status
                    - message
                    properties:
                      title:
                        type: string
                        enum:
                        - Internal Server Error
                      status:
                        type: number
                        enum:
                        - 500
                      message:
                        type: string
  /v1/tiles/{workspaceName}/{tileName}/versions/{version}/skill-security-reviews:
    get:
      tags:
      - Skills
      description: Returns the Snyk security reviews (per skill) for a tile version.
      parameters:
      - schema:
          type: string
        in: path
        name: workspaceName
        required: true
      - schema:
          type: string
        in: path
        name: tileName
        required: true
      - schema:
          type: string
        in: path
        name: version
        required: true
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                required:
                - links
                - meta
                - data
                properties:
                  links:
                    type: object
                    required:
                    - self
                    properties:
                      self:
                        format: uri
                        type: string
                  meta:
                    type: object
                    required:
                    - count
                    properties:
                      count:
                        type: number
                  data:
                    type: array
                    items:
                      type: object
                      required:
                      - id
                      - type
                      - attributes
                      properties:
                        id:
                          format: uuid
                          type: string
                        type:
                          type: string
                          enum:
                          - tile-version-skill-security-review
                        attributes:
                          type: object
                          required:
                          - path
                          - name
                          - description
                          - skillFingerprint
                          - securityStatus
                          - securityRiskLevel
                          - securitySummary
                          - securityUpdatedAt
                          - securityFindings
                          - securityOverrideMessage
                          properties:
                            path:
                              type: string
                            name:
                              anyOf:
                              - type: string
                              - type: 'null'
                            description:
                              anyOf:
                              - type: string
                              - type: 'null'
                            skillFingerprint:
                              pattern: ^[0-9a-f]{64}$
                              type: string
                            securityStatus:
                              anyOf:
                              - anyOf:
                                - type: string
                                  enum:
                                  - completed
                                - type: string
                                  enum:
                                  - failed
                              - type: 'null'
                            securityRiskLevel:
                              anyOf:
                              - anyOf:
                                - type: string
                                  enum:
                                  - LOW
                                - type: string
                                  enum:
                                  - MEDIUM
                                - type: string
                                  enum:
                                  - HIGH
                                - type: string
                                  enum:
                                  - CRITICAL
                              - type: 'null'
                            securitySummary:
                              anyOf:
                              - type: string
                              - type: 'null'
                            securityUpdatedAt:
                              anyOf:
                              - format: date-time
                                type: string
                              - type: 'null'
                            securityFindings:
                              type: array
                              items:
                                type: object
                                required:
                                - severity
                                - code
                                - title
                                - reasoning
                                - issueDescription
                                properties:
                                  severity:
                                    anyOf:
                                    - type: string
                                      enum:
                                      - CRITICAL
                                    - type: string
                                      enum:
                                      - HIGH
                                    - type: string
                                      enum:
                                      - MEDIUM
                                    - type: string
                                      enum:
                                      - LOW
                                  code:
                                    type: string
                                  title:
                                    type: string
                                  reasoning:
                                    type: string
                                  issueDescription:
                                    anyOf:
                                    - type: string
                                    - type: 'null'
                            securityOverrideMessage:
                              anyOf:
                              - type: string
                              - type: 'null'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                description: Not Found
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - title
                    - status
                    - message
                    properties:
                      title:
                        type: string
                        enum:
                        - Not Found
                      status:
                        type: number
                        enum:
                        - 404
                      message:
                        type: string
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                description: Internal Server Error
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - title
                    - status
                    - message
                    properties:
                      title:
                        type: string
                        enum:
                        - Internal Server Error
                      status:
                        type: number
                        enum:
                        - 500
                      message:
                        type: string
  /experimental/implement-ticket-schema/schema.json:
    get:
      tags:
      - Skills
      description: Returns the JSON Schema for the implement-ticket skill input payload. Public and unauthenticated.
      responses:
        '200':
          description: JSON Schema document
          content:
            application/json:
              schema:
                description: JSON Schema document
                type: object
                additionalProperties: true
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                description: Not Found
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - title
                    - status
                    - message
                    properties:
                      title:
                        type: string
                        enum:
                        - Not Found
                      status:
                        type: number
                        enum:
                        - 404
                      message:
                        type: string
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                description: Internal Server Error
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - title
                    - status
                    - message
                    properties:
                      title:
                        type: string
                        enum:
                        - Internal Server Error
                      status:
                        type: number
                        enum:
                        - 500
                      message:
                        type: string
  /experimental/workspaces/{workspaceId}/skills/workspace:
    post:
      tags:
      - Skills
      description: Indexes one or more SKILL.md files from a GitHub repository using the workspace GitHub App installation. Supports public and private repositories.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - sourceUrl
              - paths
              - sourceRef
              properties:
                sourceUrl:
                  format: uri
                  type: string
                paths:
                  minItems: 1
                  maxItems: 10
                  type: array
                  items:
                    minLength: 1
                    pattern: ^(?:[\w.\-]+/)*SKILL\.md$
                    description: Relative path to a SKILL.md file within the repository
                    type: string
                sourceRef:
                  minLength: 1
                  type: string
      parameters:
      - schema:
          type: string
        in: path
        name: workspaceId
        required: true
      - schema:
          type: string
        example: Bearer <token>
        in: header
        name: Authorization
        required: false
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: object
                    required:
                    - registered
                    - skipped
                    - failed
                    - skills
                    - errors
                    properties:
                      registered:
                        type: integer
                      skipped:
                        type: integer
                      failed:
                        type: integer
                      skills:
                        type: array
                        items:
                          type: object
                          required:
                          - skillId
                          - skillVersionId
                          - path
                          - commitSha
                          properties:
                            skillId:
                              type: string
                            skillVersionId:
                              type: string
                            path:
                              type: string
                            commitSha:
                              type: string
                      errors:
                        type: array
                        items:
                          type: object
                          required:
                          - path
                          - message
                          properties:
                            path:
                              type: string
                            message:
                              type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                description: Unauthorized
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - title
                    - status
                    - message
                    properties:
                      title:
                        type: string
                        enum:
                        - Unauthorized
                      status:
                        type: number
                        enum:
                        - 401
                      message:
                        type: string
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                description: Forbidden
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - title
                    - status
                    - message
                    properties:
                      title:
                        type: string
                        enum:
                        - Forbidden
                      status:
                        type: number
                        enum:
                        - 403
                      message:
                        type: string
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                description: Not Found
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - title
                    - status
                    - message
                    properties:
                      title:
                        type: string
                        enum:
                        - Not Found
                      status:
                        type: number
                        enum:
                        - 404
                      message:
                        type: string
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                description: Internal Server Error
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - title
                    - status
                    - message
                    properties:
                      title:
                        type: string
                        enum:
                        - Internal Server Error
                      status:
                        type: number
                        enum:
                        - 500
                      message:
                        type: string
  /experimental/skills/analyse:
    post:
      tags:
      - Skills
      description: Scans a public repository (GitHub, GitLab, or Bitbucket) at a given branch for SKILL.md files and returns a summary.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - repoUrl
              properties:
                repoUrl:
                  format: uri
                  type: string
                branch:
                  type: string
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                required:
                - links
                - data
                - meta
                properties:
                  links:
                    type: object
                    required:
                    - self
                    properties:
                      self:
                        format: uri
                        type: string
                  data:
                    type: array
                    items:
                      type: object
                      required:
                      - id
                      - type
                      - attributes
                      properties:
                        id:
                          type: string
                        type:
                          type: string
                          enum:
                          - skill
                        attributes:
                          type: object
                          required:
                          - path
                          - name
                          - description
                          properties:
                            path:
                              type: string
                            name:
                              type: string
                            description:
                              type: string
                  meta:
                    type: object
                    required:
                    - repoUrl
                    - branch
                    - totalCount
                    - unindexedCount
                    - returnedCount
                    - limit
                    properties:
                      repoUrl:
                        type: string
                      branch:
                        type: string
                      path:
                        type: string
                      totalCount:
                        type: integer
                      unindexedCount:
                        type: integer
                      returnedCount:
                        type: integer
                      limit:
                        type: integer
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                description: Not Found
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - title
                    - status
                    - message
                    properties:
                      title:
                        type: string
                        enum:
                        - Not Found
                      status:
                        type: number
                        enum:
                        - 404
                      message:
                        type: string
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                description: Internal Server Error
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - title
                    - status
                    - message
                    properties:
                      title:
                        ty

# --- truncated at 32 KB (127 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tesslio/refs/heads/main/openapi/tesslio-skills-api-openapi.yml