vanguarstew

Vanguarstew journal

The contribution system just changed — here's what it means for your next PR

July 10, 2026 · M5 · REVIEW.md update · Live leaderboard ↗

Short version: agent/ pull requests are no longer labeled by a maintainer reading the diff. They're labeled by a real benchmark run — and every measured result, good or bad, is public. Here's exactly how it works now.

The old way had a real gap

Every contribution used to get one of six value labels — core-correctness, capability, enhancement, and so on — applied by a maintainer's judgment call on the diff. That's honest work, but it's still a story about the change, not a measurement of it. Two PRs that read equally well on paper can have completely different effects on the agent's actual behavior.

The new way: perf:*, earned by measurement

If your PR touches agent/ — the scored, contributor-editable surface — its label now comes from one thing only: a real before/after benchmark run.

perf:* label bands — scripts/score_pr_delta.py
LabelMultiplierWhat it took
perf:xl×4.0Composite score up ≥ 0.15
perf:l×2.5Composite score up ≥ 0.08
perf:m×1.5Composite score up ≥ 0.04
perf:s×1.0Composite score up ≥ 0.02
perf:xs×0.5Composite score up ≥ 0.01
(no label)Below the noise floor — still mergeable, just no multiplier

These thresholds are deliberately conservative starting points, not fixed forever — we have very few real data points so far, and they'll be recalibrated as more real deltas accumulate. The bands live in scripts/score_pr_delta.py, in the open, if you want to see exactly where the lines are drawn.

Two independent repo sets, and it takes the worse of the two

Here's the part that actually matters if you're optimizing for a label: your PR is scored against a public repo set you can see, and a private, undisclosed one you can't — and the label follows whichever result is worse. Tuning your change to look good against the repos you know about doesn't help if it flat-lines or regresses on the ones you don't. That's the whole design goal: the label has to mean the agent generalized, not that someone found the right repo to overfit to.

A regression is a hard block, not a lower label

If either the judge component or the objective anchor regresses past the noise floor — on either repo target — the PR does not merge, period. Not a lower tier, not "merge it anyway and note the tradeoff." This is the anti-Goodhart floor: sounding better to the judge while the objective anchor quietly drops isn't an improvement, it's a trade, and the mechanism exists specifically to catch that.

Everything else: one flat rate

PRs to benchmark/, tests/, docs/, .github/, or anywhere else outside agent/ get a single flat label, mult:contribution (×0.2), on merge. There's no "agent performance" to measure for harness or tooling work, so it doesn't go through the benchmark pipeline — it's still real, valued work, it's just scored differently than a change to the thing being measured.

The receipts are public

Every PR that either merges (whatever the outcome) or gets closed for a measured regression shows up on the public leaderboard: the real composite delta on the public target, the real delta on the private target (never which repos, just the number), and — for merged, genuinely-improved PRs — a spot on the optimization-journey chart. A PR closed for an ordinary quality issue doesn't show up there; a PR closed because it measurably made the agent worse does, with the actual numbers, because that's exactly the kind of result this mechanism exists to make visible.

What this means if you're about to open a PR

  • Touching agent/? Write the change you believe actually improves maintainer judgment, not the change you think will read well. The label only ever reflects what the benchmark measured — there's nothing to persuade a diff-reader of.
  • Touching anything else? Business as usual — scope, tests, quality review, mult:contribution on merge.
  • Either way, the full pipeline — automated gates, scope check, human/bot review — is unchanged and documented in REVIEW.md. This post covers what changed in the value-label layer specifically.

Questions, or a call that looks inconsistent with what's written here? Say so in the PR thread — the rubric is public precisely so it can be checked.

See it in practice

Every measured result — merged or closed for a real regression — is on the leaderboard, automatically, straight from the maintainer bot. No cherry-picking.