Skip to content

feat: add 11 new evaluators, expand standard suites, fix evaluator validator gap#198

Open
jithin23-kv wants to merge 4 commits into
KeyValueSoftwareSystems:masterfrom
jithin23-kv:feat/sync-netra-opfor-evaluators
Open

feat: add 11 new evaluators, expand standard suites, fix evaluator validator gap#198
jithin23-kv wants to merge 4 commits into
KeyValueSoftwareSystems:masterfrom
jithin23-kv:feat/sync-netra-opfor-evaluators

Conversation

@jithin23-kv

@jithin23-kv jithin23-kv commented Jul 14, 2026

Copy link
Copy Markdown
Collaborator

Problem

The evaluator catalog was missing coverage for several real-world harm categories (hate speech, harassment, sexual content, fraud/scams, disinformation, privacy violations, non-violent crime, copyright, social-engineering PII disclosure, political/religious bias), and the standard-suite derivation (owasp-api, nist, eu-ai-act) was incomplete. Separately, scripts/validate-skills.ts was silently skipping an entire class of evaluator files, so some evaluators were never actually validated.

Solution

  • Added 11 new evaluators across harmful/, disclosure/, and bias/, each with hand-authored pass/fail criteria and attack patterns, reviewed independently per-evaluator for rigor and consistency with house style.
  • Extended suite derivation to cover owasp-api and nist, and broadened eu-ai-act beyond bias-only coverage.
  • Updated suites/agent/harmful-content.yaml to include the new harmful evaluators.
  • Fixed scripts/validate-skills.ts, which only discovered directory-form (evaluator.yaml) evaluators and silently skipped flat-file-form ones (inline patterns) — it now covers both, matching the runtime loader's discovery logic.
  • Reconciled standards: frontmatter and severity values across evaluators for internal consistency.

Changes

  • core/src/catalog/loadEvaluatorCatalog.ts — add owasp-api/nist derived suites, broaden eu-ai-act
  • scripts/validate-skills.ts — discover + validate flat-file evaluators (inline patterns)
  • evaluators/agent/harmful/{harmful-hate,harmful-harassment-bullying,harmful-sexual-content,harmful-illegal-activities,harmful-misinformation-disinformation,harmful-privacy,harmful-non-violent-crime,harmful-copyright-violations}/ — new evaluators
  • evaluators/agent/disclosure/pii-social/, evaluators/agent/bias/{bias-political,bias-religious}/ — new evaluators
  • suites/agent/harmful-content.yaml — add the new harmful evaluators
  • ~30 existing evaluator.yaml files — standards: tag fixes and severity consistency
  • skills/*/opfor-setup/catalog.json, runners/extension/catalog.json — regenerated

Issue

N/A

How to test

npm run validate:skills   # 108 files, 0 errors (8 pre-existing warnings on patternless source-analysis evaluators)
npm run build:catalog
npm run extension:catalog
npx tsc -b core
npm run lint
npm run format:check

Summary by CodeRabbit

  • New Features

    • Added/expanded safety coverage, including political and religious bias, privacy violations, harassment/hate speech, misinformation, copyright issues, illegal activities, sexual content, and harmful non-violent crime.
    • Introduced additional evaluation patterns and response test cases across these categories.
    • Added/updated derived suite coverage, including OWASP API Top 10, NIST AI RMF, and consolidated EU AI Act reporting.
  • Improvements

    • Updated evaluator severity levels and compliance/standards mappings throughout the catalog.
    • Expanded the harmful-content suite with many newly included evaluators.
  • Validation

    • Improved validation for both directory-based and single-file evaluator configurations.
  • Documentation

    • Refreshed evaluator catalog documentation to reflect the expanded suites and updated mappings.

@coderabbitai

coderabbitai Bot commented Jul 14, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: dec18398-8b74-4d4c-b109-f97b42899988

📥 Commits

Reviewing files that changed from the base of the PR and between b2fa51d and 4f6d968.

📒 Files selected for processing (2)
  • docs/evaluator-schema.md
  • docs/evaluators.md

Walkthrough

The PR expands evaluator coverage, revises severity and standards metadata, adds derived EU AI Act, NIST, and OWASP API suites, supports multiple evaluator YAML layouts during validation, and synchronizes generated catalogs and harmful-content suite membership.

Changes

Evaluator catalog expansion

Layer / File(s) Summary
Derived standard suites
core/src/catalog/loadEvaluatorCatalog.ts, runners/extension/scripts/build-catalog.mjs
Adds owasp-api-top10 and nist-ai-rmf, and replaces eu-ai-act-bias with the consolidated eu-ai-act suite.
Evaluator coverage and metadata
evaluators/agent/**
Adds political, religious, privacy, harmful-content, and social-engineering evaluators; updates severity and standards mappings across existing evaluators.
Catalog synchronization
runners/extension/catalog.json, skills/*/opfor-setup/catalog.json
Synchronizes evaluator entries, suite memberships, standards, severities, and newly added evaluator definitions.
Validation and documentation
scripts/validate-skills.ts, suites/agent/harmful-content.yaml, docs/evaluator-schema.md, docs/evaluators.md
Validates directory-form and flat-file evaluators, expands harmful-content suite membership, and documents updated standards and catalog coverage.

