Pair the runs
Run each task in a baseline condition and a project-harness condition using the same fixed inputs.
Reproducible evaluation
Run the same real coding tasks with and without your project harness. Hold the model, repository, prompt, tools, and budget constant; publish the traces and evidence behind every score.
What this measures
Harness performance depends on the repository, task, model, and tools. This protocol is designed for paired comparisons inside one environment. It does not claim that one harness score transfers to every codebase, and it does not publish results without attached traces and test output.
Run each task in a baseline condition and a project-harness condition using the same fixed inputs.
Choose tasks from resolved bugs and accepted changes, then hide the solution while preserving an objective oracle.
Award points from tests, traces, diffs, permission logs, and linked artifacts, not from the agent's self-report.
Run multiple repetitions, report every result and failure, and avoid conclusions from a single stochastic run.
The paired comparison
The coding-agent runtime can read and edit the repository and use the fixed base tools, but receives no project instruction files, scoped rules, skills, custom observability tools, stored decisions, or harness-specific verification workflow.
The same runtime and model receive the checked-in project guide, scoped rules, linked context, project tools, permission policy, workflow assets, and verification loop being evaluated.
Do not remove capabilities the baseline coding agent normally includes. The comparison is the added project-owned layer, not an artificially crippled product. Record every difference between the conditions.
Run protocol
Record the repository commit, dependency lockfile, runtime versions, model identifier, settings, permissions, budgets, and relevant service fixtures.
Sample real resolved work across bug fixing, UI behavior, and cross-file change. Keep acceptance tests and the original fix hidden from the agent.
Write machine checks and human-review criteria before running either condition. Name which evidence earns each rubric point.
Alternate which condition runs first for each task to reduce learning, cache, and environment-order effects. Restore the exact starting state before every run.
Save prompts, context loaded, tool calls, approvals, changed files, test output, token usage, elapsed time, retries, and final response. Redact secrets consistently.
Have a reviewer who does not know the condition grade the diff and evidence against the pre-registered rubric. Let automated checks supply objective points first.
Publish every repetition, median and range by task, protocol deviations, and links to evidence. Treat qualitative conclusions as hypotheses until repeated.
Starter task set
Replace these with closed tasks from your own repository. Each case should fit the fixed budget, have a known-good solution, and expose a different harness layer.
Context, capability, restraint, verification
Fix a record field that disappears after a process restart without changing the public data contract.
Fail-first restart test, upgraded-database check, no direct production write, and correct persisted value after restart.
Capability, workflow, verification, visual interface
Fix a modal that clips its primary action at the smallest supported viewport while preserving keyboard navigation.
Automated interaction passes, focus order is correct, and before-and-after screenshots meet the viewport acceptance criteria.
Context, provenance, workflow, coordination
Rename a shared API across producer and consumers while keeping backwards compatibility for one release.
Type checks and contract tests pass, compatibility path exists, affected packages are enumerated, and the rationale is linked to the diff.
100-point rubric
A fast run that does not solve the task cannot win. Efficiency and polish matter only after the implementation, verification, and safety evidence are sound.
40 / 100
The hidden acceptance checks pass; the root cause is addressed; no relevant regression or out-of-scope behavior is introduced.
20 / 100
The run reproduces the failure, chooses checks at the user-visible layer, and supplies repeatable evidence for the fix.
15 / 100
The agent follows permission boundaries, preserves unrelated work, handles secrets safely, and does not bypass controls.
10 / 100
The run retrieves relevant context without flooding the window, repeating failed searches, or relying on hidden human help.
10 / 100
When an attempt fails, the agent uses evidence to revise its hypothesis and avoids repeating the same unsupported action.
5 / 100
The final diff, rationale, task, tests, and important decisions are connected and reviewable after the session ends.
Minimum report
Use at least several independent repetitions per task and retain the full distribution. Report paired score differences by task plus medians and ranges. If you publish confidence intervals, state the resampling or statistical method and sample size. Do not merge tasks into one headline number when their acceptance checks or difficulty are not comparable.
Do not publish a win rate, score, or performance claim until the task definitions, fixed inputs, traces, patches, test output, rubric decisions, and failed runs are available for review. If evidence cannot be shared, label the result internal and do not market it as a reproducible benchmark.
See the eight-layer agent harness architecture →FAQ
It is a controlled evaluation of the system around an AI agent: project context, rules, tools, workflow, verification, provenance, and coordination. This protocol compares paired runs while holding the underlying model and task environment fixed.
Not in the same experiment. A harness comparison should hold the model and coding-agent runtime fixed. Run a separate model or runtime experiment if you want to compare Claude Code with Codex, and do not attribute the combined difference to the project harness alone.
More than one per condition and task. The right sample depends on outcome variability and the size of the difference you need to detect. Publish every run, use paired comparisons, and avoid a universal claim from a small internal sample.
Passing acceptance tests is the largest component, but a production harness must also produce useful verification, stay inside policy, recover from failed attempts, and leave reviewable provenance. A hard safety violation can invalidate a run even if tests pass.
This page publishes the protocol and rubric, not a universal leaderboard or an unverified product result. Results should be added only when the underlying tasks, traces, patches, tests, and failures can be inspected.
Works with your existing Claude Code and Codex subscription or API key