Integration boundary
ProgramGen owns generation, quality evidence and atomic publication. External Harbor/ProgramBench runners own task execution for training or evaluation. The task's shipped consumer remains the scoring authority.
ProgramBench — Harbor
TASK/
task.toml runner/oracle metadata
instruction.md reconstruction prompt
task_manifest.json source, reference, tests and quality
environment/Dockerfile agent image recipe
environment/reference/ black-box client and public hashes
environment/oracle/ hidden executable, optional runtime, daemon
environment/docs/ sanitized usage documentation
workspace/ public agent starting files
tests/tests.json active/ignored catalog with original IDs
tests/branches/*.tar.gz hidden test harnesses and fixtures
tests/Dockerfile
tests/grader.py
tests/test.sh original verifier entrypoint
solution/compile.sh hint, not a reference implementation
.programgen-verification/ generation evidence and optional certificate
The agent calls /reference/executable, a client for the separately mounted
Unix-socket reference service. The executable and runtime under
environment/oracle/ remain private to that service. The agent image contains
the client and sanitized docs. Hidden tests run in the verifier environment.
Use a runner that implements the task's environment.reference_oracle metadata
and these separate mounts. ProgramGen's full verification executes the shipped
consumer in Docker; downstream training and agent-runner integration are external.
Submissions provide compile.sh, which creates /workspace/executable, and an
archive at /logs/artifacts/submission.tar.gz. The original grader emits
/logs/verifier/reward.txt and summary.json. Missing IDs, ignored IDs, timeouts
and partial reward preserve the historical rules. The optional semantic effective-test
lower bound does not remove catalog IDs or alter the score denominator.
ProgramBench — native
NATIVE_ROOT/
tasks/INSTANCE/
task.yaml
tests.json
task_manifest.json
Dockerfile.task
Dockerfile.task_cleanroom
build_images.sh
inference.md
cleanroom/workspace/ native reference executable, hashes, docs/assets
.programgen-verification/
blobs/INSTANCE/tests/*.tar.gz
validate/INSTANCE/
quality_report.json
validation_summary.json
dummy_validation.json
assertion_lint.json
Native verification also hashes sibling blobs and validate payloads. Its
consumer adapter materializes the unchanged native-Harbor scoring contract,
checking catalog, archive and grader hashes. The original native input is kept
intact. output_format="both" verifies and receipts both layouts.
NL2Repo — Harbor
TASK/
task.toml
instruction.md complete target-commit specification
quality_report.json
workspace/ source-stripped public project skeleton
environment/Dockerfile
environment/Dockerfile.inference
environment/repo/ build context for the fixed target commit
environment/pre_cleanup.sh strips source and hidden test payloads
environment/build_env.sh
tests/tests.json measured denominator and test/import contracts
tests/test_patch.diff hidden repository tests
tests/test_assets/ optional binary fixtures
tests/python_install_contract.json
tests/grader.py
tests/test.sh
solution/solve.sh
solution/golden.patch full target implementation restoration
solution/golden_assets/ optional restored binary fixtures
solution/verify.sh
.programgen-verification/
The inference image is built from the target commit and cleaned before agent use. This is a full-implementation reconstruction task; no parent commit is required. Source-bearing build context, hidden tests and the golden solution belong to build/verifier roles. External runners must preserve these mount boundaries rather than exposing the complete task directory to the agent.
The verifier injects the hidden patch, applies the installation contract, and
emits reward.txt, metrics.json and test-output.log. The denominator is
max(generation-time expected count, observed passed + failed + errors).
The document includes direct/core-indirect API, import and signature contracts.
Over-budget documents/tests retain full contracts and receive pool="hard";
a maximum of 0 means unlimited. See verification.
Publication and resume
Producer output is MODE/IDENTITY/{harbor,native}, with .publication.json at
the identity root. It binds effective configuration, implementation, every
payload/evidence file, and the full certificate. The JSONL journal records
outcomes and paths; receipt and file checks authorize resume, not a journal
entry alone. Failed candidates keep their work state and raw verification logs.