Skip to content

[BUG]: --no-llm negative eval case asks what the skill does #90

Description

@mimran-khan

What happened?

create-eval-dataset --full --no-llm (and the LLM-fallback template) builds bucket 4 as a negative control with expected_skill: null, then asks:

What does the {name} skill do and what are its capabilities?

That is generate_dataset.py. expected_behavior also requires "The agent's response accurately describes what {name} does".

The LLM prompt for the same bucket says the opposite:

4. Negative - should NOT trigger this skill (unrelated question)

in generate_dataset.py.

Tier 3 scores expected_skill: null as "do not read or apply this skill". A competent agent answering "what does this skill do?" will open SKILL.md, then fail the negative-control checks.

Expected: the template negative case is an unrelated question that should not load the skill, matching the LLM prompt and the scorer.

Actual: --no-llm writes a prompt that names the skill and asks for its capabilities, with expected_skill: null.

This is not #57. That issue was about LLM insights misclassifying a correctly handled negative control. This is the dataset generator writing a self-contradictory negative case.

Reproduction steps

tmp=$(mktemp -d)
mkdir -p "$tmp/demo"
cat > "$tmp/demo/SKILL.md" <<'EOF'
---
name: demo
description: A small skill used only to show dataset generation.
---
# Demo
EOF

skillevaluator create-eval-dataset "$tmp/demo" --full --no-llm --force
cat "$tmp/demo/evals/evals.json"

Observed last case:

  • id: demo-neg-001
  • prompt: What does the demo skill do and what are its capabilities?
  • expected_skill: null

SkillEvaluator version or commit

009aa300be7925c7ba75760592baeb941cc29ba8 (0.2.1)

Environment

  • macOS 15, arm64
  • Python 3.12.2
  • uv sync --python 3.12 --all-extras
  • No API key (--no-llm)

Before submitting

Happy to send a PR that makes the template negative case an unrelated question (and keeps expected_skill null) so it matches the LLM prompt and the scorer.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions