Skip to content

Add eval suite for classify-review-comment skill - #528

Merged
openshift-merge-bot[bot] merged 1 commit into
openshift-eng:mainfrom
bryan-cox:agent-eval-comment
Jun 5, 2026
Merged

openshift-merge-bot[bot] merged 1 commit into
openshift-eng:mainfrom
bryan-cox:agent-eval-comment

Conversation

@bryan-cox

@bryan-cox bryan-cox commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Adds an agent-eval-harness evaluation config (eval-classify-review-comment.yaml) for the code-review:classify-review-comment skill
  • Includes 14 test cases covering all severity and topic labels from config.json, derived from real-world PR review comment examples
  • 7 judges: 6 deterministic (valid JSON, valid labels, confidence range, severity/topic correctness, confidence calibration) + 1 LLM quality judge

Initial run with claude-opus-4-6: 100% pass rate on all deterministic judges, 4.86/5.0 mean on the LLM quality judge. $7.34 total cost for 14 cases (~$0.52/case).

Test plan

  • Install agent-eval-harness plugin: claude plugin install agent-eval-harness@agent-eval-harness-dev
  • Run /eval-setup to verify environment
  • Run /eval-run plugins/code-review/evals/eval-classify-review-comment.yaml and confirm all judges pass
  • Verify HTML report generates at eval/runs/classify-review-comment-eval/<run-id>/report.html

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Tests

    • Added 14 new evaluation cases and reference classifications for review-comment classification (multiple severities/topics) and a case-based eval harness with automated judges.
  • Documentation

    • Updated embedded marketplace/plugin metadata in docs.
  • Chores

    • Bumped plugin version to 0.0.10.

@openshift-ci
openshift-ci Bot requested review from stleerh and zaneb June 4, 2026 21:57
@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jun 4, 2026
@coderabbitai

coderabbitai Bot commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 6bb15031-d3e5-46cf-9e34-31eee0818217

📥 Commits

Reviewing files that changed from the base of the PR and between 02a4eea and 4527cf4.

📒 Files selected for processing (46)
  • .claude-plugin/marketplace.json
  • docs/index.html
  • plugins/code-review/.claude-plugin/plugin.json
  • plugins/code-review/evals/cases/classify-review-comment/case-001-nitpick-style/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-001-nitpick-style/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-001-nitpick-style/reference-classification.json
  • plugins/code-review/evals/cases/classify-review-comment/case-002-question-api-design/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-002-question-api-design/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-002-question-api-design/reference-classification.json
  • plugins/code-review/evals/cases/classify-review-comment/case-003-required-change-nil-panic/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-003-required-change-nil-panic/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-003-required-change-nil-panic/reference-classification.json
  • plugins/code-review/evals/cases/classify-review-comment/case-004-required-change-install-failure/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-004-required-change-install-failure/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-004-required-change-install-failure/reference-classification.json
  • plugins/code-review/evals/cases/classify-review-comment/case-005-required-change-test-gap/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-005-required-change-test-gap/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-005-required-change-test-gap/reference-classification.json
  • plugins/code-review/evals/cases/classify-review-comment/case-006-suggestion-ci-rebase/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-006-suggestion-ci-rebase/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-006-suggestion-ci-rebase/reference-classification.json
  • plugins/code-review/evals/cases/classify-review-comment/case-007-required-change-process/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-007-required-change-process/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-007-required-change-process/reference-classification.json
  • plugins/code-review/evals/cases/classify-review-comment/case-008-suggestion-ci-override/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-008-suggestion-ci-override/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-008-suggestion-ci-override/reference-classification.json
  • plugins/code-review/evals/cases/classify-review-comment/case-009-unclassified-approval/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-009-unclassified-approval/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-009-unclassified-approval/reference-classification.json
  • plugins/code-review/evals/cases/classify-review-comment/case-010-unclassified-process-dup/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-010-unclassified-process-dup/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-010-unclassified-process-dup/reference-classification.json
  • plugins/code-review/evals/cases/classify-review-comment/case-011-required-change-root-cause/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-011-required-change-root-cause/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-011-required-change-root-cause/reference-classification.json
  • plugins/code-review/evals/cases/classify-review-comment/case-012-suggestion-architecture/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-012-suggestion-architecture/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-012-suggestion-architecture/reference-classification.json
  • plugins/code-review/evals/cases/classify-review-comment/case-013-required-change-security/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-013-required-change-security/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-013-required-change-security/reference-classification.json
  • plugins/code-review/evals/cases/classify-review-comment/case-014-coderabbit-logic-bug/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-014-coderabbit-logic-bug/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-014-coderabbit-logic-bug/reference-classification.json
  • plugins/code-review/evals/eval-classify-review-comment.yaml
✅ Files skipped from review due to trivial changes (25)
  • plugins/code-review/evals/cases/classify-review-comment/case-004-required-change-install-failure/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-014-coderabbit-logic-bug/reference-classification.json
  • plugins/code-review/evals/cases/classify-review-comment/case-001-nitpick-style/reference-classification.json
  • plugins/code-review/evals/cases/classify-review-comment/case-006-suggestion-ci-rebase/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-006-suggestion-ci-rebase/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-002-question-api-design/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-013-required-change-security/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-009-unclassified-approval/reference-classification.json
  • plugins/code-review/evals/cases/classify-review-comment/case-012-suggestion-architecture/reference-classification.json
  • plugins/code-review/evals/cases/classify-review-comment/case-001-nitpick-style/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-013-required-change-security/reference-classification.json
  • plugins/code-review/evals/cases/classify-review-comment/case-009-unclassified-approval/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-010-unclassified-process-dup/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-003-required-change-nil-panic/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-007-required-change-process/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-006-suggestion-ci-rebase/reference-classification.json
  • plugins/code-review/evals/cases/classify-review-comment/case-003-required-change-nil-panic/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-014-coderabbit-logic-bug/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-011-required-change-root-cause/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-007-required-change-process/input.yaml
  • plugins/code-review/.claude-plugin/plugin.json
  • plugins/code-review/evals/cases/classify-review-comment/case-003-required-change-nil-panic/reference-classification.json
  • plugins/code-review/evals/cases/classify-review-comment/case-013-required-change-security/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-010-unclassified-process-dup/reference-classification.json
  • plugins/code-review/evals/cases/classify-review-comment/case-001-nitpick-style/annotations.yaml
🚧 Files skipped from review as they are similar to previous changes (19)
  • plugins/code-review/evals/cases/classify-review-comment/case-005-required-change-test-gap/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-002-question-api-design/reference-classification.json
  • plugins/code-review/evals/cases/classify-review-comment/case-005-required-change-test-gap/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-010-unclassified-process-dup/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-008-suggestion-ci-override/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-014-coderabbit-logic-bug/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-011-required-change-root-cause/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-009-unclassified-approval/annotations.yaml
  • docs/index.html
  • plugins/code-review/evals/cases/classify-review-comment/case-012-suggestion-architecture/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-005-required-change-test-gap/reference-classification.json
  • plugins/code-review/evals/cases/classify-review-comment/case-004-required-change-install-failure/reference-classification.json
  • plugins/code-review/evals/cases/classify-review-comment/case-008-suggestion-ci-override/reference-classification.json
  • plugins/code-review/evals/cases/classify-review-comment/case-002-question-api-design/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-004-required-change-install-failure/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-008-suggestion-ci-override/input.yaml
  • .claude-plugin/marketplace.json
  • plugins/code-review/evals/cases/classify-review-comment/case-011-required-change-root-cause/reference-classification.json
  • plugins/code-review/evals/eval-classify-review-comment.yaml

Walkthrough

This PR adds a case-driven evaluation (14 cases) and an eval harness for the code-review:classify-review-comment skill, plus plugin metadata version bumps (0.0.9 → 0.0.10) in manifest and docs.

Changes

Review Comment Classification Evaluation

Layer / File(s) Summary
Plugin metadata bump
.claude-plugin/marketplace.json, docs/index.html, plugins/code-review/.claude-plugin/plugin.json
Bump code-review plugin version from 0.0.9 to 0.0.10 across marketplace, docs, and plugin manifest.
Evaluation harness and judges
plugins/code-review/evals/eval-classify-review-comment.yaml
Adds an eval that runs claude-code for the code-review:classify-review-comment skill, requires a single classification.json output object, and configures judges for JSON structure, allowed labels, confidence ranges, correctness vs. per-case acceptable alternatives, confidence calibration, and an LLM-based classification_quality rubric.
Classification test cases (14 scenarios)
plugins/code-review/evals/cases/classify-review-comment/case-00{1..14}-*/
Adds 14 cases each with input.yaml (comment + author), annotations.yaml (expected severity/topic, acceptable alternatives, expected_confidence_min, notes), and reference-classification.json ground-truth: covers nitpick/style, API questions, nil panic, install failure, test gaps, CI rebase/override, process issues, approval withdrawal, duplicate marking, root-cause logic bugs, architecture suggestions, security findings, and CodeRabbit-flagged logic bug.

Sequence Diagram