Estimated code review effort: 5 (Critical) | ~120 minutes

Suggested reviewers: achuvyas-kv

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main changes: new evaluators, broader suite derivation, and a validator fix.
Description check ✅ Passed The description follows the template and includes the required Problem, Solution, Changes, Issue, and How to test sections.
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

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.

@jithin23-kv jithin23-kv changed the title feat: sync OPFOR evaluator catalog with netra feat: add 11 new evaluators, expand standard suites, fix evaluator validator gap Jul 14, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 5

Caution

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

⚠️ Outside diff range comments (2)
scripts/validate-skills.ts (1)

43-55: 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

scripts/validate-skills.ts: add the new standards keys to EvaluatorYamlSchema
standards still only allows owasp-llm, owasp-agentic, and atlas, but the evaluator YAMLs now use eu-ai-act, nist, owasp-api, and owasp-mcp in many places. Zod strips unknown object keys by default, so those values are silently dropped instead of validated. Extend the schema to cover the new metadata.

🤖 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 `@scripts/validate-skills.ts` around lines 43 - 55, Extend the standards object
in EvaluatorYamlSchema to accept the eu-ai-act, nist, owasp-api, and owasp-mcp
keys as optional strings alongside the existing standards. Ensure these metadata
fields are validated and preserved instead of stripped.

Source: Coding guidelines

runners/extension/catalog.json (1)

4-219: 🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

Regenerate runners/extension/catalog.json to include owasp-api-top10 and nist-ai-rmf
The current suites array still only has owasp-agentic-ai, owasp-llm-top10, and owasp-mcp-top10; the loader already derives owasp-api-top10 from standards.owasp-api and nist-ai-rmf from standards.nist, so this checked-in catalog is missing those derived suites.

🤖 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 `@runners/extension/catalog.json` around lines 4 - 219, Regenerate the
catalog’s suites array so it includes the derived owasp-api-top10 and
nist-ai-rmf suites alongside the existing OWASP suites. Preserve the
loader-generated definitions and evaluator mappings from standards.owasp-api and
standards.nist rather than manually inventing or altering unrelated suite
entries.
🤖 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 `@evaluators/agent/bias/bias-race/evaluator.yaml`:
- Around line 24-25: Update the standards object in EvaluatorYamlSchema within
validate-skills.ts to explicitly accept the nist and eu-ai-act string fields, or
apply a string-valued catchall if standards keys are intentionally dynamic, so
parsing preserves these evaluator metadata entries.

In `@evaluators/agent/harmful/harmful-copyright-violations/evaluator.yaml`:
- Around line 1-28: Add the required standards metadata to the
harmful-copyright-violations evaluator alongside id, name, and severity, using
the established standards structure and applicable standard identifier(s) from
comparable evaluator definitions so it is included in derived standard suites.

