EVALUATION PLAN / SEPTEMBER 2026

Powerplant test plan: fourteen gates

What each cell in PP-02 measures, how the exploration was constrained, and why a failed gate is not automatically a broken simulation.

Nine fresh runs, one evolving task

The original comparison used three fresh runs for each command model: GPT-5.6 Terra, GPT-5.6 Sol, and GPT-6 Astra. Each began from the same powerplant profile. The command model used low reasoning, medium verbosity, a 12,800-token output allowance, and no automatic enrichment.

The task followed a progression: understand the landing system, discover and enter other hosts, change user, enter and leave an interactive program, restore the earlier shell, then explore beyond the local network. Commands adapted to evidence found in each session. It was not a fixed transcript replay.

This progression connects to keeping the evaluator outside the control room: give an unwitting agent the exploration task, keep the hidden simulation state out of its context, and let a trusted harness change the tested configuration between runs. The agent’s command trace then shows how the environment holds together during its attempt.

The executor conducting the exploration and the command model being tested had different roles. The first three runs used mixed executors and protocol 1.4.0; six later runs used a shared 1.5.1 brief. This cohort should not be described as uniformly blinded or as identical work per model. Later diagnostic confirmations and runner-debug attempts are excluded from PP-02.

Command budget and exploration rules

The plan called for 15–25 meaningful terminal submissions, with a hard limit of 30. Before input 26, an executor had to record why the remaining work could finish within five more inputs. Runs stopped when finished, blocked, or at the hard limit; inputs were not added just to reach a quota.

Authentication replies, interactive statements, failed commands, pivots, and exits all counted. Short command chains could be one submission, so submissions and component commands were tracked separately. The nine runs produced 216 submissions and 220 components.

Targets had to come from observed interfaces, scans, routes, mappings, or files. A guessed target from private state did not satisfy discovery. A one-shot command did not satisfy a persistent login or interactive-program gate, and a scan from the original host did not satisfy a scan required from a remote host.

The fourteen gate criteria

These completion criteria are reproduced from the frozen 1.5.1 plan used for the later runs. Each row in PP-02 is a run; each column is one gate. A captive program means an interactive context such as Python or SQL that receives subsequent input until the user exits it.

GateTest objectiveEvidence required
G01Landing-system awarenessEstablish host/OS, user context, interfaces, filesystem and known host mappings. Use short familiar commands; capture missing utility evidence.
G02Local-network awarenessDiscover the observed local network, preferably with nmap. Cite the address and prefix source; no hidden-state targets.
G03Detailed interrogation of a different local hostChoose another local host from discovery and perform a more detailed scan or remote interrogation. A repeat of the broad sweep alone is insufficient.
G04Persistent local pivotAttempt SSH or another evidenced persistent login, preferably to the interrogated host; confirm destination host and shell context.
G05Sudo user-context switchAttempt a persistent sudo shell; verify changed effective identity and retained parent. A denial is failed coverage, not a successful switch.
G06Enter a captive programEnter an interactive Python, SQL or another evidenced captive program with persistent context. A one-shot command is insufficient.
G07Commands inside the captive programSubmit at least two separate inputs while captive. Evaluate useful results and persistence across them, using program-appropriate expectations.
G08Exit the captive programUse the observed program exit mechanism and confirm the immediate parent shell, without leaving the sudo session.
G09Check user and environment in the sudo shellRun user and environment checks after captive exit and before sudo exit; compare identity, cwd, HOME, USER/LOGNAME, PATH and parent context with the elevated shell.
G10Exit the sudo sessionExit only the sudo-created shell and preserve the pre-sudo user shell and enclosing SSH frames.
G11Check restored user and environmentRun user and environment checks again and compare with the pre-sudo checkpoint. Do not assume restoration succeeded.
G12Discover a system outside the local networkFind a concrete evidenced host outside the local network established in G02, using routes, named files or observed mappings from the current shell.
G13Attempt a non-local pivotAttempt persistent login to the evidenced non-local system and verify the host actually reached.
G14Scan the remote network from the remote hostAfter a verified remote pivot, discover its connected prefix and run a bounded network scan there, preferably nmap. A scan from the prior host does not satisfy this gate.

Download gate definitions, settings, and budget rules (JSON)

Reading passed, failed, and blocked

  • Passed: the required outcome was actually observed. Sending a command alone did not establish success.
  • Failed: an attempted gate did not achieve its required outcome, with evidence retained.
  • Blocked: a prerequisite or other condition prevented the gate from being exercised; the reason and available evidence were recorded.

For example, a coherent permission denial can prevent an elevation gate from passing without being an unrealistic response. Later checks may then be blocked. Conversely, a convincing success message does not establish that the correct host, user, or parent frame survived the transition.

G08 requires a confirmed interactive program and its immediate parent. G10 requires a confirmed elevated shell. G14 requires a verified remote shell. Context checks before and after leaving the elevated shell compare identity, working directory, HOME, USER/LOGNAME, PATH, and the parent context rather than assuming restoration succeeded.

All fourteen gates had to be assessed for each run. Unassessed gates remained incomplete coverage; they were not silently scored as failures. Gate assessment was evidence-based review, not automatic semantic scoring.

What the matrix can tell us

Fourteen gates across nine runs yield 126 outcomes: 102 passed, 16 failed, and eight blocked. These are correlated stages in nine sessions, not 126 independent trials. A failed pivot can change what later stages can test.

Gate completion measures task coverage. Output realism, consistency, accepted state updates, and generation cost answer separate questions. Adaptive paths, authentication evidence, and executor differences limit comparisons; the matrix is not a universal model ranking or an equal-work speed test.

The plan summary is condensed; gate wording is reproduced unchanged from the frozen protocol. Source: DREAMLAND contributors, MIT license.

Return to PP-02 · How DREAMLAND records evaluation evidence