> ## Documentation Index
> Fetch the complete documentation index at: https://docs.shipstar.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# get_generation_status

> Check the status of a content record kicked off by a generate_* tool

Checks the generation and review state of a content record kicked off by any `generate_*` tool. Poll every 20–30 seconds; generation normally finishes within a few minutes.

## Arguments

| Name         | Type          | Description                                       |
| ------------ | ------------- | ------------------------------------------------- |
| `content_id` | string (UUID) | The `content_id` returned by a `generate_*` tool. |

## Returns

```json theme={null}
{
  "content_id": "7f5e2c1a-...",
  "output_type": "release_notes_email",
  "status": "completed",
  "error_message": null,
  "review_status": "ready_for_review",
  "is_published": false,
  "published_at": null,
  "public_slug": null,
  "created_at": "2026-08-10T14:02:11+00:00"
}
```

* `status` is the generation state: `pending` → `processing` → `completed`, or `failed` (with the failure reason in `error_message`).
* `review_status` is the publication state of the associated review event, when one exists: `ready_for_review`, `approved`, `published`, or `skipped`. It is `null` for records with no review event.

Once `status` is `completed`, read the draft with [`get_content_draft`](/mcp/lifecycle/get-content-draft), then move it forward with [`approve_content`](/mcp/lifecycle/approve-content) or [`publish_content`](/mcp/lifecycle/publish-content).

## Errors

* `Invalid content_id (must be a UUID): abc123`
* `Content not found: 7f5e2c1a-...` — no record with that ID exists in this project.

## Example prompts

> "Is the changelog I kicked off done yet?"

> "Check the status of content 7f5e2c1a and tell me if it failed."
