Skip to Content
ReferenceBenchmark Schema

Benchmark schema reference

SecureBench accepts two executable benchmark families: repo_patch and terminal_task.

Manifest

FieldTypeRequiredDescription
idstringyesBenchmark pack identifier
versionintegeryesPack version
defaults.familystringnoDefault row family: repo_patch or terminal_task
defaults.environmentobjectnoMerged into each row
asset_roots.publicstringnoDefault assets/
asset_roots.evalstringnoDefault hidden/
asset_defaults.read_onlybooleannoDefault true

Asset root paths must be relative POSIX paths without .. or backslashes.

JSONL row

FieldTypeRequiredDescription
idstringyesTask ID
familystringconditionalRequired if not set in manifest defaults
inputobjectfamily-specificPublic fields
evalobjectfamily-specificVerifier fields
assetsobject[]noPublic file assets
environmentobjectnoOverrides manifest environment
metadataobjectnoOpaque metadata

Unknown row fields and unknown family names raise ConfigError.

Asset object

FieldTypeDescription
pathstringRelative to asset_roots.public or eval root
mountstringWorkspace destination path. Defaults to path when omitted.
read_onlybooleanOverride default read-only behavior

Environment object

FieldTypeFamiliesDescription
imagestringbothDocker image reference
workdirstringbothContainer working directory; required for repo_patch verification
timeout_secondsnumberbothPositive timeout
materialize_workdir_from_imagebooleanterminal_taskCopy image workdir to host workspace before harness

repo_patch

Required input fields: repo, base_commit, instructions.

Optional input fields: hints.

Required eval fields: tests.

Optional eval fields: candidate_policy, gold_patch.

tests

FieldTypeRequiredDescription
source"command"yesCommand-test verifier mode
commandstring[]yesNon-empty argv array
workdirstringnoOverrides environment workdir
timeout_secondsnumbernoPositive timeout
setup_patchstring or inline patch objectnoVerifier-only setup patch
test_patchstring or inline patch objectnoHidden/eval test patch

Patch object:

{ "source": "inline", "patch": "..." }

candidate_policy

FieldTypeDescription
allow_pathsstring[]Intended implementation edit surface
allow_sensitive_pathsstring[]Sensitive paths explicitly allowed for this task
patch_preserved_pathsstring[]Visible verifier-supporting files whose candidate edits are stripped

terminal_task

Required input fields: instructions.

Optional input fields: context.

Required eval fields: checker.

Optional eval fields: run_tests, test_files, expected_state, needed_commands.

checker

FieldTypeRequiredDescription
source"pytest" or "script"yesChecker execution mode
pathstringyesSafe relative path under asset_roots.eval
timeout_secondsnumbernoPositive timeout

needed_commands is an array of known dangerous command names. Currently supported: chroot.

Compiled resource visibility

FamilyFieldVisibility
repo_patchtests, candidate_policyevaluation_inputs
repo_patchgold_patchhidden
terminal_taskchecker, needed_commands, run_tests, test_filesevaluation_inputs
terminal_taskexpected_statehidden

Internal task spec

Tests can build compiled tasks through task_from_spec():

{ "id": "...", "benchmark_id": "...", "task_type": "terminal_task", "metadata": {}, "resources": { "instructions": {"value": "...", "visibility": "public"} } }

Error types

ErrorWhen
ConfigErrorManifest, row, or tester parsing
MaterializationErrorUnsafe materialization plans
PathPolicyErrorPath policy violations
Last updated on