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

# 重跑与沿用结果

> 查看每个 slot 会执行、自动采用还是由操作者接受，并理解这些关系怎样进入 Record。

每次 Invocation 都建立新的 Run。Run 的 expected slots 定义本次分母；每个 slot 最多有一个 Member。Member 表示 slot 被哪个 Attempt 完整占据：

| 关系          | 含义                            |
| ----------- | ----------------------------- |
| `origin`    | Attempt 的实际执行 slot 就是当前 slot。 |
| `reference` | 采用了其它 Run 中已发布的 Attempt。      |

每个位置怎样形成（执行、自动沿用或操作者接受）都会随目标 Run 保存。Attempt 始终保留实际执行它的 `origin`；采用不会复制 Verdict、用量或其他业务值。

## 先查看计划

在运行前使用 `--dry`。它根据已发布结果逐个列出执行或采用的原因。

```sh theme={null}
npx niceeval exp checkout --dry
```

示例输出：

```text theme={null}
PLAN
checkout  cart/add-item  ordinal 0  reuse @1K1P0VJAPVJ12
checkout  cart/add-item  ordinal 1  execute: input-identity-changed
```

如果信息缺失、无效、不支持或 domain 不同，规划器会说明原因并执行该 slot，而不会把它当作可采用结果。

## 自动采用的条件

一个 Attempt 要能被自动采用，需要同时满足：

* Verdict 是可采用的终态；
* 输入身份与当前输入相同；
* 执行时长符合当前 timeout；
* 本次 `--rerun` 允许采用该 Verdict；
* 本次没有通过 `--keep-sandbox` 要求真实执行。

输入身份和配置身份都是带 domain 的不透明值。只有 domain 逐字相同才比较 value。Verdict 与资格信息为规划提供长期依据。

自动采用时，资格、身份和理由会随目标 Run 保存。Member 只保留引用，不复制这些说明，也不复制 Attempt 的业务值。

## 控制重跑范围

```sh theme={null}
# 默认采用符合条件的 passed 与 failed Attempt
npx niceeval exp checkout

# 重跑 failed Attempt
npx niceeval exp checkout --rerun

# 重新执行选中范围内的全部 slot
npx niceeval exp checkout --rerun all
```

改变 `--rerun` 只影响本次 Invocation，不会修改已有 Run 或 Attempt。

## 明确接受已有 Attempt

当自动采用条件不满足，但你确认某个已有 Attempt 仍可用时，使用完整 locator：

```sh theme={null}
npx niceeval accept @1K1P0VJAPVJ12
```

`accept` 先检查所有输入，再发布一个以 `reference` 采用该 Attempt 的新 Run。操作者理由、差异和资格会随该 Run 保存。它不会修改源 Attempt，也不会复制源 Attempt 的业务值。

## 发布后不可修改

Attempt 发布后不可修改。每一次查看都读取当时 Record 中已发布的值；新 Run 或新事实只会以新的发布出现。若 Attempt 或引用无效，Sample 将该 slot 标为 `core-invalid`，而不是 `not-recorded`。

完成运行后，用 receipt 的 `runIds` 选择结果。查看步骤见[查看结果](/docs/zh/tutorials/viewing-results)。
