一键导入
prompt-test
Run a prompt against a test suite of inputs, score outputs, and compare against baseline. Use for single-run prompt evaluation after changes.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Run a prompt against a test suite of inputs, score outputs, and compare against baseline. Use for single-run prompt evaluation after changes.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Run AI-specific inversion analysis on a requirement before implementation. Dispatches the `ai-invert-analyst` agent on a separate thread. Use before complex or high-stakes AI tasks that touch prompts, models, RAG, or AI-powered outputs.
Autonomously improve any skill or agent prompt via measure-change-test hill-climbing. Dispatches the `auto-improver` agent on a separate thread. Use when a skill gives inconsistent results, when asked to "improve/optimize/autoresearch" a skill, or when output quality needs iterative tightening.
Capture a reproducible AI performance baseline before changes. Dispatches the `baseline-capturer` agent on a separate thread. Use before any change to a client-facing AI output. Triggered automatically by the Q3 gate in CLAUDE.md.
Generate AI tool configuration for an existing project. Explores the codebase and produces context files, path-scoped pattern rules, landmine rules, and agents for Claude Code and VS Code Copilot. Run once per project.
Inject managed sections into existing CLAUDE.md and AGENTS.md after a North Starr GenAI plugin update without re-bootstrapping. Preserves all project-specific content.
Generate executable pytest test files for AI outputs. Produces assertion-based tests for deterministic AI components (classification, extraction, routing, structured output) that run in CI/CD. Complements /eval-suite which produces statistical evaluation datasets for non-deterministic outputs.
| name | prompt-test |
| description | Run a prompt against a test suite of inputs, score outputs, and compare against baseline. Use for single-run prompt evaluation after changes. |
| argument-hint | <prompt name, file path, or eval suite name> |
Run a prompt against a test suite of inputs, score every output against a binary rubric, compare results to an existing baseline, and deliver a pass/fail verdict. This is the single-run counterpart to /autoimprove — where /autoimprove iterates in a loop, /prompt-test executes one evaluation cycle and reports results.
Use this skill after making a manual change to a prompt and wanting to know: did it get better, worse, or stay the same?
Use this skill when the user requests:
If the user wants iterative optimization, point them to /autoimprove instead.
Actions:
.plans/PROMPTS-<name>/ or skills/<name>/SKILL.md.plans/EVAL-<name>/ for a matching eval suite directorytest-inputs.md or inputs.json inside the eval suiteevals/, tests/eval/, or benchmarks/ directoriesNo eval suite found for this prompt. I need test inputs to run against.
Options:
1. Provide 1-5 test inputs now (I'll use them for this run)
2. Point me to a file containing test inputs
3. I'll generate representative test inputs based on the prompt's purpose (you approve before I run)
Validation:
The rubric defines what "good output" looks like. It uses the same binary yes/no format as /autoimprove.
Actions:
.plans/EVAL-<name>/rubric.md — the eval suite's rubric (most authoritative).plans/PROMPTS-<name>/v<N>.md — check the latest prompt version for an Eval Handoff section from the prompt-engineer agent. If present, it contains suggested scoring criteria, test inputs, and known weak spots. Use these as your starting point — the prompt-engineer designed them for this specific prompt..plans/autoimprove-<name>/ — reuse the checklist from a prior autoimprove runFound existing rubric with [N] criteria:
1. [criterion 1]
2. [criterion 2]
...
Use this rubric? (y / n / modify)
I need a scoring rubric — 3-6 yes/no questions that define what "good output" looks like.
Option 1: I'll analyze the prompt and propose a rubric (recommended)
Option 2: You provide your own rubric
Option 3: I'll propose one, then you refine it
Rubric anti-patterns to avoid:
Example rubric for a customer-reply prompt:
1. Does the reply directly address the customer's specific question or complaint?
2. Is the reply under 200 words?
3. Does the reply include a concrete next step or action item?
4. Is the reply free of corporate jargon and filler phrases?
5. Does the reply acknowledge the customer's frustration (if any) before offering a solution?
Get user approval on the rubric before proceeding.
Actions:
.plans/BASELINE-<name>.md — created by /baseline.plans/autoimprove-<name>/results.tsv — baseline row from a prior autoimprove runNo baseline found for this prompt. Results will show absolute scores only.
To enable comparison, run /baseline first, or this run's results will serve
as the baseline for future comparisons.
Baseline data to extract (when available):
Actions:
Important:
Non-deterministic output handling: If the prompt uses temperature > 0 or the model produces variable outputs:
[pass_count]/[3 runs] instead of binary YES/NO⚠ Input 3 is inconsistent: Q2 passes 2/3 runs (67%)
If temperature = 0 and the model is deterministic, a single run per input is sufficient. Note which mode was used in the results header.
Apply the rubric to every output using the strict scoring protocol from /autoimprove.
Scoring rules:
Scoring format per test input:
Test Input [N]: [input description or first 80 chars]
Q1: [YES/NO] — [brief evidence from the output]
Q2: [YES/NO] — [brief evidence from the output]
Q3: [YES/NO] — [brief evidence from the output]
Q4: [YES/NO] — [brief evidence from the output]
Input Score: [X]/[total]
If a baseline exists, produce a per-criterion comparison.
Actions:
Comparison format:
Per-Criterion Comparison
────────────────────────
Q1: [criterion text]
Baseline: [X]/[N] ([%]) → Current: [Y]/[N] ([%]) | Delta: [+/-N%] | [IMPROVED / REGRESSED / SAME]
Q2: [criterion text]
Baseline: [X]/[N] ([%]) → Current: [Y]/[N] ([%]) | Delta: [+/-N%] | [IMPROVED / REGRESSED / SAME]
⚠ REGRESSIONS:
Q2: was 92%, now 78% — REGRESSION of 14 points. [criterion text]
[list only regressed criteria here for quick scanning]
Regression highlighting rules:
⚠ warning🔴 critical flagIf no baseline exists, skip this step and note: "No baseline available for comparison."
Actions:
aggregate = total_yes / (num_inputs x num_criteria)delta = current_aggregate - baseline_aggregateDisplay a formatted summary with all findings.
Prompt Test Results: <prompt name>
════════════════════════════════════
Prompt: <path or name>
Test inputs: <N>
Rubric: <N> criteria
Baseline: <available / not available>
────────────────────────────────────
Per-Input Scores
────────────────────────────────────
Input 1: [description] [X]/[total]
Input 2: [description] [X]/[total]
Input 3: [description] [X]/[total]
...
────────────────────────────────────
Per-Criterion Breakdown
────────────────────────────────────
Q1: [criterion] [Y]/[N] inputs passed
Q2: [criterion] [Y]/[N] inputs passed
Q3: [criterion] [Y]/[N] inputs passed
...
Weakest: Q[X] — [criterion text]
Strongest: Q[X] — [criterion text]
────────────────────────────────────
Baseline Comparison
────────────────────────────────────
[per-criterion comparison table from Step 6, or "No baseline available"]
Regressions: [count, or "None"]
Improvements: [count]
────────────────────────────────────
Aggregate
────────────────────────────────────
Score: [total_yes]/[total_possible] ([percentage]%)
Baseline: [baseline_score]% (delta: [+/-N]%)
Threshold: [threshold]%
Verdict: **PASS** / **FAIL**
════════════════════════════════════
If there are regressions, add a prominent warning block:
!! REGRESSIONS DETECTED
Q[X]: [criterion] dropped from [old]% to [new]%
Q[Y]: [criterion] dropped from [old]% to [new]%
Review these before shipping the prompt change.
Actions:
.plans/EVAL-<name>/ directory if it doesn't exist.plans/EVAL-<name>/results-<date>.md with the full output from Step 8.plans/EVAL-<name>/rubric.md if it was newly createdNo prior baseline exists. Save these results as the baseline for future comparisons?
(This writes to .plans/BASELINE-<name>.md)
If the user agrees, write a baseline file in the format defined by /baseline, populating the Accuracy/Quality section with the rubric scores.
Tailor suggestions based on the verdict:
If FAIL:
Analyze the failure pattern and suggest a specific fix, not generic advice:
The prompt did not meet the [threshold]% threshold (scored [X]%).
Failure Analysis:
Weakest criterion: Q[X] — [criterion text] — passed [N]/[N] ([%])
Failure pattern: [describe the pattern — e.g., "All adversarial inputs fail Q3",
"Long inputs (>500 words) consistently fail Q1", "Ambiguous tickets
misclassified as 'general' instead of 'billing'"]
Suggested fix (based on failure pattern):
• [SPECIFIC action — e.g., "Add a grounding instruction: 'Only use information
from the provided ticket text. If the category is ambiguous, output
confidence: low instead of guessing.'"]
• [OR: "Add a few-shot example showing an ambiguous billing/general ticket
correctly classified as billing"]
• [OR: "The prompt truncates long inputs — add a summarization step before
classification for inputs >500 tokens"]
To fix iteratively: run /autoimprove targeting Q[X]
The fix suggestion must reference the actual failing criterion, failing inputs, and a concrete prompt change — not "improve the prompt."
If PASS with regressions:
The prompt passes overall but has regressions in [N] criteria.
Suggested next steps:
1. Investigate regressions before shipping:
- Q[X]: [what changed and why it might have regressed]
2. If regressions are acceptable trade-offs, document the decision
3. Run /learn to capture what worked in this prompt change
If PASS with no regressions:
The prompt passes with no regressions. Good to ship.
Suggested next steps:
1. Run /learn to capture what made this prompt change effective
2. Update the baseline: run /baseline to record the new performance level
3. If you want to push the score higher, run /autoimprove
This protocol is shared with /autoimprove to ensure consistent measurement across single runs and iterative optimization.
| Skill | Relationship |
|---|---|
/baseline | Provides the "before" metrics that /prompt-test compares against |
/autoimprove | Uses /prompt-test as its inner evaluation loop — runs it every round |
/learn | Captures insights from test results as reusable rules |
/eval-suite | Creates the test inputs and rubrics that /prompt-test consumes |
/autoimprove, skip the interactive steps (rubric confirmation, next-step suggestions) — those are handled by the outer loop..plans/EVAL-<name>/ — each run gets a dated filename so historical performance is preserved.