Skip to content

docs: require skill evals before publishing - #318

Draft
jellydn wants to merge 4 commits into
mainfrom
feat/skill-evals-from-video
Draft

docs: require skill evals before publishing#318
jellydn wants to merge 4 commits into
mainfrom
feat/skill-evals-from-video

Conversation

@jellydn

@jellydn jellydn commented Jul 16, 2026

Copy link
Copy Markdown
Owner

What

  • Adds a new docs/skill-evals.md guide for defining skill evals before publishing.
  • Updates CONTRIBUTING.md to require eval prompts and a negative case for each new skill.

Why

  • The repo should not ship skills without a small, explicit eval set.
  • This makes it easier to catch near-miss prompts, ambiguous wording, and failure cases before release.

How

  • Documents a minimal eval set, what to record, and a review checklist.
  • Replaces the vague skill test step with concrete eval prompts and coverage expectations.

Summary by CodeRabbit

  • Documentation
    • Added a new “skill evals” guide explaining how to design and run prompt evaluation sets before publishing a new skill, including positive triggers, near-miss negatives, and edge/failure-mode cases.
    • Updated contribution instructions to include creating skill evaluation prompts (with a negative case), then renumbered and clarified the remaining steps for updating skill rules and documenting the new skill.
    • Revised the testing checklist to validate both correct triggering and that near-miss prompts remain inactive.

@changeset-bot

changeset-bot Bot commented Jul 16, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 084eb57

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Important

Review skipped

Too many files!

This PR contains 53 files, which is 3 over the limit of 50.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 0e7394dd-6720-409d-84d9-7db7b4513b2b

📥 Commits

Reviewing files that changed from the base of the PR and between b2dcc57 and 084eb57.

📒 Files selected for processing (53)
  • skills/adr/SKILL.md
  • skills/adr/evals/evals.json
  • skills/blindspot-pass/SKILL.md
  • skills/blindspot-pass/evals/evals.json
  • skills/capability-experiments/SKILL.md
  • skills/capability-experiments/evals/evals.json
  • skills/code-quality-review/SKILL.md
  • skills/code-quality-review/evals/evals.json
  • skills/code-review/SKILL.md
  • skills/code-review/evals/evals.json
  • skills/codemap/SKILL.md
  • skills/codemap/evals/evals.json
  • skills/commit-atomic/SKILL.md
  • skills/commit-atomic/evals/evals.json
  • skills/context-discovery/SKILL.md
  • skills/context-discovery/evals/evals.json
  • skills/doc-search/SKILL.md
  • skills/doc-search/evals/evals.json
  • skills/docs-update/SKILL.md
  • skills/docs-update/evals/evals.json
  • skills/draft-pull-request/evals/evals.json
  • skills/git-context/SKILL.md
  • skills/git-context/evals/evals.json
  • skills/handoffs/SKILL.md
  • skills/handoffs/evals/evals.json
  • skills/implementation-logger/SKILL.md
  • skills/implementation-logger/evals/evals.json
  • skills/llm-wiki/SKILL.md
  • skills/llm-wiki/evals/evals.json
  • skills/pickup/SKILL.md
  • skills/pickup/evals/evals.json
  • skills/plannotator-setup-goal/SKILL.md
  • skills/plannotator-setup-goal/evals/evals.json
  • skills/portless-local/SKILL.md
  • skills/portless-local/evals/evals.json
  • skills/pr-review/SKILL.md
  • skills/pr-review/evals/evals.json
  • skills/prd/SKILL.md
  • skills/prd/evals/evals.json
  • skills/qmd-knowledge/SKILL.md
  • skills/qmd-knowledge/evals/evals.json
  • skills/quiz-me/SKILL.md
  • skills/quiz-me/evals/evals.json
  • skills/ralph/SKILL.md
  • skills/ralph/evals/evals.json
  • skills/slop/SKILL.md
  • skills/slop/evals/evals.json
  • skills/spec-interview/SKILL.md
  • skills/spec-interview/evals/evals.json
  • skills/tdd/SKILL.md
  • skills/tdd/evals/evals.json
  • skills/tmux/SKILL.md
  • skills/tmux/evals/evals.json

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • Review on demand using usage pricing

Walkthrough

Skill evaluation guidance was added and incorporated into contribution instructions. New skills now require documented happy-path, negative near-miss, and edge-case prompts, with testing focused on expected triggering and non-triggering behavior.

Changes

Skill evaluation workflow

