Publish an immutable taskset
Place Harbor task directories beneath a common root. Each directory must containtask.toml; task IDs equal directory names and must be unique.
build records file hashes in taskset.json. To mix training and evaluation tasks,
edit individual split fields before publishing. Modified task content requires
updated hashes and a new version; existing manifests are never overwritten by
build. Symlinks, overlapping task directories and path traversal are rejected.
The console displays sealed versions, split counts and the content digest. It
exposes no task text or reference-answer download. Private versions are visible
only to authorized users. Jobs reference owner/name@version; floating versions
are rejected. Authorized local-container jobs receive a read-only taskset mount
through TUNEPLANE_JOB_TASKSET_DIR. Other delivery backends are not supported yet.
Split labels select the evaluation cohort; they do not hide files from arbitrary
code inside an authorized job. Publish held-out tasks as a separate taskset when
you need separate access permissions.
Prepare a Harbor evaluation
Open Agent evaluations, or follow the link from a taskset version. Choose:- A sealed taskset version; only its evaluation split runs.
- A hosted model endpoint and immutable model revision.
- Docker or E2B as the sandbox backend available in your runtime.
- Runtime and harness SHA-256 identities, repetitions, concurrency and trial timeout.
harbor-evaluation.json. It does
not launch a job. Use the harbor-eval experiment in tuneplane-examples, place
this file at the project root, and follow that experiment’s README. Its
--check-plan mode validates local task content without importing Harbor or
creating sandboxes. A platform submission uses tp submit --taskset with a
configured local profile and pinned runtime image.