Prompt
How do I set up prompt versioning and human review workflows for an evals dashboard in our prompt engineering team?
Latest observation
Here’s a practical way to set up prompt versioning + human review workflows for an evals dashboard in a prompt engineering team.
1) Define the core objects
You want the dashboard to track these separately:
- Prompt template: the base prompt text with variables
- Prompt version: an immutable snapshot of a template at a point in time
- Eval run: a single execution of a prompt version against a dataset/model config
- Human review: annotations/judgments on eval outputs
- Release/approval: a gate that decides whether a prompt version can ship
A good mental model is:
prompt → version → eval run → human review → approval/release
2) Make prompt versions immutable
Each time someone changes a prompt, create a new version instead of editing in place.
Store for each version
- version ID
- parent version ID
- author
- timestamp
- change summary / rationale
- prompt content
- model config used for evaluation
- dataset version used for evaluation
- status:
draft,in review,approved,rejected,deprecated
Why this matters
- reproducibility
- auditability
- rollback
- easier comparisons between versions
Recommended convention
Use semantic-ish versioning for human readability:
prompt_name@1.0.0prompt_name@1.1.0prompt_name@2.0.0
Or if you prefer simpler:
prompt_name:v17
3) Treat eval runs as first-class records
When a prompt version is tested, create an eval run record that includes:
- prompt version ID
- dataset ID/version
- model/provider/version
- decoding params: temperature, top_p, max_tokens
- runtime environment
- timestamp
- status:
queued,running,completed,failed
Store outputs per test case
For each example in the dataset:
- input variables
- rendered prompt
- model output
- expected output if available
- automatic metrics
- reviewer scores/comments
This makes it easy to compare:
- v1 vs v2
- model A vs model B
- dataset slice A vs slice B
4) Build a human review workflow with clear states
A simple workflow that works well:
Workflow states
- Draft
- author creates/edits prompt
- Ready for eval
- author marks it ready
- Eval complete
- automated tests run
- Needs human review
- sample outputs sent to reviewers
- Approved / Rejected
- reviewer or approver decides
- Released
- version is promoted to production
- Deprecated
- old version retired but kept for history
Suggested review gates
- Author self-check: sanity check before wider review
- Peer review: another prompt engineer checks prompt logic
- Domain expert review: SME validates correctness and safety
- Final approver: lead/owner signs off for release
5) Use a rubric for human review
Don’t rely on free-form comments only. Add a structured rubric.
Example review dimensions
- Correctness
- Completeness
- Faithfulness to source
- Tone/style
- Safety/compliance
- Formatting
- Task success
Scoring
Use a simple scale like:
- 1 = poor
- 2 = below target
- 3 = acceptable
- 4 = good
- 5 = excellent
Add:
- pass/fail threshold
- “must-fix” flags
- comment box for rationale
Example review record
- test case ID
- reviewer ID
- rubric scores
- overall verdict: pass/fail
- issue tags: hallucination, policy violation, format break, ambiguity
- free-text comments
6) Sample intelligently for human review
You usually don’t need humans to review every output.
Good sampling strategy
Review:
- all failures on critical test cases
- a random sample of passes
- edge cases
- regression-prone cases
- high-impact user journeys
- cases with low model confidence if available
Optional prioritization
Rank examples by:
- severity
- novelty
- historical failure rate
- disagreement between automatic metrics and model output
This keeps review cost manageable.
7) Add comparison views in the dashboard
A strong dashboard should show diffs between prompt versions.
Useful comparisons
- prompt text diff
- output diff by test case
- metric deltas
- reviewer score deltas
- failure category changes
- approval status changes
Helpful UI elements
- side-by-side prompt rendering
- side-by-side model outputs
- filter by test slice
- sort by score delta or severity
- grouped failures by theme
8) Establish ownership and permissions
Different roles should have different permissions.
Typical roles
- Author: create/edit drafts, submit for review
- Reviewer: score outputs, comment, recommend approve/reject
- Approver: final release decision
- Viewer: read-only access
- Admin: manage datasets, permissions, workflows
Important rule
Authors should ideally not be the sole approver of their own prompts for production.
9) Keep an audit trail
Track every important action:
- prompt created
- prompt edited
- eval run launched
- reviewer assigned
- review submitted
- approval/rejection
- release to prod
- rollback
Store:
- who
- what
- when
- before/after values
- reason/comment
This is valuable for governance and debugging.
10) Integrate with CI/CD or release pipelines
A good setup lets prompts move through the same discipline as code.
Example gating flow
- PR updates prompt template
- CI triggers offline eval suite
- if metrics pass thresholds, assign human review
- if human review passes, merge and release
- if not, block release
Common threshold examples
- no critical safety violations
- overall human score ≥ 4.0
- format compliance ≥ 95%
- regression rate ≤ 2%
- no drop beyond allowed delta on key metrics
11) Recommended database/entities
If you’re building this yourself, these tables/entities are a good start:
promptsprompt_versionseval_runseval_casesmodel_outputshuman_reviewsreview_assignmentsapprovalsdatasetstags/issuesaudit_events
Relationships:
- one prompt has many versions
- one version has many eval runs
- one eval run has many cases/outputs
- one output can have many reviews
- one version can have one or more approvals
12) A simple rollout plan
If you want to implement this quickly:
Phase 1
- immutable prompt versions
- eval run logging
- basic dashboard with history
- manual human review notes
Phase 2
- rubric-based review forms
- reviewer assignments
- comparison views
- approval statuses
Phase 3
- automation for thresholds
- sampling strategies
- CI integration
- audit trail and RBAC
13) Practical workflow example
- Engineer edits prompt in draft
- New version
v12is created - Offline eval runs on 200 test cases
- Dashboard flags 18 failures and 5 borderline cases
- 20 outputs are sampled for human review
- Reviewers score according to rubric
- Version passes correctness but fails tone on one critical slice
- Engineer revises to
v13 - Re-eval and re-review
- Approver signs off
v13is released andv12is retained for rollback
14) Best practices
- Never overwrite prompt history
- Version your datasets too
- Separate automated scores from human judgment
- Keep review rubrics consistent
- Make release criteria explicit
- Review edge cases and failures first
- Track reviewer disagreement and calibration
- Keep prompts, data, and model settings reproducible
If you want, I can also provide:
- a sample schema for the dashboard database,
- a review rubric template, or
- a workflow diagram you can implement in Notion/Jira/GitHub/Airtable.