tessl.io Skills API
Skill discovery, reviews, and security checks.
Skill discovery, reviews, and security checks.
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