Skip to content
Back to skills

Commands

ASecurity

Run scenario-based tests on a skill to measure its quality.

  • 15 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added May 26, 2026
documentationtestinggit

Security analysis

A100/100

Pro scans all 7 files and shows the line behind each finding

Scanned May 27, 2026

npx -y skills add JavanC/Homunculus --skill commands --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Commands?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Commands
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/javanc-commands/badge)](https://www.skillsdirectory.com/skills/javanc-commands)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
disable-model-invocation: true
---
# /eval-skill β€” Evaluate an Evolved Skill

Run scenario-based tests on a skill to measure its quality.

## Steps

1. List eval specs: `ls homunculus/evolved/evals/*.eval.yaml 2>/dev/null`
2. If user specified a skill name, use that eval spec; otherwise let user choose
3. Read the skill file (`homunculus/evolved/skills/<name>.md`) and its eval spec

## Evaluation

For each scenario, act as a **developer who doesn't know the answer** β€” only reference the skill document. Then compare against expected_behavior and anti_patterns.

## Results

| Result | Condition |
|--------|-----------|
| **PASS** | Skill guides all expected behaviors, no anti-patterns triggered |
| **PARTIAL** | Skill guides some expected behaviors, or misses important details |
| **FAIL** | Skill fails to guide correct behavior, or would cause anti-patterns |
| **GAP** | Scenario knowledge is completely absent from skill |

## Report Format

```
πŸ”¬ Skill Eval: <name> v<version>
━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Scenario                Result   Notes
──────────────────────────────────────
<scenario.name>         PASS     -
<scenario.name>         PARTIAL  Missing X
<scenario.name>         FAIL     Would cause Y

━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Pass rate: X/Y (Z%)
Grade: ⭐⭐⭐⭐⭐ (>= 90)
```

## Noise Tolerance

**5pp rule**: score delta < 5pp is statistical noise, not a real change. From Anthropic infrastructure noise research β€” environment variance alone can cause Β±5pp swings.

- `|delta| < 5pp` β†’ `not_significant` (treat as flat)
- `delta >= 5pp` β†’ real improvement
- `delta <= -5pp` β†’ real regression

## Multiple-Run Modes

Three optional flags reduce measurement noise. Use independently or combined.

### --runs N (eliminate infra noise)

`/eval-skill my-skill --runs 3` β€” runs the full eval N times independently, reports mean Β± Οƒ.

- Eliminates session-to-session infrastructure variance
- **Recommended for nightly agent evals**: `--runs 3`
- Daily manual evals: default N=1 is fine

```
πŸ“Š Multi-Run Summary (runs=3):
Run 1: 85%  Run 2: 87%  Run 3: 83%
Mean: 85.0% | Οƒ: 1.6pp
Verdict: not_significant vs baseline 84% (delta=1pp < 5pp threshold)
```

### --passes N (reduce per-scenario LLM noise)

`/eval-skill my-skill --passes 3` β€” each scenario evaluated N times, majority vote decides.

- PASS in >N/2 runs β†’ final PASS (PARTIAL counts as 0.5)
- **Recommended: N=3** β€” reduces misjudgment from p to 3pΒ²-2pΒ³

### --pass-k K (measure reliability distribution)

`/eval-skill my-skill --pass-k 3` β€” reports pass@k and pass^k per scenario.

| Metric | Meaning |
|--------|---------|
| `pass@k` | At least 1 pass in k tries (exploration rate) |
| `pass^k` | All k passes (reliability rate) |

Use to distinguish "sometimes works" from "always works".

### Combining flags

`--runs R --passes P --pass-k K` = R Γ— P Γ— K Γ— scenarios. Use sparingly β€” `--runs 3` alone is usually enough.

## Majority Vote (--passes)

Use `--passes <N>` to reduce LLM-judge noise (e.g., `/eval-skill my-skill --passes 3`).

- Each scenario is evaluated **N times** independently
- **Majority vote** decides the final result: PASS in >N/2 runs β†’ final PASS, otherwise FAIL
- PARTIAL counts as 0.5 vote toward PASS
- N=1 is the default (standard eval)
- **Recommended: N=3** β€” reduces single-run noise at only 3x cost

### Report (appended when passes > 1)
```
πŸ“Š Majority Vote (passes=3):
Scenario                Votes     Final   Confidence
───────────────────────────────────────────
<scenario.name>        3/3 PASS   PASS   unanimous
<scenario.name>        2/3 PASS   PASS   majority
<scenario.name>        1/3 PASS   FAIL   majority
```

## Gaming Gate

Score jumps >5pp but net new lines ≀ 3 β†’ `gaming_suspected`, discard the improvement.

Real skill improvement requires substantive additions (new patterns, new examples, new sections). Rephrasing existing content to match scenario wording inflates LLM-judge scores without adding knowledge.

**Signs of gaming:**
- Score +8pp but skill only changed 2 lines
- New wording mirrors scenario's `expected_behavior` verbatim
- Discrimination rate unchanged despite score increase

When `gaming_suspected`: revert, add genuinely missing knowledge instead.

## Anti-Gaming Scenario Design

1. **Boundary scenarios are key** β€” discrimination comes from edge cases the skill uniquely handles
2. **Don't mirror expected_behavior wording** β€” scenarios should test understanding, not recall
3. **Discrimination > 30%** is healthy β€” if all scenarios pass without the skill, eval isn't testing anything
4. **Gradual improvement** β€” legitimate gains are 2-5pp per round, not 15pp jumps

## After Evaluation

- Update `last_eval` and `pass_rate` in the eval spec
- Append result to `homunculus/evolved/evals/history.jsonl`
- Suggest improvements for FAIL/PARTIAL/GAP scenarios

Files in this skill

  • eval-skill.md5 KB
  • evolve.md3.6 KB
  • hm-goal.md6.8 KB
  • hm-night.md11.2 KB
  • hm-status.md1.6 KB
  • improve-skill.md1.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.