---
title: "MCP/tool-only pre-publish validate for an active repo session: manifest, docs, skills, dependencies, bundle, typechec..."
method: POST
path: "/v1/repo-sessions/{session_id}/checks"
tags: ["repos"]
---

# MCP/tool-only pre-publish validate for an active repo session: manifest, docs, skills, dependencies, bundle, typechec...

`POST /v1/repo-sessions/{session_id}/checks`

## Request

- Base URL: `https://api.kody.codes`
- URL: `https://api.kody.codes/v1/repo-sessions/{session_id}/checks`
- Auth: HTTP bearer

MCP/tool-only pre-publish validate for an active repo session: manifest, docs, skills, dependencies, bundle, typecheck, lint, and credential-need checks (no local CLI required). Call after edits and before repoPublishSession. Coding agents that can run `@kodycodes/cli` may also use `kody dev` / `.kody/mocks.ts` / `execute --local` for unpublished surface tests — that is optional extra capability, not a substitute for these checks. Package publishes require non-empty root README.md (human-focused) and AGENTS.md (agent-focused).

Org permission: `package:write`.

## Path parameters

- `session_id` string, required: Active repo session id from repoOpenSession or repoListSessions.

## Request body

- object

## Response `200`

Success.

- object
  - `ok` boolean, required
  - `results` object[], required
    - `kind` 'manifest' | 'docs' | 'skills' | 'dependencies' | 'bundle' | 'typecheck' | 'lint' | 'credentials' | 'smoke', required
    - `ok` boolean, required
    - `message` string, required
  - `manifest` object, nullable, required: Parsed package.json summary when available; null when the manifest itself failed validation or was missing.
    - `name` string, required
    - `kody_id` string, required
    - `description` string, required
    - `has_app` boolean, required

## Other responses

- `400`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `401`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `403`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `404`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `409`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `413`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `429`: Too many requests (edge IP/token limit) or an entitlement / plan-cap limit. Wait at least `Retry-After` seconds before retrying.
- `500`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `503`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `default`: Error envelope `{ "error": { "code", "message", "details"? } }`.

---

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