eval-audit
**Locale**: All templates in this spec are written in English. Detect the user's language from the session and translate user-facing text at display time per…
**Locale**: All templates in this spec are written in English. Detect the user's language from the session and translate user-facing text at display time per SKILL.md's Global UX Rules. Dimension labels: see the canonical table in SKILL.md.
$ npx -y skills add Evol-ai/SkillCompass --agent claude-codeHow it fires
How this command gets triggered: by you, by Claude, or both.
/eval-evolveContext preview
What this command does when you run it.
**Locale**: All templates in this spec are written in English. Detect the user's language from the session and translate user-facing text at display time per SKILL.md's Global UX Rules. Dimension labels: see the canonical table in SKILL.md.
> **Locale**: All templates in this spec are written in English. Detect the user's language from the session and translate user-facing text at display time per SKILL.md's Global UX Rules. Dimension labels: see the canonical table in SKILL.md.
called programmatically by another command or script.
user with a choice **before** attempting any plugin call:
┌─ Plugin required: ralph-wiggum ───────────────────────┐ │ This command depends on the ralph-wiggum plugin to │ │ run the multi-round evolution loop. │ │ │ │ [Install ralph-wiggum plugin] [Cancel] │ └────────────────────────────────────────────────────────┘
`claude plugin install ralph-wiggum@claude-code-plugins` and continue.
Generates and executes a `/ralph-loop` invocation that chains `/eval-skill` → `/eval-improve` automatically until the skill reaches PASS verdict (or hits the iteration limit). This is a power-user workflow, not the default path for normal evaluations.
**You do not implement the loop yourself.** You build the prompt and hand off to Ralph.
1. Confirm the target SKILL.md file exists (use **Read**). 2. Check if a Ralph loop is already active (check `.claude/ralph-loop.local.md`). If active, tell the user to `/cancel-ralph` first and stop.
Load `.skill-compass/{skill-name}/manifest.json` if it exists. Extract:
If no manifest exists, note: "First evaluation — starting from scratch."
Construct the following prompt text, substituting `{SKILL_PATH}` and `{TARGET_SCORE}`:
You are running an autonomous skill evolution loop.
Target: {SKILL_PATH}
Goal: overall_score >= {TARGET_SCORE} with verdict PASS
## Each iteration:
1. Run /eval-skill {SKILL_PATH} --scope full
2. Read the JSON result. Check verdict and overall_score.
3. If verdict is "PASS" and overall_score >= {TARGET_SCORE}:
→ Output: <promise>PASS</promise>
→ Stop.
4. If verdict is not PASS:
→ Run /eval-improve {SKILL_PATH}
→ eval-improve will target the weakest dimension automatically.
5. After eval-improve completes, this iteration is done.
The next iteration will re-evaluate from step 1.
## Rules:
- Do NOT output <promise>PASS</promise> unless the eval-skill JSON verdict is literally "PASS".
- If eval-improve reports a regression (score dropped), let the next iteration re-evaluate — it may auto-rollback.
- Be concise. No lengthy explanations between steps.
- After outputting <promise>PASS</promise>, you MUST generate the Evolution Report by reading the manifest and following Step 5 of eval-evolve.md.Display to the user (follow session locale):
Evolution plan:
Skill: {skill-name}
Target: score >= {TARGET_SCORE}, verdict = PASS
Max rounds: {MAX_ITERATIONS}
Estimated tokens: ~{MAX_ITERATIONS × 60}K (worst case)
Starting Ralph loop…Progress messages during the loop also follow the session locale. Examples:
| Event | Message | |-------|---------| | Iteration start | `[Round N] Evaluating…` | | Improvement applied | `[Round N] Improved: {dim_label}` | | Rollback | `[Round N] Regression detected, rolled back` | | PASS reached | `✓ PASS reached (Round N)` | | Max iterations | `⚠ Max iterations reached without PASS` |
Then execute:
/ralph-loop "{prompt_text}" --max-iterations {MAX_ITERATIONS} --completion-promise "PASS"See the canonical **Dimension label mapping** table in SKILL.md (all commands must use it).
Example: instead of "D2 ({score}/10)", write "Trigger D2 ({score}/10)".
When the Ralph loop terminates (by PASS or max-iterations), **you must generate the Evolution Report**. This is the most important output of the entire command — it makes the evolution value visible to the user.
Read `.skill-compass/{skill-name}/manifest.json`. Extract the `versions` array. For each version created during this evolution session (filter by `trigger: "eval-improve"` entries after the starting version):
Also read `.skill-compass/{skill-name}/corrections.json` if it exists, for changelog details.
Display the following report to the user (follow session locale):
═══════════════════════════════════════════════════════
Evolution Report: {skill-name}
{start_version} → {final_version} | {total_rounds} rounds
═══════════════════════════════════════════════════════
Score: {start_score} → {final_score} ({+delta})
Verdict: {start_verdict} → {final_verdict}
── Score curve ──Evaluate agent skill quality. Find the weakest link. Fix it. Prove it worked.
Repo: Evol-ai/SkillCompass
**Locale**: All templates in this spec are written in English. Detect the user's language from the session and translate user-facing text at display time per…
**Locale**: All templates in this spec are written in English. Detect the user's language from the session and translate user-facing text at display time per…
- **Recommended model: Claude Opus 4.6** (`claude-opus-4-6`). Directed improvement requires understanding complex rubric feedback and generating precise,…
**Locale**: All templates in this spec are written in English. Detect the user's language from the session and translate user-facing text at display time per…
**Locale**: All templates in this spec are written in English. Detect the user's language from the session and translate user-facing text at display time per…
**Locale**: All templates in this spec are written in English. Detect the user's language from the session and translate user-facing text at display time per…