---
title: "Get Slot Readiness"
method: GET
path: "/projects/{project_id}/slot-readiness"
---

# Get Slot Readiness

`GET /projects/{project_id}/slot-readiness`

## Request

- Base URL: `https://usemeridian.us` (the document declares no server; this is the origin it was published from)
- URL: `https://usemeridian.us/projects/{project_id}/slot-readiness`
- Auth: none declared

Probe whether the code/Serena tunnel slot is ready for this project.

Called by the code_intel_guard hook after it confirms code_intel_enabled=1.
Performs an actual tools/list round-trip to the code slot (which wakes up
an idle-killed Serena daemon via the tunnel's lazy-spawn mechanism) and
returns the readiness result.

Response shape:
  {
    "slot": "code",
    "ready": bool,          # True when the slot answered tools/list
    "has_tunnel": bool,     # False on self-hosted (no tunnel = fail-open)
    "probed": bool,         # True when a live probe was attempted
    "fallback_reason": str  # present only when ready=False (visible log hint)
  }

Fails open (ready=true, has_tunnel=false) when no tunnel is connected so
the hook never blocks an executor that has no tunnel (the enabled flag is
still the primary gate; this is only a secondary readiness gate).

## Path parameters

- `project_id` string, required

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/usemeridian/apis/meridian.md) · [All operations](https://skmtc.dev/usemeridian/apis/meridian/llms.txt) · [OpenAPI document](https://skmtc.dev/usemeridian/apis/meridian/revisions/f37a894bd374?raw)