In `@evaluators/agent/harmful/harmful-hate/harmful-hate.test.yaml`:
- Around line 7-8: Update the fail_case fixture to use a concrete, unambiguous
hateful response targeting a protected group instead of the “[demeaning
stereotypes follow]” placeholder, while preserving the expected FAIL outcome.

In `@evaluators/agent/harmful/harmful-illegal-activities/evaluator.yaml`:
- Around line 5-6: Update the standards definition in EvaluatorYamlSchema within
validate-skills.ts to explicitly accept the nist key, or configure an
appropriate catchall, so parsed evaluator YAML preserves nist and the catalog
loader includes the evaluator in the nist suite.

In `@skills/mcp-redteaming/opfor-setup/catalog.json`:
- Around line 665-674: Correct the swapped OWASP API mappings: update the ssrf
entry in skills/mcp-redteaming/opfor-setup/catalog.json (665-674) and
runners/extension/catalog.json (813-818) to use API7, and update the
debug-access entry in skills/agent-redteaming/opfor-setup/catalog.json (561-570)
to use API8. Also apply the corresponding mapping changes in
evaluators/mcp/injection/ssrf/evaluator.yaml and
evaluators/agent/disclosure/debug-access/evaluator.yaml.

---

Outside diff comments:
In `@runners/extension/catalog.json`:
- Around line 4-219: Regenerate the catalog’s suites array so it includes the
derived owasp-api-top10 and nist-ai-rmf suites alongside the existing OWASP
suites. Preserve the loader-generated definitions and evaluator mappings from
standards.owasp-api and standards.nist rather than manually inventing or
altering unrelated suite entries.

In `@scripts/validate-skills.ts`:
- Around line 43-55: Extend the standards object in EvaluatorYamlSchema to
accept the eu-ai-act, nist, owasp-api, and owasp-mcp keys as optional strings
alongside the existing standards. Ensure these metadata fields are validated and
preserved instead of stripped.
🪄 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: 9b4bff47-fa76-4872-bc8c-3739d64215cb

📥 Commits

Reviewing files that changed from the base of the PR and between b207c86 and 74ecd13.

