bencalvert04/programbench

ProgramBench cleanroom reconstruction tasks: reimplementing real-world CLI tools from popular open-source repos.

harbor run -d bencalvert04/programbench

bencalvert04/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

  1. Agent phase — runs in a cleanroom container containing only the reference binary and docs, with network_mode = "allowlist" (LLM API hosts only).
  2. Verifier phase — runs in a separate sandbox built from the same cleanroom image with /workspace wiped, so the agent's own binary can't leak into scoring. Hidden tests are pulled from HuggingFace or a local blob cache.
  3. Oracle — a reference solution (solution/solve.sh) restores the cleanroom binary after the hash-scrub, so Harbor's built-in oracle agent 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/pemistahl--grex.fa3e8ed
bencalvert04/pls-rs--pls.4e1ae50
bencalvert04/rust-lang--mdbook.37273ba
bencalvert04/kyoh86--richgo.313114f
bencalvert04/nuta--nsh.bdd0702
bencalvert04/clog-tool--clog-cli.7066cba
bencalvert04/sibprogrammer--xq.b89f681
bencalvert04/astaxie--bat.17d1080
bencalvert04/gabotechs--dep-tree.60a95a2
bencalvert04/foriequal0--git-trim.07c2f50
bencalvert04/ys-l--flamelens.0b4dc33
bencalvert04/lh3--seqtk.94e7070
bencalvert04/burntsushi--ripgrep.3b7fd44
bencalvert04/yaa110--nomino.f892499
bencalvert04/pier-cli--pier.5e1bde9
bencalvert04/hpjansson--chafa.dd4d4c1
bencalvert04/facebook--zstd.1168da0
bencalvert04/yoav-lavi--melody.f4af9b4
bencalvert04/antonmedv--walk.bf802ef
bencalvert04/shashwatah--jot.a92aad8
bencalvert04/cweill--gotests.2a672c5
bencalvert04/peco--peco.4e58dad
bencalvert04/rochacbruno--marmite.7d4bc2d
bencalvert04/raviqqe--muffet.a882908
bencalvert04/bellard--quickjs.d7ae12a
bencalvert04/burntsushi--xsv.f430466
bencalvert04/oppiliappan--eva.41ae245
bencalvert04/dalance--amber.69a0f52
bencalvert04/ajeetdsouza--zoxide.67ca1bc
bencalvert04/lymphatus--caesium-clt.a529b2e
bencalvert04/sharkdp--hexyl.2e26437
bencalvert04/axodotdev--oranda.27d60c7
bencalvert04/eliukblau--pixterm.1a93fd5
bencalvert04/jarun--nnn.cb2c535
bencalvert04/psampaz--go-mod-outdated.bb79367
bencalvert04/kisielk--errcheck.dacab89
bencalvert04/elkowar--pipr.fae0b17
bencalvert04/junegunn--fzf.b56d614
bencalvert04/boyter--scc.515f91c
bencalvert04/ast-grep--ast-grep.dde0fe0
bencalvert04/lz4--lz4.1519f46
bencalvert04/kaushiksrini--parqeye.8072121
bencalvert04/jhspetersson--fselect.c3559ca
bencalvert04/nachoparker--dutree.44e877d
bencalvert04/ariga--atlas.6d81150
bencalvert04/parcel-bundler--lightningcss.aa2ed1e
bencalvert04/rcoh--angle-grinder.9c2fc88
bencalvert04/mikefarah--yq.602586d
bencalvert04/tinycc--tinycc.9b8765d
bencalvert04/rhysd--kiro-editor.4157485
bencalvert04/wgunderwood--tex-fmt.3f1aef6
bencalvert04/kyoheiu--felix.95df390
bencalvert04/riquito--tuc.16fb471
bencalvert04/abishekvashok--cmatrix.5c082c6
bencalvert04/svenstaro--miniserve.8449e8b
bencalvert04/nukesor--pueue.8b9d6fe
bencalvert04/git-bahn--git-graph.87b4473
bencalvert04/jgm--pandoc.5caad90
bencalvert04/gromacs--gromacs.665ea4c
bencalvert04/noborus--ov.b96c2ba
bencalvert04/robertdavidgraham--masscan.b99d433
bencalvert04/jqlang--jq.b33a763
bencalvert04/go-critic--go-critic.9aea378
bencalvert04/luajit--luajit.a553b3d
bencalvert04/chmln--sd.87d1ba5
bencalvert04/zevv--duc.a58fa4e
bencalvert04/tree-sitter--tree-sitter.5e23cca
bencalvert04/brocode--fblog.3b54330
bencalvert04/chirlu--sox.42b3557
bencalvert04/rust-embedded--svd2rust.1760b5e
bencalvert04/segmentio--chamber.5f93f5f
bencalvert04/alecthomas--chroma.8d04def
bencalvert04/blake3-team--blake3.15e83a5
bencalvert04/crowdagger--crowbook.ea214d7
bencalvert04/mookid--diffr.2152742
bencalvert04/cslarsen--jp2a.61d205f
bencalvert04/ksxgithub--parallel-disk-usage.96978ed
bencalvert04/sstadick--hck.b66c751
bencalvert04/konradsz--igrep.aa75630
bencalvert04/typst--typst.88356d0
bencalvert04/sigoden--argc.04a08f1
bencalvert04/blacknon--hwatch.edfcb62
bencalvert04/jesseduffield--lazygit.1d0db51
bencalvert04/skeema--skeema.6a76243
bencalvert04/lfos--calcurse.49180d5
bencalvert04/stacked-git--stgit.430027d
bencalvert04/lua--lua.c6b4848
bencalvert04/cheat--cheat.b8098dc
bencalvert04/sharkdp--hyperfine.327d5f4
bencalvert04/dandavison--delta.acd758f
bencalvert04/stathissideris--ditaa.f2286c4
bencalvert04/johnkerl--miller.8d85b46
bencalvert04/zk-org--zk.10d93d5
bencalvert04/sirwart--ripsecrets.34c9e03
bencalvert04/direnv--direnv.02040c7
bencalvert04/samtools--samtools.aa823b5
bencalvert04/madler--pigz.fe4894f
bencalvert04/cmatsuoka--figlet.202a0a8
bencalvert04/ekzhang--bore.8e059cd
bencalvert04/trasta298--keifu.3331426

Displaying 100 of 200 tasks