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

# Create a prompt

> Author, version, and test a prompt before it ships.

# Create a prompt

A prompt in EvalGate is a versioned, content-hashed message template. You author
drafts, test them, send them for review, and publish an approved version to a
protected environment.

## Step 1 — Open Prompt Hub

In the sidebar, click **Prompts**, then **New prompt**.

<img src="https://mintcdn.com/evalgate/c7l4ztAi8W3wgmvV/help/images/create-prompt-registry.png?fit=max&auto=format&n=c7l4ztAi8W3wgmvV&q=85&s=7c6b2bfbf72cfa6d87ef6de32626bc8f" alt="A screenshot of the Prompt Hub registry with the New prompt button." width="2160" height="1350" data-path="help/images/create-prompt-registry.png" />

## Step 2 — Author the first version

Give the prompt a stable **key** (for example, `checkout-assistant-system`). The
key is the public identity; versions are immutable and content-hashed under it.

Write the message content. You can include tool definitions and variables. Save
the draft.

<img src="https://mintcdn.com/evalgate/c7l4ztAi8W3wgmvV/help/images/create-prompt-workbench.png?fit=max&auto=format&n=c7l4ztAi8W3wgmvV&q=85&s=798aab9bc81c20a7002bba85674e0f16" alt="A screenshot of the prompt workbench with a system message and a variable." width="2160" height="1350" data-path="help/images/create-prompt-workbench.png" />

## Step 3 — Test against the Gateway

Before review, run a **Gateway test** to confirm the prompt compiles and the
model accepts it. This needs a [connected provider key](../evalgate-101/connect-provider-key).

## Step 4 — Submit for review

Click **Submit for review**. A reviewer with the `prompt:publish` permission can
approve the version. Until then, it is a draft and cannot be served by a
protected alias.

## Step 5 — Publish to an environment

After approval, publish the version to a protected environment alias (for
example, `production`). The alias resolves that exact version — never a draft —
and every consumer retains the exact `versionId` and `contentHash`.

## Up next

[Publish and roll back](./publish-prompt) a version safely.