Layer / File(s) Summary
Define skill eval standards
docs/skill-evals.md
Documents required eval categories, prompt details, storage structure, evaluation workflow, assertions, human review, and pre-publication checks.
Integrate evals into contribution workflow
CONTRIBUTING.md
Adds eval writing to the new-skill process and replaces onboarding test guidance with positive and near-miss eval validation.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Poem

A rabbit writes prompts in a neat little row,
Happy paths sparkle, near-misses say no.
Evals are prepared before skills take flight,
Triggers are tested till they behave right.
Hop, hop—clear guidance is ready to grow!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely summarizes the main change: requiring skill evals before publishing.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/skill-evals-from-video

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a new documentation file docs/skill-evals.md detailing the process and template for writing skill evaluations, and updates CONTRIBUTING.md to integrate this new evaluation step into the skill creation workflow. Feedback on the pull request points out an inconsistency in the required number of evaluation prompts between CONTRIBUTING.md (which mentions 3-5 prompts) and docs/skill-evals.md (which defines a minimum of 5-6 prompts), suggesting an update to maintain consistency.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread CONTRIBUTING.md
2. **Create SKILL.md file**: Add `SKILL.md` with skill frontmatter and content
3. **Update skill-rules.json**: Add triggers and keywords for your new skill
4. **Document**: Add skill to `skills/README.md` if it exists
3. **Write evals**: Add 3-5 prompts that prove the skill works, including at least one negative case. See [`docs/skill-evals.md`](docs/skill-evals.md).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The prompt count mentioned here ("3-5 prompts") is inconsistent with the minimal eval set defined in docs/skill-evals.md, which requires at least 5 prompts (3 happy-path, 1-2 near-miss, and 1 edge-case). Update this to "5-6 prompts" to maintain consistency across the documentation.

Suggested change
3. **Write evals**: Add 3-5 prompts that prove the skill works, including at least one negative case. See [`docs/skill-evals.md`](docs/skill-evals.md).
3. **Write evals**: Add 5-6 prompts that prove the skill works, including at least one negative case. See [`docs/skill-evals.md`](docs/skill-evals.md).

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@CONTRIBUTING.md`:
- Around line 53-54: Update CONTRIBUTING.md lines 53-54 to require 3 happy-path,
1-2 near-miss, and 1 edge-case prompts, consistent with docs/skill-evals.md.
Also update CONTRIBUTING.md line 131 to require contributors to run and record
results for edge-case prompts alongside happy-path and near-miss prompts.

In `@docs/skill-evals.md`:
- Around line 42-62: Update every evaluation entry under “Happy path prompts,”
“Near-miss prompts,” and “Edge cases” to include an explicit “Result/Notes”
field alongside Prompt and Expected, preserving the existing template structure
and guidance for recording manual pass/fail observations.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 271222b7-5a32-49af-b3a2-21c475cba158

📥 Commits

Reviewing files that changed from the base of the PR and between 1810a21 and 5bb7b61.

📒 Files selected for processing (2)
  • CONTRIBUTING.md
  • docs/skill-evals.md

Comment thread CONTRIBUTING.md
Comment on lines +53 to +54
3. **Write evals**: Add 3-5 prompts that prove the skill works, including at least one negative case. See [`docs/skill-evals.md`](docs/skill-evals.md).
4. **Update skill-rules.json**: Add triggers and keywords for your new skill

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

Keep the contribution workflow consistent with the documented eval standard.

The workflow currently allows incomplete eval coverage and does not require running edge-case prompts.

  • CONTRIBUTING.md#L53-L54: require 3 happy-path, 1-2 near-miss, and 1 edge-case prompts, matching docs/skill-evals.md.
  • CONTRIBUTING.md#L131-L131: require contributors to run and record results for edge-case prompts in addition to happy-path and near-miss prompts.
📍 Affects 1 file
  • CONTRIBUTING.md#L53-L54 (this comment)
  • CONTRIBUTING.md#L131-L131
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@CONTRIBUTING.md` around lines 53 - 54, Update CONTRIBUTING.md lines 53-54 to
require 3 happy-path, 1-2 near-miss, and 1 edge-case prompts, consistent with
docs/skill-evals.md. Also update CONTRIBUTING.md line 131 to require
contributors to run and record results for edge-case prompts alongside
happy-path and near-miss prompts.

Comment thread docs/skill-evals.md Outdated
Comment on lines +42 to +62
## Happy path prompts

1. Prompt: ...
Expected: ...

2. Prompt: ...
Expected: ...

3. Prompt: ...
Expected: ...

## Near-miss prompts

1. Prompt: ...
Expected: skill should not trigger / should ask for clarification / should route elsewhere

## Edge cases

1. Prompt: ...
Expected: ...

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Add a result/notes field to every template eval.

