| type | skill |
| lifecycle | stable |
| inheritance | inheritable |
| name | prompt-evolution-system |
| description | Externalized prompt store, A/B testing, metrics-driven evolution, quality gates, and auto-rollback |
| tier | standard |
| applyTo | **/*prompt*,**/*evolution*,**/*a-b-test* |
| metadata | {"version":"1.0.0","category":"ai-engineering","tags":["prompt-evolution","a-b-testing","metrics","prompt-store","versioning","rollback","prompt-management"],"activation":{"triggers":["prompt evolution","a/b test","prompt store","prompt versioning","metrics","prompt rollback","evolution engine"],"context":"Working on prompt evolution, A/B testing, prompt metrics, or evolution lifecycle"},"prerequisites":[]} |
| currency | 2026-04-22T00:00:00.000Z |
Prompt Evolution System
Patterns for metrics-driven prompt improvement — externalized storage, A/B testing, quality gates, and auto-rollback.
Three Phases
| Phase | When | Backend | Capability |
|---|
| Static | MVP | LocalPromptStore (JSON files) | Fixed prompts, manual edits |
| Observing | Month 2+ | CosmosPromptStore or DB | Metrics collection, no mutations |
| Evolving | Month 3+ | CosmosPromptStore or DB | Auto-propose variants, A/B test, promote |
PromptStore Interface
interface IPromptStore {
getPrompt(id: string, variables: Record<string, unknown>): Promise<ResolvedPrompt>;
getVariants(id: string): Promise<PromptVariant[]>;
recordExecution(id: string, metrics: ExecutionMetrics): Promise<void>;
promoteVariant(id: string, variantId: string): Promise<void>;
rollback(id: string, : ): <>;
}