Goal
Make ClawBench a first-class Harbor benchmark, strictly following the conventions used by harbor-framework/harbor and harbor-framework/terminal-bench, including running on Harbor's remote sandboxes (-e e2b) — not just local Docker.
Today clawbench-harbor-adapt (added in v0.7.0, #232) produces Harbor tasks that load fine on Harbor 0.22, but we are not yet aligned with the ecosystem end-to-end.
Requirements
1. Strict task format (terminal-bench parity)
2. Registry + Hub (like terminal-bench)
3. e2b (and other remote sandbox) support
4. Upstream adapter
Starting point
Branch feat/harbor-hub-registry already implements most of §1–§2 and the adapter package skeleton (129 prebuilt-mode tasks, 7 MB, all pass Harbor 0.22 TaskConfig; digests match harbor add). §3 (e2b) and the parity run in §4 are the open work.
Review
@Perry2004 — you built the original Harbor compatibility layer in #232; please review the format decisions here (strict layout, prebuilt image, registry/Hub split) and the e2b plan.
Goal
Make ClawBench a first-class Harbor benchmark, strictly following the conventions used by harbor-framework/harbor and harbor-framework/terminal-bench, including running on Harbor's remote sandboxes (
-e e2b) — not just local Docker.Today
clawbench-harbor-adapt(added in v0.7.0, #232) produces Harbor tasks that load fine on Harbor 0.22, but we are not yet aligned with the ecosystem end-to-end.Requirements
1. Strict task format (terminal-bench parity)
task.toml([task] name = "<org>/<name>", authors, keywords),instruction.md,environment/(or[environment].docker_image),tests/test.sh→ numeric/logs/verifier/reward.txt+reward.json,solution/solve.sh(documented no-op — live sites have no scripted oracle)dataset.tomlmanifest with per-task digests (harbor add --scan/ Packager content hash)TaskConfigin CI; committed dataset regenerates deterministically (scripts/harbor/regenerate.sh,validate-harbor.yml— on branchfeat/harbor-hub-registry)reward.jsonmetrics (depends on fix(harbor): numeric verifier metrics, lenient + strict judge rubrics, and interception correctness #324 — should merge first)2. Registry + Hub (like terminal-bench)
registry.jsonsoharbor run --repo TIGER-AI-Lab/ClawBench -d clawbench-v2workstiger-ai-lab/clawbench-v2to the Harbor Hub (harbor publish --public), tags per releaseclawbench-harbor-runtime:<version>) so tasks ship no build context3. e2b (and other remote sandbox) support
harbor run ... -e e2bcompletes a smoke task end-to-end (also verify-e daytona/modalare not broken)--ve/--env-fileonly; document resource floor (1 CPU / 2 GB per trial)docs/harbor-0.20-port-notes.md(branchfeat/harbor-0.20) verified the E2B path needs no local disk — fold conclusions intodocs/harbor.md4. Upstream adapter
adapters/clawbench/package in the officialharbor adapter initlayout (README template sections,adapter_metadata.json,parity_experiment.json,run_clawbench.yaml,src/.../{adapter,main}.pywith--output-dir --limit --overwrite --task-ids)clawbench-batchvsharbor run), ≥3 runs/side, mean ± sample SEM, ranges overlap[WIP] Adapter: clawbench→ harbor-datasetsdatasets/clawbench/→ harborregistry.json→[Ready for Review]Starting point
Branch
feat/harbor-hub-registryalready implements most of §1–§2 and the adapter package skeleton (129 prebuilt-mode tasks, 7 MB, all pass Harbor 0.22TaskConfig; digests matchharbor add). §3 (e2b) and the parity run in §4 are the open work.Review
@Perry2004 — you built the original Harbor compatibility layer in #232; please review the format decisions here (strict layout, prebuilt image, registry/Hub split) and the e2b plan.