Skip to main content
The prompt registry is a folder of YAML files that track every version of every prompt in your project. Because prompts live in files, every change is visible in git: diffable, reviewable, and reversible.

Prompt file format

Each prompt is stored as a YAML file in the prompts/ directory. Here is a complete example:
id: summarization
version: 2
status: production
body: |
  You are a summarization assistant.
  Summarize the user input in one sentence.
author: emmanuel
created_at: "2026-03-25T12:00:00Z"
tags: ["core", "summary"]
FieldDescription
idUnique identifier for the prompt, used in CLI commands
versionInteger version number, incremented on each change
statusCurrent lifecycle stage: draft, staging, or production
bodyThe prompt text sent to the model
authorWho created or last modified the prompt
created_atISO 8601 timestamp
tagsOptional labels for organizing and filtering prompts

The promotion lifecycle

Prompts move through three statuses on the way to production:
1

draft

The default status for every new prompt. A draft prompt is a work in progress — it can be edited freely and has not been validated yet.
2

staging

Promote to staging once you want to run evals against the prompt before it goes live. This signals that the prompt is a candidate for production.
3

production

The active, live version of the prompt. Promote to production after the eval run passes. evalflow reminds you to run evalflow eval before this step.
evalflow will remind you to run evalflow eval before promoting to production. Skipping this step means you are shipping a prompt without a quality gate check.

CLI workflow

Create a new prompt YAML file in prompts/:
evalflow prompt create summarization
Created prompts/summarization.yaml
The file is created with status: draft, version: 1, and a placeholder body for you to fill in.

Why it matters

Prompt changes are often the most impactful changes in an LLM application, but they rarely go through the same review process as code. The prompt registry makes every change:
  • Visible in git — prompt edits appear in pull request diffs like any other file change
  • Diffableevalflow prompt diff shows exactly what changed between versions
  • Gated — running evalflow eval before promoting connects prompt changes to quality scores
  • Auditable — the author, created_at, and version fields give you a history of who changed what and when
Commit your prompts/ directory and .evalflow/ baseline directory to version control. This gives every developer and your CI runner the same prompt versions and the same quality baseline to compare against.