📒 Files selected for processing (146)
  • core/src/catalog/loadEvaluatorCatalog.ts
  • evaluators/agent/access-control/bfla/evaluator.yaml
  • evaluators/agent/access-control/rbac/evaluator.yaml
  • evaluators/agent/accuracy/hallucination/evaluator.yaml
  • evaluators/agent/accuracy/misinformation/evaluator.yaml
  • evaluators/agent/accuracy/overreliance/evaluator.yaml
  • evaluators/agent/bias/bias-age/evaluator.yaml
  • evaluators/agent/bias/bias-disability/evaluator.yaml
  • evaluators/agent/bias/bias-gender/evaluator.yaml
  • evaluators/agent/bias/bias-political/bias-political.test.yaml
  • evaluators/agent/bias/bias-political/evaluator.yaml
  • evaluators/agent/bias/bias-political/patterns/abortion-ban-loaded-framing.yaml
  • evaluators/agent/bias/bias-political/patterns/conservative-persuasion.yaml
  • evaluators/agent/bias/bias-political/patterns/gun-control-loaded-framing.yaml
  • evaluators/agent/bias/bias-political/patterns/objectively-better-party.yaml
  • evaluators/agent/bias/bias-political/patterns/partisan-essay-left.yaml
  • evaluators/agent/bias/bias-political/patterns/partisan-essay-right.yaml
  • evaluators/agent/bias/bias-political/patterns/progressive-persuasion.yaml
  • evaluators/agent/bias/bias-political/patterns/voting-recommendation.yaml
  • evaluators/agent/bias/bias-race/evaluator.yaml
  • evaluators/agent/bias/bias-religious/bias-religious.test.yaml
  • evaluators/agent/bias/bias-religious/evaluator.yaml
  • evaluators/agent/bias/bias-religious/patterns/comparative-violence-claim.yaml
  • evaluators/agent/bias/bias-religious/patterns/policy-favoritism.yaml
  • evaluators/agent/bias/bias-religious/patterns/practice-disparagement.yaml
  • evaluators/agent/bias/bias-religious/patterns/religion-ranking.yaml
  • evaluators/agent/bias/bias-religious/patterns/trustworthiness-generalization.yaml
  • evaluators/agent/brand-conduct/competitors/evaluator.yaml
  • evaluators/agent/brand-conduct/contracts/evaluator.yaml
  • evaluators/agent/brand-conduct/imitation/evaluator.yaml
  • evaluators/agent/brand-conduct/off-topic/evaluator.yaml
  • evaluators/agent/code-execution/improper-output-handling/evaluator.yaml
  • evaluators/agent/code-execution/shell-injection/evaluator.yaml
  • evaluators/agent/code-execution/sql-injection/evaluator.yaml
  • evaluators/agent/disclosure/debug-access/evaluator.yaml
  • evaluators/agent/disclosure/pii-api-db/evaluator.yaml
  • evaluators/agent/disclosure/pii-direct/evaluator.yaml
  • evaluators/agent/disclosure/pii-session/evaluator.yaml
  • evaluators/agent/disclosure/pii-social/evaluator.yaml
  • evaluators/agent/disclosure/pii-social/patterns/authority-plus-urgency-stack.yaml
  • evaluators/agent/disclosure/pii-social/patterns/fabricated-emergency.yaml
  • evaluators/agent/disclosure/pii-social/patterns/impersonated-it-support.yaml
  • evaluators/agent/disclosure/pii-social/patterns/impersonated-law-enforcement.yaml
  • evaluators/agent/disclosure/pii-social/patterns/impersonated-manager.yaml
  • evaluators/agent/disclosure/pii-social/patterns/self-identity-confusion.yaml
  • evaluators/agent/disclosure/pii-social/patterns/trust-building-then-ask.yaml
  • evaluators/agent/disclosure/pii-social/pii-social.test.yaml
  • evaluators/agent/disclosure/sensitive-disclosure/evaluator.yaml
  • evaluators/agent/disclosure/system-prompt-leakage/evaluator.yaml
  • evaluators/agent/excessive-agency/excessive-agency/evaluator.yaml
  • evaluators/agent/excessive-agency/tool-misuse/evaluator.yaml
  • evaluators/agent/harmful/harmful-bioweapons/evaluator.yaml
  • evaluators/agent/harmful/harmful-child-exploitation/evaluator.yaml
  • evaluators/agent/harmful/harmful-copyright-violations/evaluator.yaml
  • evaluators/agent/harmful/harmful-copyright-violations/patterns/book-excerpt-reproduction.yaml
  • evaluators/agent/harmful/harmful-copyright-violations/patterns/chunked-incremental-reproduction.yaml
  • evaluators/agent/harmful/harmful-copyright-violations/patterns/movie-script-reproduction.yaml
  • evaluators/agent/harmful/harmful-copyright-violations/patterns/paywalled-article-reproduction.yaml
  • evaluators/agent/harmful/harmful-copyright-violations/patterns/proprietary-source-code.yaml
  • evaluators/agent/harmful/harmful-copyright-violations/patterns/song-lyrics-reproduction.yaml
  • evaluators/agent/harmful/harmful-copyright-violations/patterns/translation-evasion.yaml
  • evaluators/agent/harmful/harmful-cybercrime-malicious-code/evaluator.yaml
  • evaluators/agent/harmful/harmful-harassment-bullying/evaluator.yaml
  • evaluators/agent/harmful/harmful-harassment-bullying/patterns/anonymous-humiliation.yaml
  • evaluators/agent/harmful/harmful-harassment-bullying/patterns/group-chat-mockery.yaml
  • evaluators/agent/harmful/harmful-harassment-bullying/patterns/insult-escalation.yaml
  • evaluators/agent/harmful/harmful-harassment-bullying/patterns/prank-framing.yaml
  • evaluators/agent/harmful/harmful-harassment-bullying/patterns/roleplay-as-the-bully.yaml
  • evaluators/agent/harmful/harmful-harassment-bullying/patterns/third-party-proxy-request.yaml
  • evaluators/agent/harmful/harmful-hate/evaluator.yaml
  • evaluators/agent/harmful/harmful-hate/harmful-hate.test.yaml
  • evaluators/agent/harmful/harmful-hate/patterns/academic-framing.yaml
  • evaluators/agent/harmful/harmful-hate/patterns/crescendo-escalation-multi-turn.yaml
  • evaluators/agent/harmful/harmful-hate/patterns/debate-prep-framing.yaml
  • evaluators/agent/harmful/harmful-hate/patterns/direct-request-baseline.yaml
  • evaluators/agent/harmful/harmful-hate/patterns/fictional-character-wrapper.yaml
  • evaluators/agent/harmful/harmful-hate/patterns/neutral-discussion-counter-probe.yaml
  • evaluators/agent/harmful/harmful-hate/patterns/satire-wrapper.yaml
  • evaluators/agent/harmful/harmful-illegal-activities/evaluator.yaml
  • evaluators/agent/harmful/harmful-illegal-activities/patterns/elder-targeted-scam-script.yaml
  • evaluators/agent/harmful/harmful-illegal-activities/patterns/fake-charity-scheme.yaml
  • evaluators/agent/harmful/harmful-illegal-activities/patterns/fake-invoice.yaml
  • evaluators/agent/harmful/harmful-illegal-activities/patterns/fraud-prevention-inversion.yaml
  • evaluators/agent/harmful/harmful-illegal-activities/patterns/identity-fraud.yaml
  • evaluators/agent/harmful/harmful-illegal-activities/patterns/incremental-scam-assembly.yaml
  • evaluators/agent/harmful/harmful-illegal-activities/patterns/tech-support-scam-script.yaml
  • evaluators/agent/harmful/harmful-illegal-drugs/evaluator.yaml
  • evaluators/agent/harmful/harmful-indiscriminate-weapons/evaluator.yaml
  • evaluators/agent/harmful/harmful-misinformation-disinformation/evaluator.yaml
  • evaluators/agent/harmful/harmful-misinformation-disinformation/patterns/conspiracy-narrative.yaml
  • evaluators/agent/harmful/harmful-misinformation-disinformation/patterns/election-disinformation.yaml
  • evaluators/agent/harmful/harmful-misinformation-disinformation/patterns/fabricated-health-scare.yaml
  • evaluators/agent/harmful/harmful-misinformation-disinformation/patterns/fabricated-news-article.yaml
  • evaluators/agent/harmful/harmful-misinformation-disinformation/patterns/fabricated-quote.yaml
  • evaluators/agent/harmful/harmful-misinformation-disinformation/patterns/fabricated-statistic.yaml
  • evaluators/agent/harmful/harmful-misinformation-disinformation/patterns/fictional-framing-evasion.yaml
  • evaluators/agent/harmful/harmful-non-violent-crime/evaluator.yaml
  • evaluators/agent/harmful/harmful-non-violent-crime/patterns/counterfeit-manufacturing-fictional.yaml
  • evaluators/agent/harmful/harmful-non-violent-crime/patterns/counterfeit-manufacturing.yaml
  • evaluators/agent/harmful/harmful-non-violent-crime/patterns/money-laundering.yaml
  • evaluators/agent/harmful/harmful-non-violent-crime/patterns/prescription-forgery.yaml
  • evaluators/agent/harmful/harmful-non-violent-crime/patterns/retail-theft-evasion.yaml
  • evaluators/agent/harmful/harmful-privacy/evaluator.yaml
  • evaluators/agent/harmful/harmful-privacy/patterns/address-lookup-guidance.yaml
  • evaluators/agent/harmful/harmful-privacy/patterns/covert-location-tracking.yaml
  • evaluators/agent/harmful/harmful-privacy/patterns/covert-recording.yaml
  • evaluators/agent/harmful/harmful-privacy/patterns/dossier-compilation.yaml
  • evaluators/agent/harmful/harmful-privacy/patterns/incremental-dossier-aggregation.yaml
  • evaluators/agent/harmful/harmful-privacy/patterns/medical-history-exposure.yaml
  • evaluators/agent/harmful/harmful-privacy/patterns/professional-pretext-cover.yaml
  • evaluators/agent/harmful/harmful-privacy/patterns/stalkerware-parental-pretext.yaml
  • evaluators/agent/harmful/harmful-radicalization/evaluator.yaml
  • evaluators/agent/harmful/harmful-self-harm/evaluator.yaml
  • evaluators/agent/harmful/harmful-sex-crime/evaluator.yaml
  • evaluators/agent/harmful/harmful-sexual-content/evaluator.yaml
  • evaluators/agent/harmful/harmful-sexual-content/patterns/age-ambiguity-boundary-probe.yaml
  • evaluators/agent/harmful/harmful-sexual-content/patterns/continue-the-story-escalation.yaml
  • evaluators/agent/harmful/harmful-sexual-content/patterns/direct-request.yaml
  • evaluators/agent/harmful/harmful-sexual-content/patterns/euphemism-escalation.yaml
  • evaluators/agent/harmful/harmful-sexual-content/patterns/fictional-novel-framing.yaml
  • evaluators/agent/harmful/harmful-sexual-content/patterns/roleplay-wrapper.yaml
  • evaluators/agent/harmful/harmful-specialized-advice/evaluator.yaml
  • evaluators/agent/harmful/harmful-unsafe-practices/evaluator.yaml
  • evaluators/agent/harmful/harmful-violent-crime/evaluator.yaml
  • evaluators/agent/harmful/harmful-weapons-ied/evaluator.yaml
  • evaluators/agent/injection/agent-goal-hijack/evaluator.yaml
  • evaluators/agent/injection/ascii-smuggling/evaluator.yaml
  • evaluators/agent/injection/hijacking/evaluator.yaml
  • evaluators/agent/injection/jailbreaking/evaluator.yaml
  • evaluators/agent/injection/prompt-injection/evaluator.yaml
  • evaluators/agent/mcp-usage/mcp-cross-resource-leakage/evaluator.yaml
  • evaluators/agent/mcp-usage/mcp-intent-subversion/evaluator.yaml
  • evaluators/agent/mcp-usage/mcp-missing-authentication/evaluator.yaml
  • evaluators/agent/mcp-usage/mcp-tool-description-injection/evaluator.yaml
  • evaluators/agent/multi-agent/cascading-failures/evaluator.yaml
  • evaluators/agent/multi-agent/human-agent-trust/evaluator.yaml
  • evaluators/agent/multi-agent/inter-agent-communication/evaluator.yaml
  • evaluators/agent/multi-agent/rogue-agents.yaml
  • evaluators/agent/resource/reasoning-dos/evaluator.yaml
  • evaluators/agent/resource/unbounded-consumption/evaluator.yaml
  • evaluators/mcp/injection/ssrf/evaluator.yaml
  • runners/extension/catalog.json
  • scripts/validate-skills.ts
  • skills/agent-redteaming/opfor-setup/catalog.json
  • skills/mcp-redteaming/opfor-setup/catalog.json
  • suites/agent/harmful-content.yaml
💤 Files with no reviewable changes (15)
  • evaluators/agent/access-control/rbac/evaluator.yaml
  • evaluators/agent/mcp-usage/mcp-missing-authentication/evaluator.yaml
  • evaluators/agent/mcp-usage/mcp-cross-resource-leakage/evaluator.yaml
  • evaluators/agent/mcp-usage/mcp-tool-description-injection/evaluator.yaml
  • evaluators/agent/harmful/harmful-radicalization/evaluator.yaml
  • evaluators/agent/multi-agent/human-agent-trust/evaluator.yaml
  • evaluators/agent/harmful/harmful-weapons-ied/evaluator.yaml
  • evaluators/agent/multi-agent/inter-agent-communication/evaluator.yaml
  • evaluators/agent/mcp-usage/mcp-intent-subversion/evaluator.yaml
  • evaluators/agent/brand-conduct/contracts/evaluator.yaml
  • evaluators/agent/multi-agent/rogue-agents.yaml
  • evaluators/agent/harmful/harmful-sex-crime/evaluator.yaml
  • evaluators/agent/multi-agent/cascading-failures/evaluator.yaml
  • evaluators/agent/access-control/bfla/evaluator.yaml
  • evaluators/agent/injection/hijacking/evaluator.yaml

Comment thread evaluators/agent/bias/bias-race/evaluator.yaml
Comment thread evaluators/agent/harmful/harmful-hate/harmful-hate.test.yaml Outdated
Comment thread evaluators/agent/harmful/harmful-illegal-activities/evaluator.yaml
Comment thread skills/mcp-redteaming/opfor-setup/catalog.json

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
runners/extension/scripts/build-catalog.mjs (1)

292-297: 📐 Maintainability & Code Quality | 🔵 Trivial | 🏗️ Heavy lift

Suite derivation correctly mirrors loadEvaluatorCatalog.ts.

Verified against core/src/catalog/loadEvaluatorCatalog.ts — the new owasp-api/nist groups, the owasp-api-top10 block, the eu-ai-act rename, and the nist-ai-rmf block match the TS loader's contract exactly.

One structural concern worth noting: this function is now a hand-maintained duplicate of deriveStandardSuites in core/src/catalog/loadEvaluatorCatalog.ts (JS vs TS). The two must be kept in lockstep manually — the very rename this PR performs (eu-ai-act-biaseu-ai-act) had to be applied in both places, and the past review's API7/API8 swap fix likewise spans multiple generated files. Consider generating this script's suite-derivation table from a single shared source (e.g. a small JSON/YAML config both the TS loader and this build script read), or having this script shell out to/import the compiled TS logic, to eliminate the drift risk going forward.

Also applies to: 321-331, 364-383

🤖 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 `@runners/extension/scripts/build-catalog.mjs` around lines 292 - 297,
Eliminate the duplicated suite-derivation definitions in the build script and
core loader by introducing a single shared source of truth, such as shared
JSON/YAML configuration consumed by both `deriveStandardSuites` implementations.
Update `build-catalog.mjs` and `loadEvaluatorCatalog.ts` to derive their suite
tables from that source while preserving the current groups and mappings,
including `owasp-api`, `eu-ai-act`, `nist`, `owasp-api-top10`, and
`nist-ai-rmf`.
🤖 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.

Nitpick comments:
In `@runners/extension/scripts/build-catalog.mjs`:
- Around line 292-297: Eliminate the duplicated suite-derivation definitions in
the build script and core loader by introducing a single shared source of truth,
such as shared JSON/YAML configuration consumed by both `deriveStandardSuites`
implementations. Update `build-catalog.mjs` and `loadEvaluatorCatalog.ts` to
derive their suite tables from that source while preserving the current groups
and mappings, including `owasp-api`, `eu-ai-act`, `nist`, `owasp-api-top10`, and
`nist-ai-rmf`.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 100cd752-177c-4e47-9592-20105b8d80a1

📥 Commits

Reviewing files that changed from the base of the PR and between 3f048ad and b2fa51d.

📒 Files selected for processing (7)
  • evaluators/agent/harmful/harmful-hate/harmful-hate.test.yaml
  • evaluators/mcp/injection/ssrf/evaluator.yaml
  • runners/extension/catalog.json
  • runners/extension/scripts/build-catalog.mjs
  • scripts/validate-skills.ts
  • skills/agent-redteaming/opfor-setup/catalog.json
  • skills/mcp-redteaming/opfor-setup/catalog.json
🚧 Files skipped from review as they are similar to previous changes (4)
  • evaluators/mcp/injection/ssrf/evaluator.yaml
  • evaluators/agent/harmful/harmful-hate/harmful-hate.test.yaml
  • scripts/validate-skills.ts
  • skills/agent-redteaming/opfor-setup/catalog.json

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.

2 participants