---
title: "POST /experimental/skills/review"
method: POST
path: "/experimental/skills/review"
tags: ["Skills"]
---

# POST /experimental/skills/review

`POST /experimental/skills/review`

Runs the LLM skill-review pipeline against a SKILL.md content string and returns scored validation results.

## Headers

- `Authorization` string

## Request body

- object
  - `content` string, required
  - `model` string — Model override to use for the review instead of the default model
  - `files` object — Optional bundle files (relative path -> UTF-8 content) that accompany SKILL.md.

## Response `200`

Default Response

- object
  - `review` object, required
    - `reviewScore` integer, nullable, required
  - `validation` object, required
    - `skillName` string
    - `skillDescription` string
    - `checks` object[], required
      - `name` string, required
      - `status` union, required
        - 'passed'
        - 'warning'
        - 'error'
      - `message` string, required
      - `details` object
    - `overallPassed` boolean, required
    - `errorCount` number, required
    - `warningCount` number, required
  - `descriptionJudge` object
    - `success` boolean, required
    - `errorMessage` string
    - `evaluation` object
      - `scores` object, required
      - `overall_assessment` string, required
      - `suggestions` string[], required
      - `validation_skipped` boolean
    - `weightedScore` number
    - `scale` object, required
      - `min` number, required
      - `max` number, required
    - `normalizedScore` number
  - `contentJudge` object
    - `success` boolean, required
    - `errorMessage` string
    - `evaluation` object
      - `scores` object, required
      - `overall_assessment` string, required
      - `suggestions` string[], required
      - `validation_skipped` boolean
    - `weightedScore` number
    - `scale` object, required
      - `min` number, required
      - `max` number, required
    - `normalizedScore` number
  - `credits` number, required — Credits charged for this review (0 if nothing was billed).

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `500` — Internal Server Error

---

[API](https://skmtc.net/tessl/apis/tessl-api.md) · [All operations](https://skmtc.net/tessl/apis/tessl-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tessl/tessl-api/revisions/2fe02c07eb49/schema)
