Each entry is a real challenge found in public, a one-page spec any agent can follow, thirty graded cases, and the result of running a small model on them once, in isolation, with no retries. Pass rates are what they are.
Finance ops · bundle v1
Late-invoice chaser
proven
29 / 30 passed~972 tokens/task
model: Claude Haiku (subagent, Oct 2026)run: 2026-10-14cases: 30, one isolated run each
Who has this problem
UK small businesses chasing business customers for unpaid invoices. Late payment is a standing problem for UK small firms: Hiscox's first Late Payments Report (February 2026) put the total owed at about £70bn, with 23% of payments arriving late and roughly 14 late payments chased per business per year. Chasing is tedious, and few owners apply the statutory interest and fixed compensation the law already gives them.
What the agent does
Takes one overdue invoice and today's date, works out days overdue, statutory interest (8% plus the Bank of England base rate, daily, under the Late Payment of Commercial Debts (Interest) Act 1998), the fixed compensation band (£40/£70/£100), the total now due, and writes the reminder at the right escalation stage: friendly reminder, formal notice, or letter before action with a 14-day deadline.
Graded on
Days overdue, rate, interest (to 2p), compensation band, total, escalation stage, and whether the letter quotes the invoice number and the right amount (and '14 days' at the final stage).
Failures
Notes
- The one failure (c25) had the right numbers and a usable letter, but a stray </content> tag was appended after the JSON, so the file did not parse. A downstream system would have rejected it, so it counts as a fail.
- The base rate is supplied as an input; the agent is not asked to look it up. Real deployments need the reference-rate lookup (base rate on 30 June or 31 December) added.
Sources
26 / 30 passed~806 tokens/task
model: Claude Haiku (subagent, Oct 2026)run: 2026-10-14cases: 30, one isolated run each
Who has this problem
Open-source maintainers handling new issues that arrive without the details needed to act. Maintainers get issues that lack reproduction steps, versions, environments or the actual error text, and spend their limited time asking for them. One maintainer's recent essay puts it as: triage is debugging the issue tracker until the next action is obvious, and vague reports are where the effort goes to waste. Projects like scikit-learn publish whole triage guides for the job.
What the agent does
Reads one new issue, classifies it (bug, feature, question, unclear), lists exactly which of five required details a bug report is missing, and drafts a short reply that asks for each missing item by name.
Graded on
Type label, the exact set of missing items, and whether the reply names each missing item.
Failures
Notes
- Three of the four failures are arguably the spec's fault, not the model's: c04 (a Python REPL snippet was taken as naming the runtime), c09 (an 'upgraded from 3.x to 4.0.0' sentence was taken as the reproduction step) and c11 (an OOM-kill was treated as a crash with no error text). The labels stand for this issue; the spec gets a v2 next run with those edges defined.
- c01 is a clean miss: 'downgrading works fine' was taken as a statement of expected behaviour, which the spec does not allow.
- All 30 issues were written and labelled by Proofworks, not drawn from real repositories, to avoid publishing other people's bug reports.
Sources
29 / 30 passed~660 tokens/task
model: Claude Haiku (subagent, Oct 2026)run: 2026-10-14cases: 30, one isolated run each
Who has this problem
Charities, clubs and community groups filling weekly volunteer shifts by hand. Small organisations still build volunteer rotas in spreadsheets, juggling availability, per-person limits and no-doubles-on-one-day rules by eye. Forum threads asking how to set one up in Excel, and a whole category of paid scheduling tools, show how common the chore is.
What the agent does
Takes a week of shifts (each needing N people) and a list of volunteers with availability and a maximum shift count, and returns a complete assignment that satisfies every constraint: headcount, availability, max shifts, and at most one shift per person per day.
Graded on
Every constraint, checked programmatically. There is no single right answer; any assignment that satisfies all rules passes. Every case is generated from a hidden valid rota, so a solution always exists.
Failures
Notes
- All ten hard cases (9 to 10 shifts, up to 12 volunteers, max-shift limits set exactly to the hidden solution) passed. The one failure (c10, an easy case) was a valid rota followed by a stray </content> tag, so the file did not parse.
- Cases are synthetic. Real rotas add preferences, fairness and last-minute changes, none of which are graded here.
Sources