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

# Inspect a Lifecycle Plan Before a Run

> Use niceeval debug to inspect the Plugin, Sandbox, Agent, Fixture, and teardown sequence for one Experiment–eval pairing without creating any run resources.

`exp --dry` is for confirming a run matrix. Use `niceeval debug` when you need to inspect the order in which one eval prepares, installs, executes, and cleans up inside a Sandbox.

## Select one exact pairing

```sh theme={null}
pnpm exec niceeval debug compare/codex memory/commit0
```

Both the Experiment and eval selector must be unique. Prefer exact IDs; when a prefix matches multiple candidates, the CLI lists them and stops.

An eval can match only within the scope selected by that Experiment. Selecting one eval-group member does not add the other members to the plan, but the output still shows the eval-group lifecycle wrapper.

## Read the plan in order

The plan shows, in sequence:

1. Plugin lifecycle;
2. Author-declared preparation;
3. Agent ensure, setup, and teardown;
4. Sandbox creation and Provider finalizer;
5. Eval-group and physical Sandbox lifecycle;
6. Fixture, test, and cleanup.

Static `shell()` and `command()` calls expand into actual commands. Regular callbacks are marked `Opaque` because they can run only at execution time. Paths, credentials, environment-variable values, and unsafe remote locators never appear in human-readable output.

Every author action currently has `attempt` occurrence. The plan shows the Provider's declared cache capability, but dry inspection does not probe a cache or resolve a final key. Human and JSON output therefore report runtime status as `pending` and the final key as `not-probed`.

## Give tools a structured plan

```sh theme={null}
pnpm exec niceeval debug compare/codex memory/commit0 --json > debug-plan.json
```

JSON retains the structured steps and precision markers without terminal box drawing. `debug` accepts only `--json`; run flags such as budget, rerun, and concurrency do not apply to this command.

## Confirm that it performs no resource operations

`debug` does not run setup, test, teardown, ensure, Sandbox creation, or finalizers. It creates no Invocation, Run, Record, lock, Sandbox, or build task.

It loads trusted definitions and executes the Experiment's selection predicate. A Provider planner can also read local files, invoke a read-only CLI, or query a remote control plane, so run it only in a trusted project.

Use [Select and Preview the Run Scope](/docs/tutorials/select-and-preview) to confirm the matrix and Attempt count first. After a real execution fails and you need to preserve the scene, use [Debug by Preserving the Sandbox](/docs/troubleshooting/debug-sandbox).
