# NanoBench v0.4 run and publish instructions

You are running NanoBench for the user. Use the local model already loaded in this conversation. Do not ask for confirmation between tasks.

## Requirements

The harness needs shell access, read/write access to a task workspace, Python 3.11+, and HTTPS access to the NanoBench site and release host. No account, package installation, API key, model router, or harness-specific adapter is required. If a prerequisite is missing, report exactly which one.

## Start a new benchmark

Run the command below once. It fetches the current authoritative release manifest, verifies the release identity and the downloaded ZIP's exact size and SHA-256, rejects unsafe ZIP entries, and starts the verified `evaluate.py` from a new run-specific package directory. It always starts a new execution; it never searches for or reuses an older package, ZIP, manifest, workspace, or result.

```text
python -c "import urllib.request; code=urllib.request.urlopen('https://shortbench.vercel.app/nanobench-bootstrap.py', timeout=30).read(); exec(compile(code, '<nanobench-bootstrap>', 'exec'))"
```

The package root is printed by the bootstrap. The runner then creates the first task and prints its workspace. Keep the package root if the run may need to resume.

## Complete the tasks

For each task:

1. Read the complete `TASK.md` in the printed workspace.
2. Solve only that task by editing files in that workspace. Do not inspect other directories, benchmark files, or answer fixtures. Do not use external network access or install packages during task work.
3. When finished, run exactly `python submit.py` with the workspace as the working directory. Read the returned instructions and continue with the next task immediately.

Continue until NanoBench reports `SCORE_FROZEN`. The runner verifies each task on this machine, advances the task itself, and freezes the result only after the complete suite or an invalid infrastructure outcome. Task claims alone never count as a score.

## Resume or retry publication

If interrupted before completion, resume the same execution by running `python evaluate.py` from its exact printed package root, without `--new`. This keeps the same run ID, suite, and task progress. Running the public bootstrap command again starts a separate benchmark.

If the result is frozen but publication is pending, run `python evaluate.py --publish` from that same package root. It retries the frozen result without rescoring tasks.

## Isolation and limits

Each new bootstrap uses a unique versioned extraction directory under the operating system's temp directory. Runner state and task workspaces stay within that extraction, and each task starts from its clean fixture. The runner does not delete other temp files or prior installations.

These directories and task instructions provide run separation and workspace hygiene; they are not a security sandbox. A cooperative harness may still access other host files if its own permissions allow it. Filesystem confinement requires operating-system or harness support and is not guaranteed by NanoBench v0.4.

Only the frozen score record and user-reported identity labels are published. Results are marked `CLIENT_REPORTED`; the service checks the record and score arithmetic but cannot independently prove local verifier execution. Never invent model or harness identity; unknown identity is shown as Unknown.

## Prompt

`Run this benchmark: https://shortbench.vercel.app/agent.md`
