bencalvert04/programbench
ProgramBench cleanroom reconstruction tasks: reimplementing real-world CLI tools from popular open-source repos.
harbor run -d bencalvert04/programbenchbencalvert04/programbench
A Harbor port of ProgramBench: 200 cleanroom program-reconstruction tasks. In each task, an agent sees only a compiled reference binary and its documentation for a real-world open-source CLI tool, and must reimplement the program from scratch so its behavior matches the original. Scoring runs the agent's build against a hidden behavioral test suite; the reward is the pass rate over active tests.
What's in the dataset
- 200 tasks, each named
bencalvert04/<repo-org>--<repo-name>.<commit>(e.g.bencalvert04/burntsushi--ripgrep.3b7fd44), one per source repository. - Source languages: Rust (107), Go (46), C (33), C++ (12), Java (1), Haskell (1).
- Difficulty (as labeled upstream): 120 medium, 35 unknown, 27 easy, 18 hard.
- Excludes the upstream
testorg__fixture task.
How each task works
- Agent phase — runs in a cleanroom container containing only the reference binary and docs, with
network_mode = "allowlist"(LLM API hosts only). - Verifier phase — runs in a separate sandbox built from the same cleanroom image with
/workspacewiped, so the agent's own binary can't leak into scoring. Hidden tests are pulled from HuggingFace or a local blob cache. - Oracle — a reference solution (
solution/solve.sh) restores the cleanroom binary after the hash-scrub, so Harbor's built-inoracleagent gives a sanity ceiling. Note the oracle mean across all 200 tasks is expected to be below 1.0 (upstream test flakiness / partial branch coverage on some tasks) — this is a known upstream property, not a bug in the port.
Each task's reward.json reports three keys (all 0–1, averaged by Harbor's default Mean):
| Key | Meaning |
|---|---|
reward |
pass rate over active hidden tests |
resolved |
1.0 if pass rate is exactly 1.0, else 0.0 |
almost_resolved |
1.0 if pass rate is ≥ 0.95, else 0.0 |
Running it
harbor run -d bencalvert04/programbench -a claude-code -m anthropic/claude-opus-4-1
Or against a single task:
harbor run -t bencalvert04/programbench/burntsushi--ripgrep.3b7fd44 -a claude-code -m anthropic/claude-opus-4-1
Source
Generated from a local ProgramBench checkout via the programbench-adapter CLI in this repo (adapters/programbench/). See that adapter's README for adapter internals, task-template details, and the full generation/verification harness.
| Task |
|---|
bencalvert04/mgdm--htmlq.6e31bc8 |
bencalvert04/byron--dua-cli.8570c15 |
bencalvert04/universal-ctags--ctags.243595e |
bencalvert04/cordx56--rustowl.655bc5c |
bencalvert04/ivanceras--svgbob.6d00ad9 |
bencalvert04/stranger6667--jsonschema.d52e881 |
bencalvert04/ninja-build--ninja.cc60300 |
bencalvert04/ducaale--xh.4a6e44f |
bencalvert04/tstack--lnav.ee34494 |
bencalvert04/danmar--cppcheck.0a5b103 |
bencalvert04/hairyhenderson--gomplate.05eb3aa |
bencalvert04/bensadeh--tailspin.6278437 |
bencalvert04/johanneskaufmann--html-to-markdown.3006818 |
bencalvert04/astro--deadnix.d590041 |
bencalvert04/halitechallenge--halite.822cfb6 |
bencalvert04/nikolassv--bartib.6b9b5ce |
bencalvert04/mkj--dropbear.75f699b |
bencalvert04/paradigmxyz--solar.5190d0e |
bencalvert04/wfxr--csview.8ac4de0 |
bencalvert04/miserlou--loop.209927c |
bencalvert04/mgechev--revive.201451e |
bencalvert04/dundee--gdu.ede21d2 |
bencalvert04/osgeo--proj.75d455c |
bencalvert04/ogham--dog.721440b |
bencalvert04/sayanarijit--xplr.1751065 |
bencalvert04/php--php-src.c891263 |
bencalvert04/tukaani-project--xz.1007bf0 |
bencalvert04/naggie--dstask.ff57396 |
bencalvert04/filosottile--age.706dfc1 |
bencalvert04/sharkdp--pastel.b60e899 |
bencalvert04/esubaalew--run.0fb9dec |
bencalvert04/ismaelgv--rnr.fc0733b |
bencalvert04/codesnap-rs--codesnap.f81e4f3 |
bencalvert04/hooklift--gowsdl.2a06cec |
bencalvert04/eudoxia0--hashcards.48aa136 |
bencalvert04/noborus--trdsql.d8c5ff6 |
bencalvert04/rs--curlie.5dfcbb1 |
bencalvert04/chmln--handlr.90e78ba |
bencalvert04/drew-alleman--datasurgeon.d257cee |
bencalvert04/multiprocessio--dsq.c3ae0ba |
bencalvert04/agourlay--zip-password-finder.704700d |
bencalvert04/oppiliappan--statix.e9df54c |
bencalvert04/eradman--entr.8e2e8b4 |
bencalvert04/duckdb--duckdb.bdb65ec |
bencalvert04/facebookresearch--fasttext.1142dc4 |
bencalvert04/simeg--eureka.df3796c |
bencalvert04/sheepla--pingu.926d475 |
bencalvert04/tomnomnom--gron.88a6234 |
bencalvert04/doxygen--doxygen.966d98e |
bencalvert04/o2sh--onefetch.e5958ce |
bencalvert04/rust-ethereum--ethabi.b1710ad |
bencalvert04/svenstaro--genact.16f96e3 |
bencalvert04/mibk--dupl.1bf052b |
bencalvert04/y2z--monolith.8702e66 |
bencalvert04/xorg62--tty-clock.f2f847c |
bencalvert04/thezoraiz--ascii-image-converter.d05a757 |
bencalvert04/hatoo--oha.8dc6349 |
bencalvert04/rs--jplot.2a54bcc |
bencalvert04/google--brotli.b3dc9cc |
bencalvert04/canop--broot.d6c798e |
bencalvert04/wintermute-cell--ngrrram.8ea13c3 |
bencalvert04/arthursonzogni--json-tui.17a22b6 |
bencalvert04/wfxr--code-minimap.0ddeea5 |
bencalvert04/sclevine--yj.8016400 |
bencalvert04/ammarabouzor--tui-journal.2b4540d |
bencalvert04/arq5x--bedtools2.dd57059 |
bencalvert04/antonmedv--fx.86d0d34 |
bencalvert04/jrnxf--thokr.09375ef |
bencalvert04/alexpovel--srgn.89f943b |
bencalvert04/tarka--xcp.5e5b448 |
bencalvert04/altdesktop--i3-style.f93821b |
bencalvert04/anordal--shellharden.6a6ffd4 |
bencalvert04/ggreer--the_silver_searcher.a61f178 |
bencalvert04/nikoladucak--caps-log.2cf2d1e |
bencalvert04/sharkdp--fd.40d8eb3 |
bencalvert04/yassinebridi--serpl.c48a9d7 |
bencalvert04/canop--rhit.ae90bcb |
bencalvert04/osgeo--gdal.0847f12 |
bencalvert04/bootandy--dust.62bf1e1 |
bencalvert04/quinn-rs--quinn.bb359cc |
bencalvert04/rvben--rumdl.2d75c4d |
bencalvert04/isona--dirble.e2dea9f |
bencalvert04/mfridman--tparse.2416b4b |
bencalvert04/ffmpeg--ffmpeg.360a402 |
bencalvert04/sqlite--sqlite.839433d |
bencalvert04/xampprocky--tokei.505d648 |
bencalvert04/sitkevij--hex.61ae69b |
bencalvert04/ip7z--7zip.839151e |
bencalvert04/hush-shell--hush.560c33a |
bencalvert04/orf--gping.26eb5b9 |
bencalvert04/ecumene--rust-sloth.051c559 |
bencalvert04/tomarrell--wrapcheck.c058da1 |
bencalvert04/sharkdp--bat.f822bd0 |
bencalvert04/incu6us--goimports-reviser.81bd549 |
bencalvert04/rbakbashev--elfcat.52f8cc7 |
bencalvert04/epistates--treemd.825c6dd |
bencalvert04/htop-dev--htop.523600b |
bencalvert04/unhappychoice--gittype.34b72d0 |
bencalvert04/jonas--tig.8334123 |
bencalvert04/guumaster--hostctl.d6d9699 |
Displaying 100 of 200 tasks