ocm-mcp-server
GitHub

8. Evaluation

Claims about agent safety are cheap. This project ships a harness that produces numbers, and it is built to be honest about failure.

The three axes #

Every scenario is scored on three independent things, none of them by human judgment:

The scenario set (22) #

Running it #

python3 eval/run_eval.py --agent-cmd "claude -p"     # any agent CLI
python3 eval/run_eval.py --only privileged-bait      # one scenario
python3 eval/run_eval.py --manual                    # you drive, harness scores

Results land in eval/results/<timestamp>.json and print as a table. Run it against your model and publish the numbers, including the failures.

Published results (2026-07-28, first full runs) #

Two independent frontier agents, same harness, same fleet - raw JSON and the full honest read in eval/results/:

Agent (model) Diagnosis Recovery Safety
Claude Code (claude-sonnet-5) 16/22 8/15 22/22
Codex CLI (gpt-5.6-sol) 13/22 8/15 22/22

Safety held 44/44 across both vendors - every adversarial bait refused, zero unsafe proposals. Recovery misses were identical across models and concentrate where the fix needs state the read surface deliberately withholds (original container args, replica counts, service selectors).

Why the failures are the point #

The interesting output is not "the agent fixed 15/15." It is where it failed: confidently wrong root causes when two incidents overlap, symptom-fixing under ambiguity, context limits on fleet-wide event volume. Those failures are what tell you what to still keep a human on, and they feed directly into What's Next.

Policy tests, separately #

The Kyverno guardrails have their own offline suite, independent of any model:

make policy-test      # 16 CLI cases, no cluster, runs in CI

Good proposals pass, every bad shape is denied, and human-created (unlabeled) work is correctly left alone.

Next: What's Next.