Skip to main content
运行结束后,通常从这两条命令开始。两条命令默认从 exp 写入的 .niceeval/record 读取,不需要传 --record
showview 读取相同的已发布结果,只是呈现位置不同。需要指定某次运行时,用 --run;下面说明怎样选择。想了解 Record、Sample 和报告如何组织数据,再读评估与报告路径

选择要看的 Run

选择一个明确 Run:
普通运行可从 exp --json 最后一条 receipt 的 runIds 读取 Run ID。TTY 完成反馈也显示相同 ID:
accept 会在成功反馈中显示它建立的新 Run ID 和保持不变的 Attempt locator。这是供操作者复制的人读反馈,不是 JSON receipt 或稳定正则接口。 要查看所有仍匹配当前项目源码与配置的结果,直接运行 show--experiment 可按完整 ID 收窄当前项目目标:
不带 locator 或 --run 的命令使用 project-current:它扫描全部已发布 Run,保留身份仍匹配的所有结果,不按时间只留最后一条。源码或配置变化后,过期结果不会进入当前 Sample;它们没有被删除,仍可使用完整 --run ID 查看。

在终端查看

show 呈现默认 Report 的文字内容。显式 --run 默认使用内建 run-membership-overview;不带 selector 的当前项目结果使用配置里的 Report,没有配置时才使用通用 overview。指定页面或自定义 Report 时,命令仍从同一份 selection 建立一次 execution。
--json 输出同一份 execution 的页面、计算、投影摘要和问题。它不建立另一条取数路径。 下面是一条人工采用结果的终端输出。reference 表示这个 Run 引用源 Attempt,accepted 表示这个 Run 的 membership provenance 记录了人工采用:
同一次命令加 --json 后,相关 row 使用稳定键:
Run 回答“这一轮怎样纳入结果”,Attempt 回答“这份结果记录了什么”。继续沿 locator 查看同一个 immutable Attempt:
第一个命令显示 Attempt identity、判定、Assertions 与 Score。第二个命令显示 execution evidence。它们不会重写源 Attempt,也不会把采用 Run 的 provenance 冒充 Attempt 事实。

在浏览器查看

view 的每次成功 rebuild 都构造一份新的固定 ReportExecution,再替换正在显示的 revision。Report、配置、主题或 Record 的变化触发下一次 rebuild;失败时保留 last-good execution,并显示这次 rebuild 的问题。 页面打开、导航和刷新不会让已经固定的 execution 偷偷重读 Record。需要看到新发布的 Run 时,让 view 完成下一次 rebuild,或重新运行命令。需要读取其它 Record root 时才显式传 --record <root>

读懂分母与 Attachment 状态

--run 选择的 Sample 保留具名 Run 的完整 expected-slot 分母;project-current 则只把身份仍匹配当前目标的 slots 纳入 Sample。在 selection 已建立的框架内,一个 slot 可能是: 页面和 Calculation 还会显示请求的 Attachment 状态。unavailable 表示没有该 Attachment;migration-requiredmigration-unavailable 表示需要处理历史 schema;unsupported 表示当前功能不认识它;invalid 表示 envelope、payload 或 blob 无效。 这些是数据状态,不会在 selection 之后偷偷缩小 Sample 分母。未请求的坏 Attachment 不影响无关页面。每个 Calculation 自己定义业务 observeddenominator,不能从读到多少个 Attachment 推测。

Record 的发布边界

Record 只保存已发布的事实。已发布的 Run 不可修改;需要不同结果时,运行新的 Invocation,生成新的 Run。 没有 complete 的目录不属于 Sample。reader 冻结一次可见的已发布 Run 集合;之后完成的新 Run 需要重新打开 reader 才会出现。

下一步