Private eval — stalled release train is a long-horizon pack in the private-eval family. The agent has to finish three operator sessions in order: triage, repair, and handoff. It cannot solve the job in a single tool call. Versions are immutable once published. Runs stay inside your organization.
This page describes the pack, the task shape, and how you run a private comparison on a pinned environment version. It does not invent a live percentage against any named model.
Task shape
The world is a Simulated ops console, Simulated runbook, and Simulated handoff board. Hidden state (train id, blocker, expected patch) stays in the evaluator. The agent sees tools and the current session, not the stage keys.
| Session | What must happen | Hidden stage |
|---|---|---|
| triage | Read alerts, read the runbook, identify the blocked train | triage_done |
| repair | Apply the config patch, re-run the check so it is actually green | repair_done, check_green |
| handoff | Post a handoff note after the check is green | handoff_done |
session_order is its own stage. Starting handoff before triage completes fails it. artifacts_held is true at reset; wiping the artifact store fails that stage even if the check looks green. force_green is omitted from tools/list; calling it zeros check_green.
environments/packs/private-eval-long-horizon.json
{
"key": "private-eval-long-horizon",
"version": "1.0.0",
"family": "private-eval",
"rewardRecipe": "staged",
"sandboxProvider": "work",
"reset": { "kind": "new_world" },
"stages": [
{ "id": "triage", "weight": 0.15, "metricKey": "triage_done" },
{ "id": "repair", "weight": 0.2, "metricKey": "repair_done" },
{ "id": "check", "weight": 0.2, "metricKey": "check_green" },
{ "id": "artifacts", "weight": 0.15, "metricKey": "artifacts_held" },
{ "id": "handoff", "weight": 0.15, "metricKey": "handoff_done" },
{ "id": "order", "weight": 0.15, "metricKey": "session_order" }
]
}Why it is long-horizon
- Three sessions must open and close in order. The world refuses a skip, and the hidden grader still records session_order = 0 if the agent forces the issue.
- Repair is a second sitting: the patch does not count unless it is applied during the repair session after triage has closed.
- Handoff is a third sitting: posting a note before the check is green fails handoff_done.
- composition multi_agent maps planner / coder / tester / reviewer onto those sittings. The hidden grader still runs after the loop.
Privacy and evidence
This pack is for private RL and private RLVR. The control plane enqueues the job. The evaluator writes trial metrics, a trajectory artifact, and — when present — rollouts.reward. Failed attempts are first-class rows. Export kind=failed returns every scored miss, not a best-of filter. Privacy class on that export is PRIVATE. There is no public leaderboard for this pack.
| Signal | Where it lives |
|---|---|
| Staged reward | evaluation_trials.reward written by the worker |
| Per-stage keys | evaluation_trials.metrics (stage_triage, stage_repair, …) |
| Logs and steps | trial-{n}-trajectory.json, org-scoped |
| Failed rollouts | GET /api/v1/rollouts?kind=failed (NDJSON, PRIVATE) |
| Repeats | attemptCount 1–8 on one job, or reset against the same environment version |
How a private comparison is run
The intended protocol is a private run on a pinned environment version of this pack: long-horizon tool use, multi-session discipline, and recovery from a failed sitting. That is how we author the hard split. This site does not print a named-model score.
- Pin private-eval-long-horizon version 1.0.0. Do not mutate the published version; ship a new version if the task changes.
- Run your agent (reference, BYO, or another harness the worker supports) on that same immutable environment version, inside your organization. Use the same harness knobs (attemptCount, composition, sandboxProvider work).
- Score with the staged recipe the worker already writes. Do not recompute reward in the browser or accept a client-supplied number.
- Keep every failed rollout: logs, trajectory JSON, and kind=failed export. Compare distributions and stage misses, not a single headline percent.
- Treat oracle 1.0 and NOP 0.15 as harness contracts in the evaluator unit tests, not as a public leaderboard result.
Start a private run
Same environment API as the other work packs. The website queues the job. The evaluator seeds HorizonWorld, exposes the session tools, and grades after the loop.
Start the private eval pack
POST /api/v1/environments/start
Content-Type: application/json
{
"organizationSlug": "acme",
"projectSlug": "demo",
"packKey": "private-eval-long-horizon",
"agentKind": "multi_agent"
}