重建就绪验证¶
从干净的检出(clean checkout)运行公开的静态分析旅程与合成报告评估器检查:
该命令会构建可再分发的原生一致性夹具,通过公共 CLI 检查原生可执行文件,并通过 CLI 与 MCP 两种途径分析 JavaScript CLI 与 Electron 夹具源码。它会检查这两项应用分析所产生的 CLI/MCP Evidence 身份是否匹配。夹具应用不会被执行,原生 MCP 对等性也不在本次验证范围内。
此外,该命令还会评估一个完全合成的九阶段输入,并检查评估器的确定性、Evidence 篡改拒绝以及过期源摘要拒绝。这些检查针对的是报告评估本身;它们并不确立被测夹具的应用运行时行为、权限恢复、取消清理、行为等价性或重建闭环。该命令只会打印一条紧凑的 JSON 摘要。
设置 REA_READINESS_REPORT_PATH 以保留完整的机器可读报告:
CI 在 Linux 上运行该命令,发布紧凑摘要,并将完整报告作为 reconstruction-readiness 工件保留。
报告范围与归属¶
验证器以 npm run verify:readiness 的形式运行;它并未作为公共 CLI 命令或 MCP 工具公开。其报告区分两类验证:
observed_journeys保留实际的静态分析 Evidence 和观测到的 CLI/MCP 身份检查,以及它们的覆盖限制。evaluator_conformance保留合成基线报告和评估器检查。其九阶段pass表示对所提供的合成观测结果的接受。
验证器的整体成功仅表示其列出的检查已通过。它并不是端到端的重建就绪判定。实际分析产生的 Evidence 不会被并入合成报告,也不会被用于闭合其检查项。
保留的工件现在使用 schema: "ReconstructionReadinessVerificationReport" 和 schema_version: 1。之前的无版本号工件就是九阶段评估器报告本身。使用方应读取这两个明确的部分;合成九阶段报告现在位于 evaluator_conformance.baseline_report。观测到的 CLI 与 MCP Evidence 分别保存在 observed_journeys.evidence_bundles 下的独立捆绑包中,以保留各个接口面的记录。
评估器、模式(schemas)、合成输入和语义测试位于 tests/conformance/readiness/report/ 目录下。它们属于开发期验证代码,不包含在编译后的运行时包中。评估器负责认证 Evidence 承诺(commitments),并检查所提供的观测结果之间的一致性;它不会独立地观测这些观测结果所描述的事件。
合成评估器阶段¶
| 阶段 | 所需提供的观测结果 |
|---|---|
discover-classify |
无目标启动、工件清单、兼容工作流选择,以及精确的可见限制 |
diagnose-environment |
将损坏的运行时与分析失败区分开、检测到版本偏差,以及恢复后修订版本发生变化 |
acquire-authority |
报告缺失的权限范围、恢复窄授权、重新提示扩展请求,且被拒绝的授权不会启动任何操作 |
static-analysis |
原生与 JavaScript 路由,以及保留的歧义、截断、不支持的语法和残余未知项 |
reactive-scenarios |
谓词驱动的交互、后代结算、Electron 关联,以及取消清理的 Evidence |
compare-authority-candidate |
显式的偏序/有限迹语义、主要分歧的定位,以及对不完整比较给出 unknown |
preserve-contradictions |
记录并继续(record-and-continue)、阻止受影响的等价性判定,并保留不受影响的比较 |
verify-reconstruction-closure |
检测到不完整的重建、增量验证器闭环,以及拒绝委托权限的候选 |
export-replay |
CLI/MCP 对等性、进程/结构化失败对等性、确定性重放、篡改拒绝,以及过期输入拒绝 |
在合成输入中,每个阶段和必需的检查都必须恰好出现一次,并链接到其内嵌捆绑包中的 Evidence。fail、unknown、unsupported、truncated 和 skipped 永远不会汇总为 pass。
失败关闭规则¶
在以下情况下,评估器会拒绝或不予通过合成报告:
- 受限能力遗漏了其有效的数值限制;
- 某个夹具未恰好具有一个兼容的已选工作流;
- 调用了不兼容或不可用的提供方;
- 类型化 CLI 失败却以零状态退出,或 MCP 失败却报告成功;
- 并发行为使用了全序比较;
- 截断、不稳定、权限不可用或矛盾被标记为等价;
- 蓄意的主要分歧未被定位;
- 矛盾 Evidence 或其受影响的比较缺失;
- 重建义务分类账不是
ready状态、没有任何必需义务,或仍保留未归属/未验证的必需义务; - 被拒绝或取消的授权却报告进程已启动,已取消清理的观测结果缺少诊断性 Evidence,或仍有归属资源残留;
- 重放不确定、未检测到篡改/过期,或期望的源摘要不一致。
每条发现(finding)都会标明其阶段、稳定的原因代码、Evidence ID 与详细信息。其中 capability_issue 和 next_action 字段会将不支持或失败的工作映射到负责的能力与补救措施,而不会声称所请求的分析已经运行。
结清历史根据所提供的最终账本描述一个固定的必需义务论域。其第一条记录确立起始未结数量,且不能声称出现新的转换。每个标记为 ready 的观测必须报告零个未结必需义务。标记为 open 或 failed 的观测必须报告一个正的未结必需义务数量。unknown 可以有零个未结义务,因为各种限制可能独立于该数量而阻止 ready 判定。每次减少都必须指明相应数量的互不相同且已验证的必需义务;一个义务不能在同一记录内或后续观测中再次计数。任何历史未结数量都不能超过账本的必需义务总数。所保留的历史仅与该账本做一致性检查,而不作为一系列完整历史账本加以认证。当这些检查失败时,原始记录仍保留在报告快照中。
对于每个操作和调用种类,每个保留的成功/错误码变体都必须同时出现在 CLI 和 MCP 中。重复的观测及其 Evidence 保留在报告快照中;漂移发现会引用完整组及其序列号。不声称重复次数相等或运行之间存在一一对应的配对关系:输入中没有身份标识可将单个 CLI 尝试与单个 MCP 尝试关联。传输状态差异会在每个观测上分别检查。
测试夹具¶
静态分析流程使用源代码自有、可再分发的测试夹具:
build/conformance/c,由tests/conformance/c/fixture.c构建,具有稳定的符号和字符串;tests/conformance/readiness/javascript-cli,向静态重建暴露提示、备用屏幕行为、配置优先级、子进程、持久化、回环 HTTP 和信号拆除流程;tests/conformance/readiness/electron,向静态分析暴露 main、preload、renderer、utility、IPC、renderer 重启、被阻止的 shell 效果和 deep-link 表面。
独立的 RECONSTRUCTION_READINESS_EXAMPLE 提供合成的观测,用于不完整重建、损坏的运行时、权威性、比较、清理和结清。其语义测试保留了畸形 Evidence 拒绝、fail-closed 阶段结果、矛盾处理、CLI/MCP 重复结果以及结清历史一致性。请独立运行这些源代码测试:
通过评估器测试并不能确认真实提供方或测试夹具的运行时行为。对于这些声明,请使用适用的真实工具链验证通道。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 rea2/rea