The guide requires recording manual pass/fail notes, but the template only captures prompts and expected behavior. Add an explicit Result/Notes field to the happy-path, near-miss, and edge-case entries so eval records are auditable.

Suggested template addition
  1. Prompt: ...
     Expected: ...
+    Result/Notes: Pass/Fail — ...
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/skill-evals.md` around lines 42 - 62, Update every evaluation entry
under “Happy path prompts,” “Near-miss prompts,” and “Edge cases” to include an
explicit “Result/Notes” field alongside Prompt and Expected, preserving the
existing template structure and guidance for recording manual pass/fail
observations.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/skill-evals.md`:
- Around line 106-114: Add a checklist item in the “Review checklist” section
requiring at least one prompt that exercises the skill’s documented edge case,
boundary condition, or failure mode, alongside the existing negative-case
requirement.
- Around line 51-56: Update the recommended test-case schema in the
skill-evaluation guide to include a required should_trigger field indicating
whether the skill is expected to trigger. Keep the existing prompt,
expected_output, files, and assertions fields, and clarify that should_trigger
supports unambiguous near-miss cases in evals.json.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 739f7fbe-a3f7-4f4c-adbd-3a095a607dac

📥 Commits

Reviewing files that changed from the base of the PR and between 5bb7b61 and b2dcc57.

📒 Files selected for processing (1)
  • docs/skill-evals.md

Comment thread docs/skill-evals.md
Comment on lines +51 to +56
A test case should usually include:

- `prompt`: realistic user input
- `expected_output`: human-readable success criteria
- `files` (optional): input files the skill needs
- `assertions` (optional at first): concrete checks added after the first run

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

Include the trigger expectation in the eval schema.

The guide requires recording whether each skill should trigger, but the recommended test-case structure has no should_trigger field. Without it, near-miss evaluations cannot be represented unambiguously in evals.json.

Suggested documentation update
  - `prompt`: realistic user input
+ - `should_trigger`: whether the skill is expected to trigger
  - `expected_output`: human-readable success criteria
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
A test case should usually include:
- `prompt`: realistic user input
- `expected_output`: human-readable success criteria
- `files` (optional): input files the skill needs
- `assertions` (optional at first): concrete checks added after the first run
A test case should usually include:
- `prompt`: realistic user input
- `should_trigger`: whether the skill is expected to trigger
- `expected_output`: human-readable success criteria
- `files` (optional): input files the skill needs
- `assertions` (optional at first): concrete checks added after the first run
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/skill-evals.md` around lines 51 - 56, Update the recommended test-case
schema in the skill-evaluation guide to include a required should_trigger field
indicating whether the skill is expected to trigger. Keep the existing prompt,
expected_output, files, and assertions fields, and clarify that should_trigger
supports unambiguous near-miss cases in evals.json.

Comment thread docs/skill-evals.md
Comment on lines +106 to +114
## Review checklist

- [ ] The skill has eval prompts, not just a description
- [ ] At least one negative case is included
- [ ] The prompts are realistic and varied
- [ ] Expected outputs are specific enough to review manually
- [ ] The evals were run before the skill was published
- [ ] Any failures led to an update in the skill or its trigger rules
- [ ] The skill was compared against a baseline or previous version

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Add an explicit edge-case requirement to the checklist.

The minimum eval set requires an edge-case prompt at Line 22, but this checklist only verifies negative coverage. A skill could pass the checklist without testing its documented boundary or failure mode.

Suggested checklist addition
  - [ ] At least one negative case is included
+ - [ ] At least one edge-case prompt is included
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
## Review checklist
- [ ] The skill has eval prompts, not just a description
- [ ] At least one negative case is included
- [ ] The prompts are realistic and varied
- [ ] Expected outputs are specific enough to review manually
- [ ] The evals were run before the skill was published
- [ ] Any failures led to an update in the skill or its trigger rules
- [ ] The skill was compared against a baseline or previous version
## Review checklist
- [ ] The skill has eval prompts, not just a description
- [ ] At least one negative case is included
- [ ] At least one edge-case prompt is included
- [ ] The prompts are realistic and varied
- [ ] Expected outputs are specific enough to review manually
- [ ] The evals were run before the skill was published
- [ ] Any failures led to an update in the skill or its trigger rules
- [ ] The skill was compared against a baseline or previous version
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/skill-evals.md` around lines 106 - 114, Add a checklist item in the
“Review checklist” section requiring at least one prompt that exercises the
skill’s documented edge case, boundary condition, or failure mode, alongside the
existing negative-case requirement.

@jellydn
jellydn marked this pull request as draft August 4, 2026 00:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant