---
title: "Publish a verified harness directory"
method: POST
path: "/imports/harness-dir"
---

# Publish a verified harness directory

`POST /imports/harness-dir`

## Request

- Base URL: `https://superskill.sh/api`
- URL: `https://superskill.sh/api/imports/harness-dir`
- Auth: HTTP bearer

Strict native verified package path. Accepts bounded text files from hh publish <dir>. The server requires harness.yaml, .harnesshub/results.json, valid schema, passing security scan, and passing eval/gate before writing a public local harness.

## Request body

- object
  - `name` string
  - `files` object[], required
    - `path` string, required
    - `content` string, required
    - `truncated` boolean

## Response `200`

Verified published harness

- object
  - `item` RegistryItem
    - `owner` string, required
    - `ownerLabel` string
    - `name` string, required
    - `title` string, required
    - `summary` string, required
    - `tags` string[], required
    - `job` string
    - `outcome` string
    - `runtime` string
    - `forgeUrl` string: Public repository or upstream URL when available. Local filesystem paths are never exposed.
    - `contentType` 'harness' | 'directory', required
    - `directory` object
      - `url` string
      - `itemCount` integer
      - `category` string
      - `notes` string
    - `compatibility` object, required
      - `targets` object[], required
        - `id` string
        - `name` string
        - `status` 'planned' | 'available' | 'verified', required
        - `notes` string
        - `last_verified_at` string, date-time
    - `valid` boolean, required
    - `riskScore` number
    - `riskTier` string, required
    - `evalStatus` string, required
    - `evalScore` number
    - `contextCost` ContextCost, required: Deterministic estimate from markdown instruction files. It is not a measured LLM bill.
      - `approxTokens` number, required
      - `files` number, required
      - `bytes` number, required
      - `status` 'estimated', required
    - `standard` 'conformant' | 'partial', required
    - `stars` number
    - `forks` number
    - `threads` number
    - `runs` number
    - `installConfirms` number
    - `signalCount` number
    - `heatQualified` boolean
    - `heat` number
    - `heatDelta` number
    - `freshness` string
    - `badge` string
    - `cliCommand` string, required
    - `updatedAt` string
  - `snapshotVersion` string
  - `verified` boolean
  - `gate` object
    - `score` number
    - `risk` number
    - `cost` number
    - `failures` string[]

## Other responses

- `400`: Bad request
- `401`: Authorization required
- `422`: Bad request

---

[API](https://skmtc.dev/superskill/apis/superskill-api.md) · [All operations](https://skmtc.dev/superskill/apis/superskill-api/llms.txt) · [OpenAPI document](https://skmtc.dev/superskill/apis/superskill-api/revisions/ced2d2d1f217?raw)
