> ## 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.

# Publish a Static Report

> Use view --out to export a self-contained report site that opens offline and is separate from its source Record.

`niceeval view --out <directory>`, or explicit `niceeval view --run <id> --out <directory>`, selects published Runs.
The internal host forms a pure `AnalysisSample`, projects the facts declared by the Report, and exports one completed `ReportExecution`.
This is the export path for sharing results.

```sh theme={null}
npx niceeval view --experiment checkout \
  --out ./report-site \
  --no-open
```

You can also export one explicit Run:

```sh theme={null}
npx niceeval view --run 01J9ZK3M6P4T7V9X2C5N8QW0RY \
  --out ./report-site \
  --no-open
```

## Select the scope before exporting

Without a locator or `--run`, the command selects every matching result by current-project identity.
`--run` selects named historical Runs.
Both forms create a Sample first.
A Sample preserves the selected slots' denominator and `included`, `not-recorded`, `core-invalid`, and `excluded` states.

A Report reads only the RecordProjection it declares.
An unrequested bad Attachment does not affect the export.
A requested recorded-data problem appears in the built-in problems surface instead of disappearing from the denominator.

## What prevents export

`unavailable`, `migration-required`, `migration-unavailable`, `unsupported`, `invalid`, and partial collection are recorded-data problems.
They can be exported, but pages must show the problem.

A projector or author-callback defect, an invalid semantic document, or a route conflict is an execution problem.
Any execution problem stops static export, so NiceEval never publishes a half-successful report.

## What the export directory contains

A successful directory includes:

* Every fixed page and PageFamily-expanded page.
* The host data each page needs.
* Already-produced downloads.
* The manifest and the exporter's built-in runtime.
* A final `complete` marker.

The browser reads only the export directory.
It does not access the network or source Record, and it does not need a later NiceEval installation.
Before sharing the directory with a colleague or static host, open it in an offline browser to confirm its pages and downloads work.

The target directory must not exist.
The command never replaces or deletes an existing directory.
To update a deployment, export to a new directory and let the hosting platform switch versions.

## Generate it in CI

Run evals, then export in the same job:

```sh theme={null}
npx niceeval exp ci --json
npx niceeval view --experiment ci --out ./report-site --no-open
```

The final JSON line from the first command is its receipt.
To pin the export to that Invocation, read its `runIds` and use `view --run <runId>` instead.

## Publish the directory

Give `./report-site` to your hosting provider as the static-site directory.
Do not point the platform build at a source Record; it only needs to deploy the already generated directory.
