1#!/usr/bin/env bash2# Runs one catch-rate eval case: one corpus PR, one configuration, one run number.3# Usage: run-catch-rate.sh <eval-id> <with_skill|without_skill> <run-number>4# Env: CLONES_DIR directory holding a local clone of each corpus repo, named by repo (server, clients, ...)5# OUT_DIR scratch directory for checkouts, transcripts, and reports6# MODEL optional, defaults to opus7set -euo pipefail89EVALS_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"10PLUGINS_DIR="$(
53 prompt="Review pull request $pr_url for defects. The working tree is checked out at the pull request's head commit. Write the review as markdown to $report_dir/review.md. Put every finding under a \`## Findings\` heading, each in its own subsection that gives its location as \`path/to/file.ext:<line>\` or \`path/to/file.ext:<start>-<end>\`."
72# Without this note, one denied compound command led a run to stop using Bash altogether.
73harness_note="Tool permissions in this session are an allow-list, enforced per command. Allowed Bash commands: gh pr view, gh pr diff, and read-only git subcommands (diff, status, log, show, rev-parse, merge-base, ls-files), plus ls, cat, head, and wc. Run each command on its own, not chained with && or ;. A denied command does not mean Bash is unavailable."
74
75# --setting-sources local reads .claude/settings.local.json from the checkout, which a corpus PR can commit.