# Prompt Lab
A/B harness for prompts and skills: two variants, the same fixtures, a declared weighted rubric, and a verdict that names the diff that mattered. ## Why Prompt comparisons usually end as a vibes call: try each variant on a task you like, pick the one that sounds better, commit to it. That is not a test. It is one sample, contaminated by your own reading of both outputs, with no shared criteria. Prompt Lab forces the three things a comparison needs: identical inputs, declared criteria, and fresh subagents so variant A never sees variant B. ## How it works 1. You provide two variants (prompt files, inline prompts, or skill names), a fixture set (`{"id", "input", "expected_properties"}`), and a rubric (weighted criteria of type `contains`, `regex`, or `manual`). 2. The skill validates both files up front, then runs every fixture through both variants in fresh subagents (one agent per run, no shared context), saving outputs and a `runs.json` contamination audit trail. 3. `scripts/score_outputs.py` (stdlib only) scores what it can: `contains` needles, `regex` patterns, and substring-form expected properties. Manual criteria come back marked `judged: false` for the agent to fill in; the total reports `pending_manual` so a verdict is never made on hidden partial data. 4. You get `