sequenceDiagram
  participant Client
  participant Runner as claude-code
  participant Plugin as code-review
  participant Judges
  participant Output as classification.json
  Client->>Runner: run eval with arguments "{comment}"
  Runner->>Plugin: invoke classify-review-comment
  Plugin->>Output: produce classification.json
  Runner->>Judges: validate structure, labels, correctness, calibration, quality
  Judges->>Client: return scores and pass/fail
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested labels

ok-to-test, lgtm

Suggested reviewers

  • zaneb
  • stleerh
  • Prashanth684

Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (1 error)

Check name Status Explanation Resolution
No Real People Names In Style References ❌ Error Real person name "jparrill" used in SKILL.md documentation Real-World Examples section, violating requirement against real names in examples. Replace "jparrill" with a generic identifier (e.g., "reviewer-name", "approver-1") or use placeholder values in all documentation and example outputs.
✅ Passed checks (9 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title 'Add eval suite for classify-review-comment skill' directly and clearly describes the main change: adding a comprehensive evaluation suite for a specific skill.
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.
No Assumed Git Remote Names ✅ Passed PR adds evaluation cases for classify-review-comment skill. No hardcoded git remote names (origin/upstream) found in code or configuration. Runner type is claude-code with bash explicitly denied.
Git Push Safety Rules ✅ Passed PR adds only YAML config and JSON test data files; no git push commands, force push operations, shell scripts, or executable automation found; Bash explicitly denied in eval permissions.
No Untrusted Mcp Servers ✅ Passed No untrusted MCP servers introduced. Only "mcp__*" found in deny permissions (restricts access). All changes are test cases and evaluation config with no npm installs or repos.
Ai-Helpers Overlap Detection ✅ Passed PR adds only eval test fixtures (evals/ directory) and version metadata, not ai-helpers functional files (commands/skills/agents). Check skip condition applies for non-functional docs.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@bryan-cox
bryan-cox force-pushed the agent-eval-comment branch from f1c54c3 to 778c800 Compare June 4, 2026 22:00

@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: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
plugins/openshift/commands/api-review.md (1)

233-233: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Investigate incomplete line at end of file.

Line 233 appears to contain only the line number without any content or change marker. This may indicate a formatting issue or incomplete file.

🔍 Verify file integrity

Check if this is intentional EOF formatting or if content is missing:

#!/bin/bash
# Check the actual file ending
echo "=== Last 5 lines of the file ==="
tail -5 plugins/openshift/commands/api-review.md | cat -A

echo -e "\n=== File line count ==="
wc -l plugins/openshift/commands/api-review.md

echo -e "\n=== Check for trailing newlines ==="
od -c plugins/openshift/commands/api-review.md | tail -3
🤖 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 `@plugins/openshift/commands/api-review.md` at line 233, The file
plugins/openshift/commands/api-review.md ends with an incomplete/trailing line
(line 233) that appears empty or malformed; open that file, inspect the final
lines (around line 233), remove any stray line-number-only text or stray
characters, ensure the file ends with a single newline and no extraneous
markers, and commit the cleaned EOF so api-review.md has a proper final newline
and no incomplete line entries.
🧹 Nitpick comments (1)
plugins/openshift/commands/api-review.md (1)

10-12: 💤 Low value

Consider adding language specifiers to code blocks.

Markdown linting suggests adding language specifiers to code blocks for better rendering and syntax highlighting. While these are usage examples (not executable code), adding bash or shell identifiers would improve documentation quality.

📝 Suggested improvements
 ## Synopsis
-```
+```bash
 /openshift:api-review [pr_url]

```diff
 1. **Review a PR**:
-   ```
+   ```bash
    /openshift:api-review https://github.com/openshift/api/pull/2145
    ```
 2. **Review local changes**:
-   ```
+   ```bash
    /openshift:api-review
    ```

Also applies to: 212-214, 218-220

🤖 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 `@plugins/openshift/commands/api-review.md` around lines 10 - 12, Update the
fenced code blocks showing the example command "/openshift:api-review [pr_url]"
(and the other examples with real/empty URLs) to include a language specifier
(e.g., bash or shell) after the opening triple backticks so markdown linters and
renderers will apply proper syntax highlighting; locate the blocks containing
"/openshift:api-review [pr_url]", "/openshift:api-review
https://github.com/openshift/api/pull/2145", and "/openshift:api-review" and
change their opening fences from ``` to ```bash.
🤖 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 `@plugins/code-review/evals/eval-classify-review-comment.yaml`:
- Around line 38-53: The case-mode eval cases are missing the required per-test
metadata; update each annotations.yaml under
plugins/code-review/evals/cases/classify-review-comment/*/annotations.yaml (and
similarly under plugins/ci/evals/cases/payload-analysis/*/annotations.yaml) to
include a top-level metadata: block containing token-usage, judge-size, and tier
(with appropriate values for each test), ensuring the metadata is present on
every test case file so --filter-metadata can find them before defaultTest
merging.

---

Outside diff comments:
In `@plugins/openshift/commands/api-review.md`:
- Line 233: The file plugins/openshift/commands/api-review.md ends with an
incomplete/trailing line (line 233) that appears empty or malformed; open that
file, inspect the final lines (around line 233), remove any stray
line-number-only text or stray characters, ensure the file ends with a single
newline and no extraneous markers, and commit the cleaned EOF so api-review.md
has a proper final newline and no incomplete line entries.

---

Nitpick comments:
In `@plugins/openshift/commands/api-review.md`:
- Around line 10-12: Update the fenced code blocks showing the example command
"/openshift:api-review [pr_url]" (and the other examples with real/empty URLs)
to include a language specifier (e.g., bash or shell) after the opening triple
backticks so markdown linters and renderers will apply proper syntax
highlighting; locate the blocks containing "/openshift:api-review [pr_url]",
"/openshift:api-review https://github.com/openshift/api/pull/2145", and
"/openshift:api-review" and change their opening fences from ``` to ```bash.
🪄 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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 108d342d-b00f-4781-bf61-e6e22850b854

📥 Commits

Reviewing files that changed from the base of the PR and between b88798e and f1c54c3.

📒 Files selected for processing (30)
  • plugins/code-review/evals/cases/classify-review-comment/case-001-nitpick-style/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-001-nitpick-style/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-002-question-api-design/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-002-question-api-design/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-003-required-change-nil-panic/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-003-required-change-nil-panic/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-004-required-change-install-failure/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-004-required-change-install-failure/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-005-required-change-test-gap/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-005-required-change-test-gap/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-006-suggestion-ci-rebase/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-006-suggestion-ci-rebase/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-007-required-change-process/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-007-required-change-process/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-008-suggestion-ci-override/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-008-suggestion-ci-override/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-009-unclassified-approval/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-009-unclassified-approval/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-010-unclassified-process-dup/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-010-unclassified-process-dup/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-011-required-change-root-cause/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-011-required-change-root-cause/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-012-suggestion-architecture/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-012-suggestion-architecture/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-013-required-change-security/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-013-required-change-security/input.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-014-coderabbit-logic-bug/annotations.yaml
  • plugins/code-review/evals/cases/classify-review-comment/case-014-coderabbit-logic-bug/input.yaml
  • plugins/code-review/evals/eval-classify-review-comment.yaml
  • plugins/openshift/commands/api-review.md

Comment thread plugins/code-review/evals/eval-classify-review-comment.yaml
@bryan-cox
bryan-cox force-pushed the agent-eval-comment branch from 77961ae to 02a4eea Compare June 4, 2026 22:10
Do not wrap the JSON in markdown code fences in the file.

models:
judge: claude-sonnet-4-6

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

agent-eval-harness have reccomended to stick to Opus for judging

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done. Changed judge model to claude-opus-4-6 per agent-eval-harness recommendation.


AI-assisted response via Claude Code

Adds an agent-eval-harness evaluation config and 14 test cases for the
code-review:classify-review-comment skill. Cases cover all severity and
topic labels from config.json using real-world PR review comment examples.

Judges include 6 deterministic checks (valid JSON, valid labels,
confidence range, severity/topic correctness, confidence calibration)
and 1 LLM quality judge. Initial run with claude-opus-4-6 achieves
100% pass rate on all deterministic judges and 4.86/5.0 on the LLM
judge.

Gold reference outputs from the initial run are included as
reference-classification.json in each test case directory.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@stbenjam

stbenjam commented Jun 5, 2026

Copy link
Copy Markdown
Member

/test eval-classify-review-comment

@bryan-cox

Copy link
Copy Markdown
Contributor Author

/test ?

@bryan-cox

Copy link
Copy Markdown
Contributor Author

/test eval-classify-review-comment

@stbenjam

stbenjam commented Jun 5, 2026

Copy link
Copy Markdown
Member

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Jun 5, 2026
@openshift-ci

openshift-ci Bot commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: bryan-cox, stbenjam

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-merge-bot
openshift-merge-bot Bot merged commit 4d932f3 into openshift-eng:main Jun 5, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. lgtm Indicates that a PR is ready to be merged.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants