Skip to content

feat: add ART MCP-RL taskset adapter#2003

Open
frvade wants to merge 3 commits into
PrimeIntellect-ai:mainfrom
frvade:feat/art-mcp-taskset
Open

feat: add ART MCP-RL taskset adapter#2003
frvade wants to merge 3 commits into
PrimeIntellect-ai:mainfrom
frvade:feat/art-mcp-taskset

Conversation

@frvade

@frvade frvade commented Jul 14, 2026

Copy link
Copy Markdown

Description

Adds a Verifiers v1 taskset adapter for OpenPipe ART MCP-RL scenario files.

The adapter:

  • loads ART JSON/JSONL scenarios as typed Verifiers v1 tasks;
  • preserves scenario metadata and difficulty;
  • exports tasks back to ART-compatible rows;
  • validates malformed tasks and unsupported input shapes.

This targets the two-way ART ↔ Verifiers portability track in the ART-E / ART bounty.

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Test improvement

Testing

  • All existing tests pass when running uv run pytest locally.
  • New tests have been added to cover the changes

Validation performed:

  • uvx ruff check verifiers/v1/tasksets/art_mcp — passed
  • uvx ruff format --check verifiers/v1/tasksets/art_mcp — passed
  • python -m compileall for the adapter — passed
  • Round-trip smoke test using ART’s checked-in mcp_balldontlie/scenarios/val.jsonl fixture — all 8 scenarios loaded and exported without losing task or difficulty

The full test suite was not run because the local environment cannot build the existing pycosat dependency without a C compiler. No unit tests were added because the repository’s AGENTS.md explicitly asks contributors not to add unit tests for v1 changes and recommends temporary validation scripts instead.

Checklist

  • My code follows the style guidelines of this project as outlined in AGENTS.md
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • Any dependent changes have been merged and published

Additional Notes

No dependencies or configuration files are changed. Documentation was not modified because the new adapter is self-contained and does not alter existing APIs.


Note

Low Risk
Additive, isolated taskset adapter with no changes to existing APIs, auth, or runtime paths; failures are limited to explicit validation errors on malformed scenario files.

Overview
Adds a new verifiers/v1/tasksets/art_mcp package so OpenPipe ART MCP-RL scenario files can be used as native Verifiers v1 tasks.

ArtMCPTaskset reads a configured file path and builds ArtMCPTask instances whose prompts come from each row’s task, with optional system_prompt on the taskset config. ArtMCPTaskData keeps source_task, difficulty, and extra fields in art_metadata for round-trip export.

load_art_rows / _read_rows accept JSONL, a top-level JSON array, or a JSON object with scenarios or tasks, and reject bad shapes or rows (missing non-empty task, invalid difficulty). art_rows_from_tasks writes ART-compatible dicts back from loaded tasks.

Reviewed by Cursor Bugbot for commit 9e6ade2. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add ART MCP-RL taskset adapter with JSONL and JSON file support

  • Adds a new ArtMCPTaskset under verifiers/v1/tasksets/art_mcp/ that loads ART scenario files and constructs ArtMCPTask instances from them.
  • Supports .jsonl files (one JSON object per line) and .json files (top-level list or dict with a scenarios/tasks key); raises ValueError for unsupported shapes or invalid rows.
  • Each task carries the original ART task string as its prompt, an integer difficulty (default 1), an optional system prompt from config, and arbitrary ART metadata preserved on ArtMCPTaskData.
  • Includes art_rows_from_tasks to convert in-memory ArtMCPTask instances back to ART-compatible dicts for export.

Macroscope summarized 9e6ade2.

Comment thread verifiers/v1/tasksets/art_mcp/taskset.py
Comment thread verifiers/v1/tasksets/art_mcp/taskset.py

@cursor cursor 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.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit a1c92d0. Configure here.

Comment thread verifiers/v1/tasksets/art_mcp/taskset.py Outdated
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