> ## Documentation Index
> Fetch the complete documentation index at: https://synthlabs.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Use Harbor tasks with Synth

> Keep the task format, local testing and managed execution boundaries clear.

Harbor defines the task package: instructions, a prepared environment and verification. Synth stores immutable versions of those packages and connects them to agent profiles, managed executions and retained evidence.

## Keep the task portable

A task has `task.toml` and `instruction.md` at its root, an `environment/` directory for its build context, and `tests/` for verification.

Keep assessor-only material outside the actor image. In particular, avoid a broad container copy that makes the entire package—including its tests or reference answers—visible to the actor.

[Task authoring](/concepts/tasks-and-versions) explains the package structure and how to keep actor context separate from assessment material.

## Local testing is separate

Use a separately installed, compatible Harbor runtime for native Harbor local execution. Follow that runtime's own versioned configuration and instructions; Synth does not provide a current Harbor passthrough command.

A local execution can help debug the task and verifier. It does not prove managed admission, model access, network policy or cloud resource availability.

Likewise, `synth agent run` executes an agent recipe on your machine. It is not a replacement for a task sandbox.

## Publish and run an exact version

```bash theme={null}
synth task upload ./my-task --dry-run
synth task upload ./my-task
```

Copy the immutable task reference from the receipt, then launch it with an explicit profile:

```bash theme={null}
synth run start --task <task-ref> --actor @reviewer.json
```

Task publication and execution are separate operations. Changing local files does not alter a task version already used by a run.

## Inspect the evidence

Use the shared run readers and export:

```bash theme={null}
synth run show <run-id>
synth run trials <run-id>
```

Once the run is terminal, export into a new directory:

```bash theme={null}
synth run export <run-id> --output ./run-evidence
```

When a run exposes a Viewer link, use the authenticated link supplied by Synth. Do not construct temporary signed URLs or share them as durable result links.

Preserve the task version, agent profile, run ID and available evidence together. A successful package upload is not proof that an agent can perform the task.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.