---
title: "Publish"
method: POST
path: "/skill-projection/{skill_id}/publish"
---

# Publish

`POST /skill-projection/{skill_id}/publish`

## Request

- Base URL: `https://api-docs.session-exchange.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api-docs.session-exchange.com/skill-projection/{skill_id}/publish`
- Auth: none declared

Validated publish (the write engine; spec §5.4 made real). Runs the
required checks ('CI'), auto-bumps the semver version from the projection's
current latest (GitVersion-style: default patch; `+semver: minor|major` in
`message` overrides, or an explicit `bump`), and emits a `skill.published`
event (which folds into the projection). Body:
    {files:[{path, content|content_b64}], bump?, message?, set_latest?}
Returns 201 {version, ...} or 422 {checks:[...]} on a failed check.

Surface note: this is the engine every write path drives; the git `push`
(gitflow) surface is a later increment that validates + calls this same core.

## Path parameters

- `skill_id` string, required

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/session-exchange/apis/a4sx.md) · [All operations](https://skmtc.dev/session-exchange/apis/a4sx/llms.txt) · [OpenAPI document](https://skmtc.dev/session-exchange/apis/a4sx/revisions/abaefc33dfc7?raw)
