AI Proving Ground gives you a Drupal site with known content, made to test AI agents. You give an agent a task, for example "Make a View that shows these pages". The agent does the task on a real Drupal site. Then AI Proving Ground examines what the agent saved, and runs it. It does not use the report of the agent.
An agent can report "done" when the work is wrong. For example, a View can have a valid configuration and show the wrong rows.
To find these errors, you need three things:
This project gives you these three things as a Drupal recipe and some DDEV commands.
The grader is the code that does the checks. It is part of AI Eval.
ddev ai-eval-provision kb_docs canvas_home installs the sample content. Then it saves a snapshot: the database, the public files, and a git tag of the code.ddev ai-eval-reset restores the database, the public uploaded files and the folders config/sync, web/modules/custom and recipes. Do a reset before each attempt.ddev ai-eval-run dv01_view_build shows the task and records the attempt. Give the task to the agent that you want to test. When the agent stops, push Enter. The command then shows the grade command for this attempt.ddev ai-eval-grade dv01_view_build --run=<run-id> examines the site and shows the score as JSON. The run ID connects the score to the attempt.ddev ai-eval-doctor examines the sample content, the necessary modules and the grader code. It tells you what changed.
The repository has one task with two results. The second View has a default value on its exposed section filter. This configuration is valid, but the page shows 4 rows, not 12.
A configuration check accepts the two results. AI Proving Ground also runs the View. It finds that 8 rows are not on the page. The first result gets 5 points out of 5. The second result gets 0 points. The files and a script to do the test again are in docs/experiments/.
These checks are for attempts that run without a person who watches.
ddev ai-eval-verify kb_docs canvas_home. This command compares the snapshot and the grader code with the copy. It can restore the snapshot. It does not restore code. It only reports changed code.Use the two sample tasks as examples. To test your own module, do these steps:
recipes/fixture_<name>/ in your project. This folder is a fixture: a Drupal recipe with configuration and content. The content keeps its UUIDs after each import. Keep the fixture in the git repository of your project. Updates to AI Proving Ground do not change it.datasets/ folder of your module. The module must be enabled.ddev ai-eval-provision kb_docs <name>. Each set of fixtures has its own snapshot.The README shows all the steps.
The repository has two agent skills in the skills/ folder:
running-proving-ground-evals: how to run and grade an attempt, and what each error message means.extending-the-proving-ground: how to add fixtures and tasks.CAUTION: Give these skills only to the agent that runs the evaluations. Do not put them in the project of the agent that you test. The skills tell where the correct answers are.
Alpha. On 16 October 2026, I did all the steps on this page on new Drupal CMS sites with Canvas 1.12. I used AI Eval 1.0.0-beta6 on one site and AI Eval 1.1.x on another site. All the safety checks operated correctly.
Known limits:
--agents none in the next command. Without this option, the installer adds Claude Code to the site, and your own Claude login goes into the site. An agent that you test must not have your login.bash <(curl -fsSL https://aibp.drupalstarforge.ai/install.sh) --yolo --name my-test-site --extras droost --agents noneddev composer require drupal/ai_eval drupal/ai_proving_groundrecipes/ai_proving_ground/ddev/ to the .ddev/ folder of your project. The README shows the commands to do this./recipes from .gitignore. The snapshot needs the recipes folder in git.ddev ai-eval-provision kb_docs canvas_home.ddev ai-eval-doctor kb_docs canvas_home.Send questions, bugs and ideas to the issue queue.